首页 > 试题广场 >

有 10 粒糖,如果每天至少吃一粒(多不限),吃完为止,求有

[单选题]
10 粒糖,如果每天至少吃一粒(多不限),吃完为止,求有多少种不同吃法?(
  • 144
  • 217
  • 512
  • 640
答案是C          所有元素无差别,每份至少包含一个元素(每天至少吃一粒),因此考虑采用隔板法求解。将10粒糖并列一排放置,中间形成9个空位,每个空位有两种选择(有隔板或没隔板),因此共有2^9=512种,选C
发表于 2018-02-17 23:37:07 回复(3)
答案是C
         根据题意可知,此题满足插板法的应用条件:所有元素无差别,每份至少包含一个元素(每天至少吃一粒),因此考虑采用插板法求解。将10粒糖并列一排放置,中间形成9个空位,在这9个空位中任意插入0,-,9个隔板,(即表示10粒糖在1到10天吃完),故共有,即C为512种吃法。因此,选C
编辑于 2016-12-13 16:30:58 回复(2)
C(0,9)+C(1,9)+C(2,9)+...+C(9,9) = 512


发表于 2016-12-17 20:50:00 回复(0)
斐波那契数的变种,类似变态跳台阶,f(n)=2f(n-1),所以f(10)=2^9f(1),f(1)=1,所以答案是512
发表于 2017-07-03 21:20:30 回复(2)
动态规划的思想:
F(n) = 1 + F(n-1) + F(n-2) +F(n-3) + ... + F(1)     ①
即n粒糖,等于n粒一下子都吃没,就是1种方法,或者吃1粒,还有F(n-1)中吃法,依次类推。。。
F(1) = 1,
由①可以推出,F(n) = 1 + F(n-1) +F(n-1) -1, 即F(n) = 2F(n-1),故F(n) = 2^(n-1),代入10就是答案

发表于 2019-01-18 15:13:21 回复(0)
隔板法,9个空分别插0个板(一天吃完10粒糖)到9个板(每天吃一粒糖),即
发表于 2022-01-20 16:24:33 回复(0)
和青蛙跳n个台阶,可以跳n步的思路是一样的。。。总共有2^(n-1)种
发表于 2019-11-05 08:42:03 回复(0)
把我上来就干蒙了
发表于 2021-09-19 19:45:20 回复(0)
隔板大法好!
发表于 2019-08-01 15:12:50 回复(0)
把10粒糖从左向右排成一列,第一天一定会吃一粒糖,记为1。如果接下来的一粒糖和前一粒糖在同一天吃,就把这粒糖记为和前一粒糖相同的数。因此这10粒糖可以表示为首位为1的10位二进制数,这样的二进制数有2^9=512个
发表于 2022-09-18 21:07:55 回复(0)
插板法,妙啊,2的9次方
编辑于 2022-06-14 11:57:32 回复(1)
为什么不是一天吃完加两天吃完加……其中三天吃十个糖,每天至少一个为3∧7数字很大
发表于 2021-12-17 22:49:22 回复(0)
一颗糖有1种方法,2颗糖有3种,3颗有4中,4颗有8种,每一个都等于前面的所有数相加,所以10颗=8*2^6
发表于 2020-08-22 15:46:30 回复(0)
算法题,跟递归很像
发表于 2019-10-01 00:50:02 回复(0)
与分苹果思路类似,把10颗糖果分给小朋友(把天数当成小朋友),1一天吃完就相当分给一个小朋友,则可以分成1,2,3...10天吃完,则分法分别为C(10-1,1-1),C(10-1,2-1),C(9,2)...C(9,9) ,最后求和即可得到512。
发表于 2023-12-07 20:06:22 回复(0)
写个简单版的
f(1)=1, f(2)=2, f(3)=4, f(4)=8, 所以f(4) = 1+ f(3) + f(2) + f(1); f(3) = 1+f(2)+f(1) 
所以
f(n) = 1+ f(n-1)+f(n-2)+....f(1)
f(n-1) = 1+f(n-2)+....f(1) 
等号左右两边移动得:f(n-1)-1 = f(n-2)+ ...f(1) 
所以f(n). = 1+ f(n-1) +f(n-1) -1 
所以f(n) = 2f(n-1) 
所以f(10) = 2f(9)= 2*2f(8)=2^2f(8)
以此类推f(10)=2^9f(1)=512
发表于 2023-03-29 22:00:19 回复(0)
为什么是15个呢?不说相邻的两个级别么?不应该是,1+2+2+2+2+1+2=12么?为什么还可以第一个和第四个比,
发表于 2022-01-17 00:52:30 回复(0)
def jumpFloorII(number):
    # write code here
    if number < 2: return 1
    if number == 2 : return 2
    if number >=3:
        dp = [1,2]
        for i in range(2,number):
            dp.append(sum(dp)+1)
    return dp[-1]

s = jumpFloorII(15)

发表于 2020-05-22 20:47:56 回复(0)
n个唐有f(n)吃法。求f(n+1)。第n+1有两种情况,独立吃,跟前面其他一起吃。独立吃相当于不存在n+1,数量为f(n)。跟其他一起吃,由于糖一样的,把最后一粒跟倒数第二捆绑一起吃,也是f(n),因此f(n+1)=2*f(n)。
发表于 2019-12-18 10:06:55 回复(0)
哎没有思路,我竟然写了回溯法
发表于 2017-03-08 22:32:56 回复(0)