Questions tagged «rational-numbers»

8
“猜数字”游戏中是否存在任意有理数?
我曾经有以下问题作为面试问题: 我正在考虑一个正整数n。提出一种可以在O(lg n)查询中进行猜测的算法。每个查询都是您选择的数字,我将回答“较低”,“较高”或“正确”。 此问题可以通过修改后的二进制搜索来解决,在该搜索中,您列出了2的幂,直到找到一个超过n的幂,然后在该范围内运行标准的二进制搜索。我认为这很酷,因为您可以比暴力破解更快地搜索无限数量的特定数字。 不过,我的问题是对此问题进行了轻微的修改。假设不选择一个正整数,而是选择一个介于零和一之间的任意有理数。我的问题是:您可以使用哪种算法最有效地确定我选择了哪个有理数? 现在,我拥有的最佳解决方案可以在最多O(q)的时间内隐式遍历所有有理数的二叉搜索树Stern-Brocot树,从而找到p / q 。但是,我希望使运行时更接近整数情况下的运行时,例如O(lg(p + q))或O(lg pq)。有人知道获得这种运行时的方法吗? 我最初考虑使用间隔[0,1]的标准二进制搜索,但这只会找到具有非重复二进制表示形式的有理数,而这几乎错过了所有有理数。我还考虑过使用其他方式来列举有理数,但是仅凭比较大/相等/少的比较,我似乎找不到找到这种空间的方法。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.