“我们不需要以任何特定的顺序枚举分数,我们只需要确保只要循环继续进行,每个有理数最终都会被构造出来。那么:
for i=0 to infinity
for j=1 to i
display i/j
next j
next i
您应该能够看到,如果您等待足够长的时间,每个分数最终都会显示出来。事实上,由于 1/2、2/4 等相同的术语,我们正在无限次生成每个分数。4/8 等等..”
为什么输出是 1/2、2/4 等等...?我想不通 :(( 把这个伪代码翻译成 C 或 C++ 语言,也许我做的不对:
#include <stdio.h>
int main()
{
for (int i = 0; i < 100000000000000000; i++) {
for(int j = 1; j < i; j++) {
printf("%f\n", (float)(i/j));
}
}
return 0;
}