找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1202|回复: 12

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

[复制链接]
发表于 2010-4-19 14:10:40 | 显示全部楼层 |阅读模式
假如有一个数是1-10000之间,是未知数,当你猜测的时候只能说是大了或者小了,只有在猜测对了以后会提示正确,如何用一个程序将这个数快速的找出来,请高手指导。
发表于 2010-4-19 23:37:38 | 显示全部楼层
我有些不太明白您的需求!我就按我理解的说,是不是说判断是否相等呢?如果是这样的话那就直接用一个等号进行判断就可以了,然后就有输出是真是假!
回复 顶

使用道具 举报

 楼主| 发表于 2010-4-20 23:22:25 | 显示全部楼层
不是这样的,假如说一个数字是580,但是这个是未知的,当你发出一个数时,会反馈一个比较事大还是小,就好像一个游戏,主持人知道那个数是什么,猜的人不知道,你报一个数的时候,主持人告诉你是大了还是小了,直到你猜到为止,我想用对折法,就是每次用所在区域的一半去比较,一直到是那个数为止
回复 顶

使用道具 举报

 楼主| 发表于 2010-4-20 23:24:51 | 显示全部楼层
我只有这个思路,不知道有没有谁能有巧妙的方法实现,因为这个数是未知的,只能比较大小的方式找出来,不能直接用等号
回复 顶

使用道具 举报

发表于 2010-4-20 23:33:20 | 显示全部楼层
回复 顶

使用道具 举报

 楼主| 发表于 2010-4-25 16:38:27 | 显示全部楼层
回复 顶

使用道具 举报

发表于 2010-4-28 16:08:55 | 显示全部楼层
实质上问一个算法的问题,给定一个值,但你是对此未知,而在可能空间中所有值都是一样概率的取值,我想,应该可以用概率论的方法证明出,折半猜测是最快的
回复 顶

使用道具 举报

 楼主| 发表于 2010-5-3 15:23:23 | 显示全部楼层
是这样的,如何做成LV程序呢
回复 顶

使用道具 举报

发表于 2010-5-3 16:28:15 | 显示全部楼层
冒泡法,取中间值,看大小在确定
回复 顶

使用道具 举报

 楼主| 发表于 2010-5-4 12:50:02 | 显示全部楼层
有没有哪位大哥提供VI例子可以参考一下啊,谢谢了
回复 顶

使用道具 举报

 楼主| 发表于 2010-5-4 12:52:07 | 显示全部楼层
最多循环16次就可以了,也就是折叠16次,就是不知道怎么下手
回复 顶

使用道具 举报

 楼主| 发表于 2010-5-4 15:48:45 | 显示全部楼层
我做了一个VI例子,感觉效果不好,会有1-2的差值要是搜索的次数较少的话,有没有能在循环16次以内能比较精确的?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

 楼主| 发表于 2010-5-31 09:36:26 | 显示全部楼层
本帖最后由 kkk123747 于 2010-5-31 09:39 编辑

我自己做了一个,二进制搜索法,也放上来吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 05:18 , Processed in 0.060321 second(s), 11 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表