★离散数学中的鸽巢问题★

xxiao07 2003-11-13 07:01:31
证明两个整数的商用十进制来表示时,最后总会出现一些重复的数据块。
例:1/6=0.16666 中的6 217/660=0.32878787 中的87
...全文
123 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
saint001 2003-11-22
  • 打赏
  • 举报
回复
所有证法中
Raceman35(伏地魔) 最能够符合楼主的原意
简单
liem 2003-11-20
  • 打赏
  • 举报
回复
to lion_programmer(抵制日货,华人有责)
我说的1+1=2,不是哥德巴赫猜想,就是小学生都会的算术。
要证明1+1=2,首先要知道什么是自然数,什么是自然数的加法。这些内容高中以下是不讲的。
levinjoe 2003-11-20
  • 打赏
  • 举报
回复
看了下大家的证明(包括我自己的),几乎没看懂,大家说的太简洁了,对问题进行了转化,却没有说明为什么是等价的!

to zzwu(未名)
好像是循环论证啊?

此题应改为任何有理数的无限小数表示数列有循环节;
也就是说
1/5=0.2000000000000000000000000000...,循环节为0;

下面详细说说自己的证明;
先去掉其整数部分,不妨设
m/n=0.a[1]a[2][a3]..... ;a[i]为0-9的数字,i为正整数;
0<=m<n;
再设
m[k]/n=0.a[k]a[k+1]..... k=1,2,3,...
则有 m[1]=m<n;
m[k+1]=m[k]*10-a[k]*n; k=2,3,...
且0<=m[k]<n;(因为a[k]=floor(m[k]/10);
考虑m[1],m[2],...m[n],m[n+1],根据鸽巢定理,必有两数相同;
不妨设 m[i]=m[j],i<j则有
a[i+t]=a[j+t] t=0,1,2,.......
从而数列a有循环节a[i]a[i+1]...a[j-1]!
从而,有理数的无限小数形式有循环节!
zzwu 2003-11-20
  • 打赏
  • 举报
回复

我看Raceman35(伏地魔)的证明应能达到楼主的要求了,是最直接了档地应用了鸽巢原理来证的:
-- 2整数A和B整除A/B的余数最多为B种,所以从B+1次开始的除法一定要重复B种结果的某一种。


zzwu 2003-11-20
  • 打赏
  • 举报
回复
我看Raceman35(伏地魔)的证明应能达到楼主的要求了,是最直接了档地应用了鸽巢原理来证的:
-- A/B相除的结果最多为B种,所以从B+1次开始的除法一定要重复B种结果的某一种。
zzwu 2003-11-20
  • 打赏
  • 举报
回复
要利用算术公理来证明1+1=2确实有点法繁琐。算术公理中没有'+'法,只有'后继'操作,也没有'1'或'2',都要从'0'开始,利用'后继'操作定义出来。'+'法择要用归纳法来定义。
zzwu 2003-11-19
  • 打赏
  • 举报
回复
也可以用反证法:如果两个整数的商的任何小数都不重复,则此数是无理数,和两个整数的商是有理数矛盾。
ZhangYv 2003-11-19
  • 打赏
  • 举报
回复
非负数a,b(a<=b,b<>0),求a/b的小数部分:
设每次的余数为A,f = A*10^k(f为大等于b的最小整数)
求b+1次的f mod b的值,每次余数为A1,A2,A3,...,Ab,Ab+1,该序列的取值在0..b-1间,但序列项数有b+1个,
根据鸽巢原理得出必定存在相同的两项,即Ai = Aj (i < j)。
也就是会出现循环,循环的部分值应该为fi/b,f(i+1)/b,f(i+2)/b,...,f(j-1)/b,证毕.
「已注销」 2003-11-17
  • 打赏
  • 举报
回复
用小学的语言说吧:
A/B不管是否可以除尽,每次做除法的余数的可能性不会多于B种情况(0到B-1),
如果除了很多次(多于B位)还未除尽,必有重复出现的情况,
从此处开始,就出现了重复结果,小学课本中把它叫做“循环节”。

鸽巢数量B,超出B位的数字串中每一位是鸽子。
Riemann 2003-11-16
  • 打赏
  • 举报
回复
只需证明:对任意素数p,1/p均为循环小数即可。
事实上,由Fermat小定理,10^(p-1)-1 = 0(mod p),这表明1/p小数点后至多每隔p-1位变会开始出现循环。
lion_programmer 2003-11-16
  • 打赏
  • 举报
回复
TO liem(阿明)
我只想告诉你,1+1=2作为一个算术题是不需要证明的。平时我们说的1+1=2的问题是指哥得巴赫猜想中表述最简单也是最有魅力的一个:一个足够大的偶数总能表示成两个素数之和。
短歌如风 2003-11-16
  • 打赏
  • 举报
回复
X/Y:
设数列M:M[0] = X mod Y,M[n] = M[n-1] * 10 mod Y
则第i位小数的值必然为M[i-1]*10 / Y。
因为A mod Y必然在区间[0,Y)中,所以M[i]最多只有Y个数可供选择。所以当n >= Y时,从M[0]到M[n]的序列必然至少有两个数相等。
设M[i] = M[j], 0 <= i < j
则M[j+1] = M[j] *10 mod Y = M[i] * 10 mod Y = M[i+1];
从而可证从j开好始的无穷序列必然与从M[i]开始的无穷序列相同。而从M[i]到M[j]为一有限序列,所以这个无穷序列必然是M[i]..M[j]的无限重复。
从而小数位序列M[i-1]*10/Y也必然重复。
levinjoe 2003-11-16
  • 打赏
  • 举报
回复
注意到如下递归式:
(m,n,a[k])=(10*m-n*a[k],n,a[k+1]),且a[k]=floor(10*m/n)
且0<=m<n;
从而超过n对会重合;
xiaonian_3654 2003-11-16
  • 打赏
  • 举报
回复
hehe
这是研究生的课程啊

不要以为你聪明,上小学就知道鸽巢原理,但是你不会用
liem 2003-11-16
  • 打赏
  • 举报
回复
1+1=2是小学生也知道的事实,却不是所有高中生都能证明的。我想此题也是如此,至少我不知道如何用鸽巢原理来证明这个"明显的事实"。
ZhangYv 2003-11-16
  • 打赏
  • 举报
回复
任何分数都是位数有限的小数或无限循环小数,因此。。。
limd 2003-11-15
  • 打赏
  • 举报
回复
分数都是循环小数
windinn 2003-11-14
  • 打赏
  • 举报
回复
这里是关税乐园,
不是幼儿园。
呵呵~~
netxmfm 2003-11-14
  • 打赏
  • 举报
回复
发错版块了
cngxylyh 2003-11-13
  • 打赏
  • 举报
回复
初中知识,分数(两个整数相除就是一个分数)和整数合称有理数,
而分数都是循环小数。

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧