`
hellobin
  • 浏览: 63015 次
  • 性别: 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



 



 

分享到:
评论

相关推荐

    论文研究-粗糙表面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/

    分形-Cantor三分集MATLAB代码

    分形-Cantor三分集MATLAB代码

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

    基于康托尔集合对函数对称性分析方法的探索,程欣,王双维,康托尔分析单峰信号的思想源于化学上用色谱仪测量的数据都是单峰的不对称信号,因此我做了能否可以用康托尔函数来分析信号的对称

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

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

    Cantor集算法实现

    应用c++ MFC实现Cantor集算法,配套清华大学出版社的《计算机图形学基础教程》。

    MATLAB课程设计(cantor三分集)

    一个关于 cantor三分集 的 MATLAB 课程设计 内有源程序,MATLAB 运行 图 word 形式

    cantor展开(pascal语言)

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

    经典算法之cantor数表

    本题为一个比较简单的数学基础算法,找规律题目。适合那些算法刚入门的同学参考一下。

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

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

    Matlab.rar_cantor_cantor 分形

    Matlab在分形模拟上的一些应用,Cantor集模拟程序,模拟分为确定迭代法和随机迭代法。

    Cantor集算法

    不错的算法,对于要学习图形处理的孩子们来讲,看一看有必要

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

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

    cantor_set.ai

    cantor_set.ai

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

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

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

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

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

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

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

    分形的实验,用递归画 cantor,kock,siepinski

    cantor:Cantor提供实用程序来估计大集合的基数

    康托尔Cantor提供实用程序来估计大集合的基数。 本文中的算法是可并行化的,为方便起见提供了Hadoop包装器类。 它采用大多数HyperLogLog ++算法如所见,不包括稀疏方案,并使用简单的线性内插,而不是k近邻。 此外,...

    Cantor悖论释疑

    Cantor悖论释疑,杨本洛,宋文淼,自19世纪末提出并至今尚没有任何解决迹象,西方科学世界针对数学基础逾越一个多世纪的争论源自Cantor提出的集合论悖论。集合论悖论�

Global site tag (gtag.js) - Google Analytics