プログラミングガ●ジだけど再起わかんね

1 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:53:50.319 ID:04sfU3RtM
https://ideone.com/NMsKKr
フィボナッチわかんね
2 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:55:15.904 ID:04sfU3RtM
なんで小さいとこから順番に数えてないのに答え出るんだ?
3 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:55:30.951 ID:04sfU3RtM
forならわかりそうだけどね
4 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:56:00.442 ID:04sfU3RtM
誰か来て
5 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:56:19.720 ID:kWvLEJPT0
俺は変数で詰んだ
8 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:56:47.941 ID:TcKjEbO60
>>5
箱だよ
6 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:56:22.988 ID:04sfU3RtM
もうWiFiに変えるね
7 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:56:31.488 ID:2Fx9r/n80
プログラミングじゃなくてフィボナッチの定義がわかってないんだろ
漸化式はわかってるのか?
9 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:57:01.461 ID:TcKjEbO60
>>7
隣の足し算
17 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:00:29.055 ID:2Fx9r/n80
>>9
漸化式って知ってる?
20 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:01:21.196 ID:TcKjEbO60
>>17
an3=an1+an2てきな
22 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:02:15.291 ID:TcKjEbO60
>>20
an=an-1+an-2の方がいいか
10 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:58:06.277 ID:eUNzZ2340
forでもいいんだぞ
11 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:58:10.415 ID:0W/BWt9u0
これ実際は小さいところから順番に数えられてるやつだぞ
12 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:58:46.254 ID:TcKjEbO60
>>11
???
13 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:58:50.121 ID:lwKx1ZB40
fibonacci(3) = fibonacci(2) + fibonacci(1) = fibonacci(1) + fibonacci(0) + 1 = 1 + 1 + 1 = 3
って感じ
16 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:00:14.248 ID:TcKjEbO60
>>13
あれ?
フィボナッチって全部の和なのか?
18 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:00:48.376 ID:lwKx1ZB40
>>16
いや違うが
23 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:02:48.658 ID:vxy/II97a
>>16
全ての項が一項目とニ項目の和ではあるな
14 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 00:59:40.982 ID:lwKx1ZB40
fibonacci(3) = fibonacci(2) + fibonacci(1) = fibonacci(1) + fibonacci(0) + 1 = 1 + 0 + 1 = 2
間違えた
15 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:00:09.008 ID:zS0x2+M30
末尾再帰が最適化になるようにしましょうね~
19 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:01:17.715 ID:zS0x2+M30
まさかとは思うけどこのエラーメッセージになる理由が分からないなんてことはないよね?
エントリポイントはここではあえて省略されてるだけだよね?
21 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:02:02.832 ID:IHIrsO+/0
よく知らんけど直前の数字と2つ前の数字足すだけじゃないの?
24 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:04:29.300 ID:TcKjEbO60
ああもう分かったわ
これ再起止まるとこまでnを引いていって芋ずるで前の項出してるのか
25 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:04:49.357 ID:sa5heXq70
まさかcじゃないよな?
27 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:05:29.461 ID:TcKjEbO60
>>25
C++
26 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:04:49.850 ID:TcKjEbO60
冷静に考えたらわかったわ
28 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:06:31.356 ID:TcKjEbO60
もうレスしないから落としておk
29 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:06:38.045 ID:TcKjEbO60
寝るわ
31 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:08:07.245 ID:zS0x2+M30
疑問なんだけどフィボナッチ計算関数作れって言われて、
いきなりこうなるもん??
別になってももちろんいいけどこうじゃない人もある程度いるはずなんだが?
32 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:09:55.877 ID:2Fx9r/n80
>>31
配列に0番目と1番目の定数を代入してループで配列にプッシュしていくのもあり
34 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:11:52.248 ID:zS0x2+M30
>>32
そうそう
33 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:11:35.625 ID:3CE/wdBX0
指定された項分、配列を作ってからfor分で1個づつ足して配列の次の添字にぶち込む、ってやつの方がすぐ浮かぶ
最後に配列加え合わせれば数列も作れるし和も出せるからうれちぃ
35 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:16:37.884 ID:2Fx9r/n80
>>1のコードはフィボナッチ数の定義に忠実に基づいて書いているけど実際に実行すると好ましくない
何度も再起することでスタック領域を食い荒らすし同じ項の計算を何度も何度も繰り返すから実行時間もとられてしまう
実際に好ましいコードはやはり配列を使うことだろうね
36 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:19:05.152 ID:XQ3GTtxs0
こういうのはパターンマッチで書ける言語気持ちいい
37 名前:ひみつの名無しさん 投稿日時:2020/05/30(土) 01:21:51.445 ID:XQ3GTtxs0
メモ化するだけでも末尾再帰最適化ぜすにO(n)にできるぞ

コメント

タイトルとURLをコピーしました