Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我怎样才能把猜谜游戏搞清楚?_Java - Fatal编程技术网

Java 我怎样才能把猜谜游戏搞清楚?

Java 我怎样才能把猜谜游戏搞清楚?,java,Java,我怎么能这样做呢? 我对此有意见 进入模式:A 输入可能的最小整数:1 输入可能的最大整数:10 我已经生成了一个介于1和10之间的随机整数。 试着猜:5 不,它比较小! 试着猜:3 完成了 进入模式:B 输入可能的最小整数:1 输入可能的最大整数:10 生成一个介于1和10之间的随机整数。。。 我应该用哪种方法来猜? 1:二进制搜索 2:插值搜索 输入您选择的方法:1 是五点吗= 学习不同的搜索算法非常有趣。 既然你说你需要学习,我就向你介绍这两种算法的理论解释 二进制搜索 这是一种计算机科学

我怎么能这样做呢? 我对此有意见

进入模式:A 输入可能的最小整数:1 输入可能的最大整数:10 我已经生成了一个介于1和10之间的随机整数。 试着猜:5 不,它比较小! 试着猜:3 完成了

进入模式:B 输入可能的最小整数:1 输入可能的最大整数:10 生成一个介于1和10之间的随机整数。。。 我应该用哪种方法来猜? 1:二进制搜索 2:插值搜索 输入您选择的方法:1 是五点吗=
学习不同的搜索算法非常有趣。 既然你说你需要学习,我就向你介绍这两种算法的理论解释

二进制搜索 这是一种计算机科学搜索算法,可在排序数组中查找目标值的位置。二进制搜索将目标值与数组的中间元素进行比较。如果它们不相等,则消除目标不能位于其中的那一半,并继续搜索剩余的那一半,再次将中间元素与目标值进行比较,并重复此操作,直到找到目标值。如果搜索结束时剩余的一半为空,则目标不在数组中

插值搜索 插值搜索不计算中点,而是估计目标值的位置,同时考虑阵列中的最低和最高元素以及阵列的长度。仅当数组元素为数字时,才可能执行此操作。它的工作原理是,在许多情况下,中点并不是最佳猜测。例如,如果目标值接近数组中的最高元素,则它可能位于数组末尾附近。 为了找到要搜索的位置,它使用以下公式

pos=lo+[x-arr[lo]*hi-lo/arr[hi]-arr[lo]]

arr[]->需要搜索元素的数组 x->要搜索的元素 lo->在arr[]中开始索引 hi->arr中的结束索引[]

来源

您希望如何实施这些措施由您自行决定。
如果您坚持这样做,并发布您尝试的代码,我们可以为您提供更多帮助。

有什么问题吗?我不明白第二个问题我先做了,但第二个问题我怎么做?用具体的问题向我们展示您的编码尝试,我们可以提供帮助…我刚刚开始学习。。我只是做了第一部分,但在这里我不知道我应该做什么;1输入最大可能整数:10生成一个介于1和10之间的随机整数。。。我应该用哪种方法来猜?1:二进制搜索2:插值搜索输入您选择的方法:1是5吗?,=<是3点吗?完成。所以模式A是程序在指定范围内选择一个数字,你需要猜测它。模式B是在指定范围内选择一个数字,程序需要在选择搜索模式的情况下猜测该数字。这是一个作业,你可以很容易地谷歌所有的部分。谢谢你乔治!