我正在尝试绘制以下函数:
f(x) = 0 if x is rational else 1 # so 1 if x is irrational
我的计划是使用 python 和 matplotlib。如何在 Python 中生成随机无理数?
The answer is you can't.
What you can do is figure out some epsilon after which this number is considered irrational.
It will look the same.
consider this: square root of 2 is an irrational number.
wolframlpah gives you an approximation : 1.4142135623730950488016887242096980785696718753769480...
python only sees 1.4142135623730950488016887242096980785696718753769480 which means: 1+ 4142135623730950488016887242096980785696718753769480/ 10000000000000000000000000000000000000000000000000000
随机数几乎总是无理数(即概率为 1)
def f(x):
return 1
几乎总是随心所欲地工作!
不能在计算机程序中表示无理数是不正确的。它不适合记忆,你不能打印整个无理数,但你仍然可以用它们做一些计算,并做一些操作,比如“给我前 100 位数字”。您可以将它们表示为一种惰性枚举器。问题是,这并不真正符合您的需求,因为检查这种数字是否有理相当于停止问题,因此无法确定。
但是在区间中选择一个无理数,例如在 0 和 1 之间,并不总是不可能的,它只取决于你想做什么。我最近这样做了,但是这些数字的应用只是因为它们必须进行比较,并且算法的一些决定取决于这些比较。在这里,将它们表示为惰性枚举器可以正常工作:如果进行比较,则从左侧开始并比较每个数字,直到一个数字具有更大的数字。所以我们只是动态生成随机数字并将生成的数字存储在一个数组中,直到它们与我们要比较的数字的对应数字不同。
只是为了弄清楚有限数和无限数之间的区别,我们只需要有限部分:在第一种情况下,数字的长度是固定的和有界的,在第二种情况下,我们只需要存储一个有限的位数,但这个数字可能会超出任何范围,所以如果我们比较足够多的数字,每个有限数都不同于这样的无限数。