称药问题
有五瓶药,每瓶装N颗,一个瓶子里的药要么都是10克的,要么都是9克的。现在只许称一次,要判断哪些瓶子里是9克,哪些瓶子里是10克。现在要求N的最小值。最直观的想法是N=16,各个瓶子里分别取1,2,4,8,16颗出来一起称,看看重量比(1+2+4+8+16)*10=310少了几克,就可以判断哪几瓶是9克的。
现在问题是16并不是最小,13才是。程序找到分别取6 9 11 12 13颗出来就行。这个数列要满足:从数列里随便取几个数出来,他们的和都不同,而且还不等于他们中间任何一个。
下面是程序找到的1至7瓶的取法:
1
1 2
2 3 4
3 5 6 7
6 9 11 12 13
11 17 20 22 23 24
20 31 37 40 42 43 44
……
现在还想知道这个数列有什么规律
脑补一下:7=1+2+4 13=7+4+2……下面行减去上面一行结果都是首位数……好了,马上知道第八行是3757687477798081
高兴太早:37+57+68+74=77+79+80 1
1 2
2 3 4
3 5 6 7
6911 12 13
11 17 20 22 23 24
20 31 37 40 42 43 44
40 60 71 77 80 82 83 84 到第八行就不满足前面三行最大数的和了,但是还满足下面行减去上面行结果都是下面行的首位数。而且首位数约等于2^(n-1)/3 末位数约等于2^(n)/3。想知道第N行的通项公式
1
1 2
2 3 4
3 5 6 7
6911 12 13
11 17 20 22 23 24
20 31 37 40 42 43 44
40 60 71 77 80 82 83 84 到第八行就不满足前面三行最大数的和了,但是还满足下面行减去上面行结果都是下面行的首位数。而且首位数约等于2^(n-1)/3 末位数约等于2^(n)/3。想知道第N行的通项公式
网速不好发重复了。猜测,第九行首位数是80,原因:感觉下面一行的首位数是上面一行的中间位置数字。谁用编程验证一下80120140151157160162163164是不是第九行。从数列里随便取几个数出来,他们的和都不同,而且还不等于他们中间任何一个。 感觉跟1,1,2,3,5,8,13,21……这个数列原理上有些像,这个越到后来挨着两个数的比值越接近黄金比。上面数列越到后来最大数是上面一行最大数的两倍 如果按照这种规律,下面是
1
1 2
2 3 4
3 5 6 7
6 9 11 12 13
11 17 20 22 23 24
20 31 37 40 42 43 44
40 60 71 77 80 82 83 84
77 117 137 148 154 157 159 160 161
148 225 265 285 296 302 305 307 308 309
285 433 510 550 570 581 587 590 592 593 594
570 855 1003 1080 1120 1140 1151 1157 1160 1162 1163 1164
1120 1690 1975 2123 2200 2240 2260 2271 2277 2280 2282 2283 2284
2200 3320 3890 4175 4323 4400 4440 4460 4471 4477 4480 4482 4483 4484
4323 6523 7643 8213 8498 8646 8723 8763 8783 8794 8800 8803 8805 8806 8807 首位数字出现的地方出现规律 问题很有意思,mark。
楼上发现的规律是什么样的呢?:b: 看第一列
2,3是前面两个数之和
6,11,20是前面三个数之和
40,77,148,285是前面四个数之和
570,1120,2200,4323,8498是前面五个数之和……
末尾数也是这个规律
页:
[1]
2