首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
cantor专题
Cantor展开式
X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,a为整数,并且0<=ai<i(1<=i<=n)。这就是康托展开。康托展开可用代码实现。 康托展开的应用实例: {1,2,3,4,...,n}表示1,2,3,...,n的排列 如 {1,2,3} 按从小到大排列一共6个。123 132 213 231 312 321 。 代表的
阅读更多...
WikiOI 1083 Cantor表
不算难。 #include<stdio.h>int main(){int i,n,bn;scanf("%d",&bn);n=bn;for(i=1;n>0;i++)n-=i;n+=i;if(i%2==1)printf("%d/%d",n-1,i+1-n);else printf("%d/%d",i+1-n,n-1);return 0;}
阅读更多...
1083 Cantor表(模拟)
思路: 找规律吧 主要是找出第N个元素在哪一行 按照z形走的话第i行有i个元素 奇数行,第j个元素是(i-j+1,j) 偶数行,第j个元素是(j,i-j+1) #include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int main()
阅读更多...
【[NOIP1999 普及组] Cantor 表】
题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 我们以 Z 字形给上表的每一项编号。第一项是 1 / 1 1/1 1/1,然后是 1 / 2 1/2 1/2, 2 / 1 2/1 2/1, 3 / 1 3/1 3/1, 2 / 2 2/2 2/2,… 输入格式 整数 N N N( 1 ≤ N ≤ 1 0 7
阅读更多...
洛谷_P1014 [NOIP1999 普及组] Cantor 表_python写法
这道题其实没什么特别的,最重要就是仔细分析找到其中的数学规律。 以斜着为行,每一行的数值就是与第几行有关。 那对于Z字形而言就是行数的奇偶判断。 n = int(input())ans = 0flag = 0l = ['0']while ans < n:flag += 1ans += flagans -= flagn -= ansj = flagif flag%2 =
阅读更多...
RQNOJ292 Cantor表 题解、、
题目:Cantor表 问题编号:292 题目描述 现代数学的著名证明之一是GeorgCantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:1/1 1/2 1/3 1/4 1/5 …2/1 2/2 2/3 2/4 …3/1 3/2 3/3 …4/1 4/2 …5/1 ……我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…要求编写程序,
阅读更多...
白皮书cantor的数表
如下列数,第一项是1/1,第二项是1/2,第三项2/1,第四项为3/1,第五项是2/2,...........输入n,输出第n项。 1/1 1/2 1/3 1/4 1/5 2/1 2/2 2/3 2/4 3/1 3/2 3/3 4/1 4/2 5/1 思路:数表提示我们按照斜线分类,第一条斜线有一个数,第二条有两个数,第三条有3条。。第i条有i个数,这样前i条一共有s(k
阅读更多...
康托展开(Cantor Expansion)
【康托展开简介】康托展开(Cantor Expansion)是一种特殊的哈希函数,是一个相对快速的判重方法,其时间复杂度为O(n^2),其中 n 是集合中元素的个数。康托展开能够判重,依据的是一个集合各元素产生的全部排列中各个排列的位序 id。而位序 id 的计算公式如下: 其中,a[i] 的值为某个排列中第 i 位右边各位中字典序小于第 i 位的字符的个数,且0≤a[i]<i,1≤i≤n。 利用
阅读更多...