ストリームドキュメントにフィボナッチ数を取得する良い例があります。スカラーのスライディングストリームを使用してフィボナッチ数を取得するにはどうすればよいですか?
val fibs:Stream[Int] = 0 #:: 1 #:: fibs.zip(fibs.tail).map { n => n._1 + n._2 }
スライドを使用して実装したいので、以下のようにしました。
val test = 0 #:: 1 #:: Stream.empty
test.sliding(2).map(_.sum).toStream
最終行が正しくストリーム(1、?)を取得しますが、私は以下のように、私はエラーを取得することを連結する際に(おそらくスタックオーバーフローをそれが長すぎたので、私は、正確なエラーメッセージを見ることができませんでした)私が3人目のメンバーを取得しようとするとき。
val fibs2:Stream[Int] = 0 #:: 1 #:: fibs2.sliding(2).map(_.sum).toStream
3つの数字を次のように指定すると、前の2つの数字の合計が計算されます。しかしフィボナッチ数ではありません。
val fibs3:Stream[Int] = 0 #:: 0 #:: 1 #:: fibs3.sliding(2).map(_.sum).toStream
アイデアや助けをいただければ幸いです。
アップデート
- 私は、エラーの原因が方法をスライドすると、次の値がメソッドをスライディング方式
- をのhasNext使用して利用可能かどうかを知る必要がありイテレータは、以前のいずれかの合計を計算する必要があります返すということです疑いますトリボナッチと呼ばれる最初のシーダが与えられれば番号(N = 3)、tetranacci(N = 4)、等
これは、フィボナッチ数を取得する別の方法です。私は勉強して、練習をしなければなりません。 – nineclue