【數列遞推】爭奪基友

【问题描述】 
  小宸和小松都很想和乐乐在一起,但是乐乐说他只需要一个基友。于是小宸和小松决定
用抛掷硬币的方式来决定谁能成为乐乐的基友。 
  游戏共有 n局,规则如下:一人先掷,如果掷得正面,则此人获胜,如果是反面则由另
外一人掷,如此交替,直到第一次抛出正面时本局结束,掷得正面者获胜。下一局则由未获
胜的人先掷,规则同上。 
  由于小宸希望成为乐乐基友的愿望非常强烈,于是找到了聪明的你,请你告诉他,小宸
在第 n局恰好获胜的概率是多少。另外他还告诉你,第一局是由小宸先掷。 
 
【输入数据】 
一个整数 n,含义如题目描述。 
 
【输出数据】 
一个最简分数,形如 a/b,表示小宸在第 n局恰好获胜的概率。 
 
【样例输入】 
2 
 
【样例输出】 
4/9 
 
【数据范围及约定】 
对于 50%  的数据:1≤n≤16; 
对于 100%的数据:1≤n≤32。 
首先對於題目描述表示強烈抨擊!

再說解題方法:

這道題是一個很簡單的數論題。
首先將n = 1時的概率求出來。

如圖所示,所以:


然後可得遞推式:


通過觀察可知:

於是得到了化簡的通項公式。

Accode:

#include <cstdio>
int main()
{
  freopen("friend.in", "r", stdin);
  freopen("friend.out", "w", stdout);
  int n; scanf("%d", &n);
  long long a, b = 3, tmp;
  for (int i = 1; i < n; ++i) b += (b << 1);
  printf("%I64d/%I64d", (b >> 1) + (n & 1), b);
  return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值