说明在确定是否一个十进制数在基地

问题描述:

当试图找到我碰到这个传来了回答,并想知道如果这是真的,为什么它是一个有限表示。说明在确定是否一个十进制数在基地

https://*.com/a/489870/5712298

如果任何人都可以向我解释或链接我到一个页面解释它,将是巨大的。

+0

您链接的答案决定了十进制值是否可以完全用_binary浮点数表示,尽管答案只是表示_binary_,它本身是模棱两可的。因为你的问题的标题可能需要改变,所以它是非常具体的,而不仅仅是“_a base_”。 – Clifford

+0

我认为链接中的方法描述存在错误,请参阅我的评论添加到它。 – Clifford

#1的标记不支持数学符号很好,这个大多数读者将是程序员,所以我将使用通用编程表达式语法:

* multiplication 
^ exponentiation 
/division 
x[i] Element i of an array x 
== equality 
PROD product 

这本书以是否给出问题的基数r终止分数a/(r^n),有一个端接基数s分数b/(s^m)具有完全相同的值,ab整数,rs正整数,nm非负intege RS。

a/(r^n)==b/(s^m)相当于b==a*(s^m)/(r^n)a/(r^n)正好等于一些基数s终止分数如果且仅当,存在一个正整数m使得a*(s^m)/(r^n)是一个整数。

考虑的rPROD(p[i]^k[i])的主要因子。如果因为某些ip[i]^k[i]是在r的因式分解的一个术语,然后p[i]^(n*k[i])是在r^n的因式分解的术语。

a*(s^m)/(r^n)是一个整数,当且仅当,在r^n的因式分解每p[i]^(n*k[i])也是a*(s^m)

首先假设p[i]一个因素也是s一个因素。那么对于足够大的m,p[i]^(n*k[i])是因子s^m

现在假设p[i]不是s一个因素。当且仅当它是因子a时,p[i]^(n*k[i])是因子a*(s^m)

为一个非负整数m使得b==a*(s^m)/(r^n)是一个整数的存在的必要且充分条件是,对于在r素因子分解每个p[i]^k[i],无论p[i]sp[i]^(n*k[i])一个因子是因子的a

将此应用于r=10s=2的常见情况下,r的素因分解为(2^1)*(5^1)。 2是因数2,所以我们可以忽略它。 5不是,所以我们需要5^n是因子a

考虑某些特定情况下:

十进制0.11/10,5不是1因子,所以没有确切二进制分数当量。

十进制0.625,625/(10^3)5^3是125,这是一个625的因子,所以有一个确切的二进制分数等价。 (它是二进制0.101)。

参考答案https://*.com/a/489870/5712298中的方法相当于这个从小数到二进制。它需要一些工作来扩展到一般情况,以允许指数不为1的素数因子。