我正在尝试构建一个系统,我需要找到一组线性方程的解决方案,其中包含比方程更多的变量.
问题归结为以下几点:
想象一组方程式:
A = A1*X1 + A2*X2 + ... + AnXn
B = B1*X1 + B2*X2 + ... + BnXn
Run Code Online (Sandbox Code Playgroud)
如何为此系统找到一个或多个(正)整数解?
注意:我一直在查看apache-commons-math库,但是我找不到任何关于如何解决/找到具有自由变量的系统解决方案的指示.
我明天正在接受测试培训,以完成我对函数式编程的介绍,但有一件事我不明白.
每当我有一个程序,如:
test [] = []
test (x:xs) = test (xs)
Run Code Online (Sandbox Code Playgroud)
他所做的是他从名单中取出第一个元素并继续其余部分.只要剩下一个,xs应该[]依次触发test [] = [].但每当我运行此算法时,我都会收到错误.Exception: <interactive>:20:5-16: Non-exhaustive patterns in function test.
我无法在网上找到明确的解释.有人可以给我发一个清楚解释或者向我解释的链接吗?
让我们考虑两个列表:["a","b","c"]和["a","b","c","d","e","f"]
我想检查第一个列表是否是我认为可以使用的另一个列表的开头:
["a","b","c"] == head (splitAt (length ["a","b","c"]) ["a","b","c","d","e","f"])
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.还有另一种方法可以从新列表中的列表中获得第一个3个第一个元素吗?
我正在制作一个小纸牌游戏.在这个游戏中,新玩家是一个类,AIPlayer或HumanPlayer的实例,它扩展了一般玩家类.
目前为了生成玩家,我有以下代码:
private List<Player> players;
HumanPlayer playerA = new HumanPlayer("playerA");
playerA.addObserver(gameModelObserver);
players.add(playerA);
AIPlayer playerB = new AIPlayer("playerB");
playerB.addObserver(gameModelObserver);
players.add(playerB);
AIPlayer playerC = new AIPlayer("playerC");
playerC.addObserver(gameModelObserver);
players.add(playerC);
HumanPlayer playerD = new HumanPlayer("playerD");
playerD.addObserver(gameModelObserver);
players.add(playerD);
Run Code Online (Sandbox Code Playgroud)
是否可以动态生成这些类?我可以做一些事情,比如使用播放器名称和布尔值迭代链表的所有元素,以指示它们是AI还是Human,然后为它们生成类的实例.如果是这样,怎么样?
编辑:为了更清楚,我正在寻找这样的事情:
for(int i=0; i<x; i++){
player i = new Player("i");
i.addObserver(gameModelObserver);
players.add(i); }
Run Code Online (Sandbox Code Playgroud)