`
hellobin
  • 浏览: 65551 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

UVA 264 - Count on Cantor

    博客分类:
  • UVA
 
阅读更多

 

One of the famous proofs of modern mathematics is Georg Cantor's demonstration that the set of rational numbers is enumerable. The proof works by using an explicit enumeration of rational numbers as shown in the diagram below.

 

displaymath27

 

In the above diagram, the first term is 1/1, the second term is 1/2, the third term is 2/1, the fourth term is 3/1, the fifth term is 2/2, and so on.

 

Input and Output

You are to write a program that will read a list of numbers in the range from 1 totex2html_wrap_inline29and will print for each number the corresponding term in Cantor's enumeration as given below. No blank line should appear after the last number.

 

The input list contains a single number per line and will be terminated by end-of-file.

 

Sample input

 

3
14
7

 

Sample output

 

TERM 3 IS 2/1
TERM 14 IS 2/4
TERM 7 IS 1/4

 

 

Solution1:

 

#define RUN
#ifdef RUN

#include<stdio.h>


// 1:第i条斜线有i个元素
// 2:前i条斜线共有k*(k+1)/2个数
// 3:若存在最小正整数k使得S(k)>=n,
// 则n是第k条斜线上的倒数第S(k)-n+1个数,
// 对应的值是S(k)-n+1 / k-S(k)+n
int main() {

#ifndef ONLINE_JUDGE
	freopen("264.in", "r", stdin);
	freopen("264.out", "w", stdout); 
#endif

  long n;
  while(scanf("%ld", &n) == 1) {
    long k = 1, s = 0;
    for(;;) {
      s += k;
	  
	  // 找到了最小正整数k
      if(s >= n) {
		if(k&1){
			printf("TERM %ld IS %ld/%ld\n", n, s-n+1, k-s+n);
		}
		else{
			printf("TERM %ld IS %ld/%ld\n", n, k-s+n, s-n+1);
		}
        break;
      }
      k++;
    }
  }
  return 0;
}

#endif



Solution2:

 

//#define RUN
#ifdef RUN

#include<stdio.h>
#include<math.h>
int main() {

#ifndef ONLINE_JUDGE
	freopen("264.in", "r", stdin);
	freopen("264.out", "w", stdout); 
#endif

  long n;
  while(scanf("%ld", &n) == 1) {
    long k = (long)floor((sqrt(8.0*n+1)-1)/2-1e-9)+1;
    long s = k*(k+1)/2;

	if(k&1){
		printf("TERM %ld IS %ld/%ld\n", n, s-n+1, k-s+n);
	}
	else{
		printf("TERM %ld IS %ld/%ld\n", n, k-s+n, s-n+1);
	}



  }
  return 0;
}

#endif



 



 

分享到:
评论

相关推荐

    python官网-8.Cantor 表-Z字抖动.py

    python官网-8.Cantor 表——Z字抖动.py

    论文研究-粗糙表面Cantor集分形对温度场影响分析.pdf

    针对一类未知的非线性系统,利用输入/输出线性化将其变换为部分线性可控系统,通过RBF神经网络对未知非线性函数进行逼近,提出了一种基于RBF神经网络的自适应滑模控制,并设计了自适应滑模控制器;...

    vim速查表 Beautiful Vim Cheat-Sheet by Max Cantor

    Beautiful Vim Cheat-Sheet by Max Cantor 非常NICE的vim速查表,高清5925*4125,在作者博客上售价25刀,参见:http://vimcheatsheet.com/

    论文研究-The researching which based on Cantor’s set in analysis of the functional symmetry.pdf

    本文通过康托尔集合(Cantor’s set)对函数对称性进行分析研究。首先,文章从化学领域引入了康托尔思想,指出化学中使用色谱仪测量得到的数据通常是单峰的不对称信号。由此提出问题:是否可以利用康托尔函数来分析...

    Cantor集算法实现

    Cantor集,以数学家Georg Cantor命名,是一种在实数线上定义的特殊集合,具有零测度但非空的性质,它是无限去中心化过程的结果。在计算机科学和图形学中,Cantor集的概念可以被用于创建有趣的几何形状和图案,尤其是...

    分形-Cantor三分集MATLAB代码

    Cantor三分集是分形理论中的一个经典例子,由19世纪的数学家Georg Cantor提出,它是无限迭代过程的结果,展示了如何通过简单的规则生成复杂的结构。 在MATLAB中实现Cantor三分集,主要涉及以下几个知识点: 1. **...

    论文研究 - Cantor函数的不可微子集的维

    本说明的主要目的是估计点集Tμλ的大小,在这些点上Cantor函数是不可微的,我们发现Tμλ的Hausdorff维数为[log2 / log3] 2。 另外,Tμλ的包装尺寸为log2 / log3。 log2 = loge2是,如果ax = N(a&gt; 0,且a≠1),...

    Cantor集算法

    **Cantor集算法详解** Cantor集,又称为康托尔集合,是由19世纪末德国数学家格奥尔格·康托尔所提出的一种特殊集合,它在数学特别是实数理论、分形几何和计算理论中都有重要的地位。这个集合以一种非常独特的方式...

    MATLAB课程设计(cantor三分集)

    "MATLAB课程设计:Cantor三分集" 本文主要介绍了使用MATLAB语言设计的Cantor三分集课程设计,旨在通过MATLAB程序生成Cantor三分集图形。该设计包括了Cantor三分集的定义、算法实现、MATLAB程序编写和结果分析等部分...

    经典算法之cantor数表

    ### 经典算法之Cantor数表 #### 算法背景与意义 在计算机科学领域,算法的设计与实现是核心部分之一。其中,数学算法因其严谨性和逻辑性而尤为重要。Cantor数表是一个经典的数学算法问题,它不仅能够帮助初学者...

    Matlab.rar_cantor_cantor 分形

    Cantor集是分形理论中的一个经典例子,由19世纪末的德国数学家Georg Cantor提出,它展示了无限去除了中间三分之一部分的集合。在计算机科学和信息技术中,分形的概念被广泛应用于图像处理、数据压缩、网络设计等多个...

    cantor展开(pascal语言)

    利用公式编程求出一个序列在全排列中的编号 X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!+a[1]*0!

    论文研究 - 带禁止词和广义Cantor集的DNA序列

    在这项工作中,我们建立了缺失子序列的DNA序列(禁忌词)与广义Cantor集之间的关系。 与某些广义Cantor集相关的各种示例,包括Hao的框架表示和广义Sierpinski集,以及它们的分形图,也都在本文中给出。

    用matlab实现contor三分集.pdf

    hold on; plot(x,y,'LineWidth',2); hold off; cx = ax + (bx-ax)/3; cy = ay - d; dx = bx - (bx-ax)/3; dy = by - d; ay = ay - d; by = by - d; cantor(ax,ay,cx,cy); cantor(dx,dy,bx,by); end ``` ...

    n维欧氏空间一类特殊集合的维数和势 (2011年)

    首先将闭区间[0,1]上的Cantor集的构造方法推广到n维欧氏空间,得到n-维Cantor集.通过维数的计算公式,得到n-维Cantor集维数.然后,从Cantor集的性质出发,证明了n-维Cantor集仍然具有连续统的势.最后,对n-维 ...

    cantor_set.ai

    cantor_set.ai

    cantor:数据抽象,存储,发现和服务系统

    康托尔 Cantor是持久的数据抽象层; 它提供查询和检索存储为键/值对,排序集,键/值映射或多维时间序列数据点的数据的功能。基本Cantor可以帮助简化和减少应用程序中数据访问层实现的大小。 大多数应用程序需要某种...

    递归画分形(cantor,kock,siepinski)

    本节将详细介绍如何使用递归来绘制 Cantor 集、Koch 曲线和 Sierpinski 三角形这三种经典的分形。 **Cantor 集** Cantor 集是最早被发现的分形之一,由德国数学家 Georg Cantor 在19世纪末提出。它通过迭代过程从一...

    cantor:强大的数学和统计数据包的前端

    康托尔Cantor是一个KDE应用程序,旨在为进行数学和科学计算提供一个不错的界面。它没有实现自己的计算逻辑,而是围绕不同的后端构建的。可用后端Julia编程语言: :用于计算和绘图的KAlgebra: ://edu.kde.org/...

    s-拟C antor集的构造及其特性 (2012年)

    文章在传统康托尔(Cantor)三分集构造的基础上,应用中心删去法重新构造了更为一般的 s-拟Cantor集。此外,讨论了该s-拟Cantor集的一些特殊性质。事实表明,该s-拟Cantor集保持了传统Cantor集较好的特性,但其测度却...

Global site tag (gtag.js) - Google Analytics