Cantor表
Posted sxy2004
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cantor表相关的知识,希望对你有一定的参考价值。
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
1/11/1 , 1/21/2 , 1/31/3 , 1/41/4, 1/51/5, …
2/12/1, 2/22/2 , 2/32/3, 2/42/4, …
3/13/1 , 3/23/2, 3/33/3, …
4/14/1, 4/24/2, …
5/15/1, …
… 我们以ZZ字形给上表的每一项编号。第一项是1/11/1,然后是1/21/2,2/12/1,3/13/1,2/22/2,…
输入格式
整数NN(1≤N≤100000001≤N≤10000000)
输出格式
表中的第NN项
输入输出样例
输入 #1
7
输出 #1
1/4
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int n,a=1; 5 cin>>n; 6 for(int i=1;i<=n;i++){ 7 if(n>a) n-=a; 8 else break; 9 a++; 10 } 11 a++; 12 if(a%2==1) cout<<n<<"/"<<a-n; 13 else cout<<a-n<<"/"<<n; 14 return 0; 15 }
非常水的一道题,
按照等差数列1,2,3,4,5.....
找到在哪一斜列(a),
第a斜列就有a个数,
并且分子分母之和为a+1;
然后用剩余的n求,
如果a为偶数,
就是从分母为1开始,
所以分母为n,
分子就是a+1-n;(因为我前面a++了,所以写的a-n)
为基数反之。
昨天忘写博客了啊!!!
啊啊啊啊啊啊啊啊啊啊啊啊!!!
QAQ
以上是关于Cantor表的主要内容,如果未能解决你的问题,请参考以下文章