倪举鹏 发表于 2016-3-24 08:35:53

称药问题

有五瓶药,每瓶装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
……
现在还想知道这个数列有什么规律

倪举鹏 发表于 2016-3-24 08:44:42

脑补一下:7=1+2+4   13=7+4+2……下面行减去上面一行结果都是首位数……好了,马上知道第八行是3757687477798081
高兴太早:37+57+68+74=77+79+80

倪举鹏 发表于 2016-3-24 08:52:13

                                  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行的通项公式

倪举鹏 发表于 2016-3-24 09:04:45

                                  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行的通项公式

倪举鹏 发表于 2016-3-24 09:13:11

网速不好发重复了。猜测,第九行首位数是80,原因:感觉下面一行的首位数是上面一行的中间位置数字。谁用编程验证一下80120140151157160162163164是不是第九行。从数列里随便取几个数出来,他们的和都不同,而且还不等于他们中间任何一个。

倪举鹏 发表于 2016-3-24 09:19:24

感觉跟1,1,2,3,5,8,13,21……这个数列原理上有些像,这个越到后来挨着两个数的比值越接近黄金比。上面数列越到后来最大数是上面一行最大数的两倍

l4m2 发表于 2016-3-24 12:22:13

如果按照这种规律,下面是
       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

倪举鹏 发表于 2016-3-24 13:22:21

首位数字出现的地方出现规律

winxos 发表于 2016-3-24 13:24:32

问题很有意思,mark。
楼上发现的规律是什么样的呢?:b:

倪举鹏 发表于 2016-3-24 14:08:16

看第一列
2,3是前面两个数之和
6,11,20是前面三个数之和
40,77,148,285是前面四个数之和
570,1120,2200,4323,8498是前面五个数之和……

末尾数也是这个规律

页: [1] 2
查看完整版本: 称药问题