二分法猜100以内随机数产生的疑问

sako.c 2019-10-04 11:30:00
咳咳,各位大佬好,又是我这个萌新想要问问题。。。这次的问题有点多,希望各位大佬能耐心看完,卑微萌新在此感激不尽。。我废话不多说,下面就呈上问题: 是这样的,我针对《高级语言程序设计c语言版》这本书上的一个问题做了两个算法并写成了两个程序,在下面我会放上这个问题的图(第一张),(请先看图再继续阅读下面内容) 对于这个二分法查找算法,我没看懂书上的图3-13的算法,为什么他没有x大于mid时候的情况?而且他这个是不断缩小左右边界,好像跟我知道的二分法不太一样?(第一问) 于是我自己写了两个程序,第一个是伪二分法,也就是不是正经的二分法,因为当时没想到,,,第二个是真二分法,,下面我就把代码发给你们看(图2和图三分别为伪二分法算法和真二分法算法) 但这时又产生了一个问题,就是伪二分法的那个程序“有时候"无法得出结果,之所以说是有时候,是因为它有时又能出结果(废话),(图4和图5为没有结果与有结果的图)程序编译和运行都是没有问题的,而我自认为(膨胀过度)这个伪二分法的算法也是可以猜出x的,只不过猜的次数会比真二分法要多而已,所以我的第二个问题就是为什么会有时有结果有时没结果。 希望各位大佬能够解答我的疑问,若在此联系不便可加我qq(2205688853)回答,欢迎各位大佬指点。
...全文
169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sako.c 2019-10-04
  • 打赏
  • 举报
回复
引用 1 楼 lin5161678的回复:
假设 mid是22 right是23 随机数是 23 你的做法 (22+23)/2 mid不变 right不变 死循环了
right我刚开始是赋值了一百的啊,第一个程序里right的值并不会改变的吧?
lin5161678 2019-10-04
  • 打赏
  • 举报
回复
图歪了 看不了
lin5161678 2019-10-04
  • 打赏
  • 举报
回复
假设 mid是22 right是23 随机数是 23 你的做法 (22+23)/2 mid不变 right不变 死循环了
lin5161678 2019-10-04
  • 打赏
  • 举报
回复
引用 3 楼 sako.c 的回复:
[quote=引用 1 楼 lin5161678的回复:]假设 mid是22 right是23 随机数是 23 你的做法 (22+23)/2 mid不变 right不变 死循环了
right我刚开始是赋值了一百的啊,第一个程序里right的值并不会改变的吧?[/quote]哦哦 不会改变 假设 随机数是 49 左右不变 最后会在 66 33 里面不停循环 所以错了

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧