アプリ版:「スタンプのみでお礼する」機能のリリースについて

ある細胞は、試験管内で1分経過すると分裂し 数が2倍になるが、 分裂直後に全細胞のうち1つは死滅してしまう。
最初に試験管に10個の細胞を入れた場合について、 細胞を入れてから n 分後の 試験管内の細胞の数を考えることとする。

1.漸化式で表現する。c(n)=

2.3分後の細胞の数

3.関数c(n)をc言語で書く。
int c(n)
{
//??
}

A 回答 (2件)

これは、数学的な買いを求めろという話ではなく、


再帰プログラミングをしろって話だろうから、、、

1. C(n+1)=2C(n)-1
2. c(3)=2c(2)-1=2[2c(1)-1]-1=2{2[2c(0)-1]-1}-1
=2{2[2(10)-1]-1}-1=2[2(19)-1]-1=73
3. これくらいは、自分でやろう。
    • good
    • 0

c(n) = 2 c(n-1) - 1 { n≧1 },


c(0) = 10 でしょ。
解けない漸化式なら、漸化式自体をプログラムにしてしまえばいいけれど、
これは簡単だから、数学で済ませちゃえば?

c(n) - 1 = 2( c(n-1) - 1 ) と変形できるから、等比数列で
c(n) - 1 = ( c(0) - 1 )2^n,
c(n) = (10 - 1)2^n + 1.

これを C で書くと、
int c(n) {
return 9*(1 << n)+1;
}
簡単なことは、簡単に済ますのが一番。

だいぶ昔の 数学セミナー に載ってたエッセイだと思うけれど、
留学中にシュミレーションの講座で、ある待ち行列の期待値を求めよ
という課題を出されて、プログラムはせずに
解析解をレポートに書いて提出したら、
"Not simulation, but excellent." という評価をもらった
って書いてた人がいた。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!