gpt4 book ai didi

检测重复小数的算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:27:13 25 4
gpt4 key购买 nike

是否有算法可以解决以下问题?

  1. 如果除法的结果是循环小数(二进制)。
  2. 如果重复,重复从哪个数字(表示为 2 的幂)开始?
  3. 哪些数字重复?

一些例子:

1/2 = 1/10 = 0.1 // 1 = false, 2 = N/A, 3 = N/A, 4 = N/A
1/3 = 1/11 = 0.010101... // 1 = true, 2 = -2, 3 = 10
2/3 = 10/11 = 0.101010... // 1 = true, 2 = -1, 3 = 10
4/3 = 100/11 = 1.010101... // 1 = true, 2 = 0, 3 = 10
1/5 = 1/101 = 0.001100110011... // 1 = true, 2 = -3, 3 = 1100

有没有办法做到这一点?效率是一个大问题。对算法的描述比代码更受欢迎,但我会接受我能得到的答案。

还值得注意的是,基础不是什么大问题;我可以将算法转换为二进制(或者如果它在,说 base 256 以便于使用 chars,我可以只使用它)。我这样说是因为如果您要解释,以 10 为基数可能更容易解释 :)。

最佳答案

  1. 如果除数不是 2 的幂(通常包含不与表示基共享的质因数)
  2. 重复周期长度将由红利的最大素因子驱动(但与该因子的表示长度无关——见十进制的 1/7),但第一个周期长度可能与重复周期不同单位(例如 11/28 = 1/4+1/7 十进制)。
  3. 实际周期将取决于分子。

关于检测重复小数的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1315595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com