作业帮 > 数学 > 作业

对数字有灵感的人请进..

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/17 03:29:59
对数字有灵感的人请进..
一道难题(对我来讲):
一行至少要多少位数字
怎样排列
才能使0-999
这1000个数每个都出现过?
例如:
0123456789
这一行的10个数字
使 0 1 2 3 4 5 6 7 8 9 12 23 34 45 56 67 78 89 123 234 345 456 567 678 789 数字都出现了
其实题目改成100-999就行了
这样吧如果题目是10-99
接着可以推出100-999
如 465743
这一行数字
其中只有4 6 5 7 4 3 46 65 57 74 43 465 657 574 743 这几个数符合题意
注意是连续的
怎么样排列才能让100-999的数都出现过
看了各位的回答,我又仔细想了想,有了新的方法..
10-99共90个2位数,即需要180个数字
但是每个可以用2次,所以只要90个数字
但是首位数字只能用1次,0只能用1次,0后面的数字也只能用1次,末尾数字只能用1次..
为了使只能用1次的数字很少的出现,所以把0放在最后1位..
当然0不会放首位,所以有8个0在中间和0后面的数字只用了1次,就是16个用1次的数字,加上首位1或9和末尾的0也只用了1次,就是18个用1次的数字,其余数字都用了2次..
(x-18)*2+18*1=180
x=99
排列即如sevenoutman所说
至于100-999的问题,我想也是用考虑每个数字用的次数来解,最后在把排列出来,但比这复杂难多了,希望有兴趣的和我一起思考...
想了很久了,不好意思,凭我的能力只能作出第一问了,其实第二问0-999就是100-999,可是用我第一问的方法的话,是无法扩展到第二问的(至少我认为这两问也不能看成同一组问题,即无法用统一的方法解决!).
第一问:
首先证明这组数的个数有个最小值99.
先考察如下的数:10、11、12...19,这10个数必须要出现在数列中,现在只考虑十位,这十个数十位都是1,并且可以看出,这十个1是无法重复的(想清楚这点,这点很重要!假设12和15的1可以只用一个1表示,那么1后面只能接一个数,是2还是5呢?)于是,答案中必定有10个1(另外需要注意,现在再来讨论个位的1是没有必要的,因为个位的1可能与十位的1重复,比如512中的1就有“兼职”的作用,换句话说,讨论了十位,就不能讨论个位了),于是同理可知,答案中的1-9必定都出现了10次!现在再看0,只考虑个位(事实上0也只出现在个位了),易知10、20、...90这九个数中的0也不能相互代替,即0必须出现9次,综上,答案至少要出现99个数!
注:为什么我要加两个括号里的解释?如果你能看懂括号里的说明,那么可以看懂下面的补充内容了
补充内容:来看看100-999的答案最小长度.对于1-9,只考虑百位,易知必须各出现100次(在说明一点:为什么这里只考虑百位?因为读者可以试着只考虑个位或十位,都小于100次),对于0,只考虑个位(或者十位也是一样的),易知必须出现90次,所以,答案至少有990个数(但是!我估计990是无法成为答案的...)
言归正传,来看看我给出的方案吧,这个方案恰好有99个数,而且10-99都出现了,所以这就是答案!当然,如何构造花了我很多心血.
1121314151617181910
22324252627282920
334353637383930
4454647484940
55657585950
667686960
7787970
88980
990
上述这九组数列任意排成一排既是答案!