kkk123747 发表于 2010-4-19 14:10:40

猜取数字的问题,高手指导。

假如有一个数是1-10000之间,是未知数,当你猜测的时候只能说是大了或者小了,只有在猜测对了以后会提示正确,如何用一个程序将这个数快速的找出来,请高手指导。

cpubbs 发表于 2010-4-19 23:37:38

我有些不太明白您的需求!我就按我理解的说,是不是说判断是否相等呢?如果是这样的话那就直接用一个等号进行判断就可以了,然后就有输出是真是假!

kkk123747 发表于 2010-4-20 23:22:25

不是这样的,假如说一个数字是580,但是这个是未知的,当你发出一个数时,会反馈一个比较事大还是小,就好像一个游戏,主持人知道那个数是什么,猜的人不知道,你报一个数的时候,主持人告诉你是大了还是小了,直到你猜到为止,我想用对折法,就是每次用所在区域的一半去比较,一直到是那个数为止

kkk123747 发表于 2010-4-20 23:24:51

我只有这个思路,不知道有没有谁能有巧妙的方法实现,因为这个数是未知的,只能比较大小的方式找出来,不能直接用等号

baby 发表于 2010-4-20 23:33:20

用减法确实可以吧

kkk123747 发表于 2010-4-25 16:38:27

减法要减到什么时候啊

飞雨天 发表于 2010-4-28 16:08:55

实质上问一个算法的问题,给定一个值,但你是对此未知,而在可能空间中所有值都是一样概率的取值,我想,应该可以用概率论的方法证明出,折半猜测是最快的

kkk123747 发表于 2010-5-3 15:23:23

是这样的,如何做成LV程序呢

3no 发表于 2010-5-3 16:28:15

冒泡法,取中间值,看大小在确定

kkk123747 发表于 2010-5-4 12:50:02

有没有哪位大哥提供VI例子可以参考一下啊,谢谢了

kkk123747 发表于 2010-5-4 12:52:07

最多循环16次就可以了,也就是折叠16次,就是不知道怎么下手

kkk123747 发表于 2010-5-4 15:48:45

我做了一个VI例子,感觉效果不好,会有1-2的差值要是搜索的次数较少的话,有没有能在循环16次以内能比较精确的?

kkk123747 发表于 2010-5-31 09:36:26

本帖最后由 kkk123747 于 2010-5-31 09:39 编辑

我自己做了一个,二进制搜索法,也放上来吧!
页: [1]
查看完整版本: 猜取数字的问题,高手指导。