有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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


进入模式:B 输入可能的最小整数:1 输入可能的最大整数:10 生成一个介于1和10之间的随机整数。。。 我应该用哪种方法来猜? 1:二进制搜索 2:插值搜索 输入您选择的方法:1 是五点吗?(<;,>;,=) <

是3点吗

完成了。


共 (1) 个答案

  1. # 1 楼答案

    学习不同的搜索算法非常有趣
    既然你说你需要学习,我就向你介绍这两种算法的理论解释

    二进制搜索

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

    插值搜索

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

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

    arr[] -> Array where elements need to be searched
    x -> Element to be searched
    lo -> Starting index in arr[]
    hi -> Ending index in arr[]

    资料来源Wikipedia Binary Search

    您希望如何实施这些措施由您自行决定
    如果你坚持这样做,并张贴你的尝试代码,我们可以帮助你更多