Lisp &引用;我在想什么数字;阴谋中的猜谜游戏
我的问题是:Lisp &引用;我在想什么数字;阴谋中的猜谜游戏,lisp,scheme,racket,Lisp,Scheme,Racket,我的问题是: 我需要在Scheme中创建一个程序来玩“我在想什么数字”游戏 参数为下限和上限 每次进行猜测时,都会将其与答案进行比较 如果猜测较少,那么应该说越高 如果价格更高,它应该说——走低 如果相等,则打印“Winnner!” 这是我目前的代码: (define (game low high) (let ((guess (average low high))) (cond ((islow? guess) (game (+ guess 1) high))
- 我需要在Scheme中创建一个程序来玩“我在想什么数字”游戏
- 参数为下限和上限
- 每次进行猜测时,都会将其与答案进行比较
- 如果猜测较少,那么应该说越高
- 如果价格更高,它应该说——走低
- 如果相等,则打印“Winnner!”李>
(define (game low high)
(let ((guess (average low high)))
(cond ((islow? guess) (game (+ guess 1) high))
((ishigh? guess) (game low (- guess 1)))
(else '(Winner!)))))
我如何执行
低和高?我可能误解了您的作业-如果是,请告诉我
您的函数实际上不知道正确答案是什么!这可能就是为什么您对islow?
和ishigh?
感到困惑的原因
因此,我认为函数需要做的第一件事就是给出正确的答案,这将是一个介于low
和high
之间的数字。您可以使用(random k)
函数来执行此操作,该函数选择0到k-1之间的随机数。第一个问题是如何使用它来获取介于低
和高
之间的数字
一旦你有了答案
,那么islow?
和ishigh?
就很简单了,我认为你不需要为它们单独设置函数;只需使用
和即可执行类似于二进制搜索的操作
while (true){
response = guess(number);
if(response == true) return "Found it!";
if(response == 'higher'){
number = number+maximum/2;
}
else if(response == 'lower'){
number = number+minimum/2;
}
}
还有什么islow?/ishigh?
需要知道的?请不要发布教科书上的问题。(顺便说一句,这个问题是其中的一部分。)我认为Eli的HtDP参考资料主要不是为了帮助您在线搜索解决方案:)。是的,它是为了解释为什么没有答案,并阻止人们为您回答。该程序确实需要输入,并且应该是以下类型:>(猜5)我在想什么数字?4更高。6更低。5是的,你赢了。那就去做吧^^我们不是来给你做作业的,相信我,我们一生中都经历过这样的事情。