Cantor表

news/2024/11/23 23:46:11/

题目

现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:

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,…

输入: k  按题排序所在位置

输出:m/n 第k项的编号

求解思路

       为了便于观察把题目中表的形式改写一下:

                             

      不难发现当处于偶数行时序号向右递增,奇数行序号向左递增。而且第n行有n项 ,这样可以得到前n项的和为 a(n) = n(n+1)/2,通过前n项和可以得到k所在行位置。再通过k-a(n-1),得到k所在行的具体位置。

       以k=7为例:

                 因为 a(3)<7 <=a(4) 所以 第7项在第4行  可用row表示

                 7-a(3) = 1 即在第4行第1个位置   可用col表示

                   每一行都等于(1+row)

                   发现当k = 7时, 1可用col表示(即使在本行递增依旧成立),所以row = (1+row)-col

                   可得结果为  col/(row-col+1)

                   上述为偶数行个例,当为奇数行,只需改变下顺序即可。

#include<iostream>
using namespace std;
int fun(int x)
{return x*(x+1)/2;
}
int main()
{int k,n,row,col;cin >> k;int i = 0;while(!(k>fun(i) && k<=fun(i+1))){i++;}row = i + 1;col = k - fun(i);if(row%2 == 0){cout << col << "/" << row-col+1 << endl;}else{cout << row-col+1 << "/" << col << endl;}return 0;} 

 

 

 

 

 

 

 

       

     


http://www.ppmy.cn/news/740637.html

相关文章

Cantor 表

题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的&#xff1a; 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/1…

康托展开详解

1.概述 康托展开&#xff08;Cantor Expansion&#xff09;是一个相对快速的判重方法&#xff0c;是一种特殊的哈希函数&#xff0c;其复杂度为O(n^2)&#xff0c;n是集合中元素的个数。函数康托Cantor()实现的功能是&#xff1a;输入一个排列&#xff0c;得到这个排列所对应的…

Token系列:Joint Token Pruning and Squeezing Towards More Aggressive Compression of Vision Transformers

动态Token系列&#xff1a;Joint Token Pruning and Squeezing Towards More Aggressive Compression of Vision Transformers 论文阅读 一、Abstract二、引言三、相关工作原始 ViTs混合 ViTsToken裁剪 四、方法4.1 动机4.2 Token 裁剪4.3 Token 压缩匹配融合 4.4 TPS 嵌入到混…

4.Cantor表(升级版)

Cantor表&#xff08;升级版&#xff09; - 洛谷 解题思路&#xff1a; &#xff08;1&#xff09;根据题目可以得出&#xff0c;分子的大小表示所在的行数&#xff0c;分母的大小表示所在的列数&#xff0c;那么只需要求出两个分数的乘积即可 &#xff08;2&#xff09;利用…

关于Gson的TypeToken

文章目录 引言Type是什么获取类型的困惑自定义TypeToken解决问题总结 引言 Gson在Json解析中使用广泛, 常用的数据类型都可以解析, 特殊的可以自定义Adapter解析. 在解析大量具有某些相同结构的数据上,我们总想复用已有的类型, 为了复用通常可以使用继承和泛型. 比如服务端返回…

realme GT2大师探索版和realme GT2 Pro 区别 哪个值得入手

ealme真我GT2大师探索版提供了三个存储组合版本&#xff0c;分别为8GB内存与12GB内存。 8GB128GB存储组合版本售价3499元。 8GB256GB存储组合版本售价3799元。 12GB256GB存储组合版本售价3999元。 前面两个版本的内存完全一样&#xff0c;闪存相差128GB&#xff0c;价格差距…

多线程:观测线程状态

观测线程状态 新生就绪运行&#xff1a;阻塞 死亡Thread.state package com.dxch.Demo02; //观察测试线程的状态 public class TestState {public static void main(String[] args) {Thread thread new Thread(()->{for (int i 0; i <5; i) {try {Thread.sleep(1000)…

leetcode第352场周赛补题

6909. 最长奇偶子数组 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;模拟 class Solution { public:int longestAlternatingSubarray(vector<int>& nums, int threshold) {int res 0;int n nums.size();for(int i 0; i < n; i ){if(nums[i] % 2 …