我正在做一个主题的任务是fib(0)被定义为= 1.但那不可能是正确的?fib(0)是0?
Program with fib(0) = 1; spits out fib(4) = 5
Program with fib(0) = 0; spits out fib(3) = 3
Run Code Online (Sandbox Code Playgroud)
什么是正确的定义?
在多线程进程中,跨线程共享以下哪个程序状态组件?
我的建议; 只有全局变量,全局变量在堆上分配?所以堆内存和全局变量.它是否正确?
这种逻辑编程实际上是在我的命令式编程技巧上跳舞.这是家庭作业,所以请不要给我答案.这就是我所拥有的:
fibo(N,1) :-
N < 2,
!.
fibo(N,R) :-
N1 is N-1,
N2 is N-2,
fibo(N1,R1),
fibo(N2,R2),
R is R1+R2.
Run Code Online (Sandbox Code Playgroud)
我想要制作另一个看起来像这样的功能; fib(N,Value,LastValue).
N是第n个数字,值是返回值.我不明白我怎么能用累积重写这个.而且由于它向后计数,我不知道它在计算任何东西之前如何"知道"最后一个值.:s任何输入表示赞赏.
我编写了读取字符串输入的解析器.这样可行.我还写了一个评估员,它会吐出结果.但是有一个小细节,我在实施时遇到了麻烦.请看以下示例:
+(sw+(2,2),sr)
Run Code Online (Sandbox Code Playgroud)
这种小语言的sw结构假设要评估"+(2,2)"并将其存储在某处.sr结构将读取此存储区域.整个表达式将评估为8.
我对它的想法是为函数eval使用一个额外的参数来存储结果.但是,我看不出这种情况.注意我是haskell的新手,所以请善待.哦,这是功课.所以不要给我一个解决方案,给我一个提示.
简短的故事,我正在实现一个图表,现在我正在研究Kruskal,我需要一个优先级队列.我对优先级队列的定义是具有最小密钥的元素将首先出现?这是错的吗?因为当我在队列中插入加权边(或数字)时,它们不会最终排序.
PriorityQueue<Integer> tja = new PriorityQueue<Integer>();
tja.add(55);
tja.add(99);
tja.add(1);
tja.add(102);
tja.add(54);
tja.add(51);
System.out.println(tja);
Run Code Online (Sandbox Code Playgroud)
那将打印出来; [1,54,51,102,99,55].这不像我希望的那样排序!是的,我创建了一个进入优先级队列的comperator,该队列从edge对象中提取数字并根据该int进行比较.所以这应该有用,或者我只是完全误解了这个数据结构如何工作的整个概念?
这是一项家庭作业,但它非常简单.该任务附带一个工作程序集文件.我只需要帮助在linux而不是windows上编译它.我正在使用Ubuntu.我安装了mingw32.任务本身是添加一些功能,而不是编译它.
文件本身在这里:这里.要包含它的代码很多,除了代码工作之外并没有那么有趣.现在,有没有人知道如何在linux上编译它?如果这个代码是linux兼容的,我们不需要mingw32.但如果不是,我们可以使用mingw32.我们假设在Windows上使用的工具是NASM,Alink和td.
希望有人得到一些意见,我不想为这个简单的任务安装Windows.
我一直在使用gprolog thingy在prolog中做一些事情.但现在在测试更多代码时,我发现它不支持"假".哪个是swi支持的?
我正在尝试创建一个接受一个参数,一个文件的程序,然后在60秒后检查文件发生了什么.为此,我需要将结果存储-e $1在变量中,然后在60秒后检查它.我似乎无法让if表达听我说,我知道这是错的.出于测试目的,此脚本会立即打印出比较结果.期待这个工作的样本,我不知道我对这个小程序做了多少版本.谢谢!明天到期,非常感谢任何帮助!
#!/bin/bash
onStartup=$(test -e $1)
if [ -e "$1" ]; then
unixtid1=$(date +"%s" -r "$1") #To check if the file was edited.
echo $unixtid1
fi
sleep 3
#Here trying to be able to compare the boolean value stored in the
#start of the script. True/False or 1 or 0? Now, both is actually printed.
if [[ $onStartup=1 ]]; then
echo "Exists"
fi
if [[ $onStartup=0 ]]; then
echo "Does not exists"
fi
Run Code Online (Sandbox Code Playgroud) 通过独立节点,我的意思是返回的集合不能包含直接关系的节点,不能同时包含父节点和子节点.我试图使用谷歌,但没有成功.我认为我没有正确的搜索词.
一个链接,任何帮助将非常感谢.刚刚开始这个.
我需要返回实际的独立节点集,而不仅仅是金额.
我需要找出进程分配的内存页数?每个页面都是4096,进程内存使用情况我在查找正确值时遇到一些问题.当我在gome-system-monitor中查看时,在内存映射下有一些值可供选择.
谢谢.
这一点是将内存使用量除以页面计数并验证页面大小.
我还在为一个学校任务中定义的小语言编写一个小解析器.生成AST(抽象语法树)的解析器正在运行.我想要的是检查已定义的变量,它们必须以let表达式为界.首先是任务中定义的方法(建议,不需要):
checkVars :: Expr -> Char
data Expr = Var Char | Tall Int | Sum Expr Expr | Mult Expr Expr | Neg Expr | Let Expr Expr Expr
deriving(Eq, Show)
Run Code Online (Sandbox Code Playgroud)
一个有效的句子是"让X为5 in*(2,X)".X通常是Var,5通常是int.最后一个可以是dataExpr类型的任何部分.要点:X在最后一个表达式的某处使用.let的数据类型是:
Let Expr Expr Expr
Run Code Online (Sandbox Code Playgroud)
在这里仅仅与FYI联系我提出的有关此任务的其他问题; 第一个问题 第二个问题
正如您看到checkVars的数据类型是Expr,所以这里是我将要提供给该函数的示例:
parseProg "let X be 4 in let Y be *(2 , X) in let Z be +(Y , X) in
+(+(X , Y) , Z)"
Let (Var 'X') (Tall 4) (Let (Var 'Y') (Mult (Tall 2) …Run Code Online (Sandbox Code Playgroud) prolog ×3
evaluation ×2
fibonacci ×2
haskell ×2
java ×2
parsing ×2
algorithm ×1
assembly ×1
bash ×1
binary-tree ×1
clpfd ×1
compilation ×1
gnu-prolog ×1
interpreter ×1
iso-prolog ×1
linux ×1
list ×1
memory ×1
paging ×1