全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
1719 8
2013-10-17
问题:五只猴子采得一堆桃,它们约定次日早起来分。半夜里,一只猴子偷偷起来,把桃均分成五堆后,发现还多一个,它吃了这桃子,拿走了其中一堆。第二只猴子醒来,又把桃子均分成五堆后,还是多了一个,它也吃了这个桃子,拿走了其中一堆。第三只,第四只,第五只猴子都依次如此做了。问分之前桃子数最少有多少个?第五个猴子拿走后还剩多少个?
提示:设第n只猴子拿走的桃子数为a(n),则有递推关系:
4×a(n) = 5×a(n + 1) + 1,n = 1, 2, 3, 4
    用搜索法找出满足递推关系的最少的桃子数。


新手入门,,,谢谢各位!!!





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-10-18 21:50:44
我来帮你一下吧,能跑出结果,但不一定是写得最简洁漂亮的:

for (i in 1:10000){
  a <- seq(1:10000)
  a[i+1] <- (4*a[i]-1)/5
  a[i+2] <- (4*a[i+1]-1)/5
  a[i+3] <- (4*a[i+2]-1)/5
  a[i+4] <- (4*a[i+3]-1)/5
  if(a[i+1]%%1==0 & a[i+2]%%1==0 & a[i+3]%%1==0 & a[i+4]%%1==0) {
    print(i)
  }
}


搜索范围1:10000(其实1:1000就够了),你还可以自己改。结果的话,你运行之后就知道第一个猴子拿的桃子数,剩下的就简单了。总桃子数是3121,五猴分别拿了:624,499,399,319,255。最后还剩1020。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-10-18 22:18:55
改良一下,一次给出全部你要的结果:
store <- rep(0,7)
total <- 0
remainder <- 0
for (i in 1:1000){
  a <- seq(1:1000)
  a[i+1] <- (4*a[i]-1)/5
  a[i+2] <- (4*a[i+1]-1)/5
  a[i+3] <- (4*a[i+2]-1)/5
  a[i+4] <- (4*a[i+3]-1)/5
  if(a[i+1]%%1==0 & a[i+2]%%1==0 & a[i+3]%%1==0 & a[i+4]%%1==0) {
    print(i)
    total <- a[i]*5 + 1
    remainder <- total-a[i]-a[i+1]-a[i+2]-a[i+3]-a[i+4]-5
    store <- cbind(total,a[i],a[i+1],a[i+2],a[i+3],a[i+4],remainder)
  }

}
store



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-10-20 22:12:35
怪了怪 发表于 2013-10-18 22:18
改良一下,一次给出全部你要的结果:
store
真厉害,非常感谢,认真学习。外加膜拜!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-10-21 01:53:51
jillou娄 发表于 2013-10-20 22:12
真厉害,非常感谢,认真学习。外加膜拜!
不客气啊。很高兴能帮上忙。欢迎常来论坛逛逛。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-10-21 12:01:03
怪了怪 发表于 2013-10-21 01:53
不客气啊。很高兴能帮上忙。欢迎常来论坛逛逛。
请问If条件语句里的命令具体是什么意思【 if(a[i+1]%%1==0 & a[i+2]%%1==0 & a[i+3]%%1==0 & a[i+4]%%1==0)】,是满足a[i+n]项是整数就执行if条件下的语句????那我改成 if(is.integer(a[i+1]) & is.integer(a[i+2]) &is.integer(a[i+3]) & is.integer(a[i+4]))后为何无效?新手入门,许多东西不了解,希望赐教。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群