問題タブ [fibonacci]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaプログラムフィボナッチ数列
私はフィボナッチ数列のN番目の数を決定するための「単純な」プログラムを書いています。例:シーケンスの7番目の数字は次のとおりです。13。プログラムの作成が終了しましたが、動作しますが、40番目の数字から遅延が始まり、時間がかかります。私のプログラムはシリーズの100番目の場所に行かなければなりません。
これを修正して、それほど時間がかからないようにするにはどうすればよいですか?これは非常に基本的なプログラムなので、すべての凝った構文コードを知っているわけではありません。私の式は次のとおりです。
これは、40期を過ぎるまでうまく機能します。数字が大きいほど速くなるために、他にどのようなステートメントを追加する必要がありますか?
php - PHP:誰かがこのコードがどのように機能するかを説明できますか?(フィボナッチ)
これは宿題ではないことを約束します。私はただの好奇心旺盛な初心者です。
これはどのように行われますか:
(賢い人が書いた)
これと同じ結果を生成します
(私の)
構文がわからないと思います。そこにifステートメントはありますか?
java - フィボナッチ数列アルゴリズム
N桁を含むフィボナッチ数列の最初の数字を見つけようとしています(Nは500から2000の範囲のどこかにあります)。私は次のコードでこれを行おうとしています:
問題は、1500桁をテストすると、得られる答えが明らかに間違っていることです。答えが何であるかわかりません。アルゴリズムが10の累乗でオフになっている場合(つまり、1499桁と1501をチェックした場合)、すぐに答えをチェックしましたが、役に立ちませんでした。誰かが何が悪いのかわかりますか?
c# - LINQ 式のヘルプ
1 から 1000 など、特定の範囲内にあるフィボナッチ数のリストを提供する LINQ 式 (メソッド呼び出し構文を推奨) を作成する方法を教えてください。
c - Cで再帰的にフィボナッチ数を計算する
私はフィボナッチ数を出力する簡単なプログラムを書いてCを学ぼうとしています。動作していません。
fibonacci.h
fibonacci.c
fibonacci_recursive.c
これは、プロジェクトをビルドしようとしたときにVS2010から表示されるエラーメッセージです。
私はここで何が間違っているのですか?Cに不慣れな人を助けてくれてありがとう。
c++ - 1000未満のフィボナッチ数列を作成するにはどうすればよいですか?
私は困惑している??:(
c# - この場合、.NETがC ++よりも高速なのはなぜですか?
IDEの外部で実行していることを確認してください。それが鍵です。
-編集-私はSLaksのコメントが大好きです。「これらの回答の誤った情報の量は驚異的です。」:D
みんな落ち着いて。ほぼ全員が間違っていました。私は最適化を行いました。
私が行った最適化は十分ではなかったことがわかりました。
gettimeofdayを使用してGCCでコードを実行し(以下にコードを貼り付けます)、g++ -O2 file.cpp
C#よりもわずかに高速な結果を取得しました。
たぶんMSはこの特定のケースで必要な最適化を作成しませんでしたが、mingwをダウンロードしてインストールした後、私はテストされ、速度がほぼ同じであることがわかりました。
正義は正しいようです。PCで時計を使用することを誓い、それを使用してカウントしたところ、速度は遅くなりましたが、問題は解決しました。C ++の速度は、MSコンパイラではほぼ2倍遅くはありません。
私の友人がこれを私に知らせたとき、私はそれを信じることができませんでした。それで私は彼のコードを取り、それにいくつかのタイマーを置きました。
Booの代わりにC#を使用しました。私は常にC#でより速い結果を得ました。なんで?.NETバージョンは、使用した数に関係なく、ほぼ半分の時間でした。
C ++バージョン(悪いバージョン):
C ++バージョン(より良いバージョン):
C#バージョン:
GCCバージョン:
algorithm - フィボナッチ数の再帰を解く
私はこのアルゴリズムの数学を知らないので、助けが必要です。
アルゴリズム:
声明
n < 2 は O(1)
時間 n >=2 は O(1)
返す n は O(1) 時間 n>=2 は - 返す fib(n-1) + fib(n-2) は -
時間 n>=2 は T(n-1) + T(n-2) +O(1)
合計: O(1) T(n-1) + T(n-2) + O(1)
T(n) = O(1) n < 2の場合
T(n) = T(n-1) + T (n-2) + O(1) (n>=2 の場合)
php - 正しい解決策はありますか?
しばらく悩んでいたプログラミングの課題を解決した後は、「うまくいく、それで十分だ」といつも思っています。
私の意見では、これが本当に正しい考え方だとは思いません。常に最高のパフォーマンスでコーディングしようとすべきだと思います。
とにかく、これを言って、私はProjectEulerの質問を試しました。具体的には質問2です。
このソリューションをどのように改善できたでしょうか。本当に冗長な気がします。前の番号を再帰的に渡すように。
これは宿題ではないことに注意してください。私は数百年前に学校を辞めました。私は退屈していると感じており、プロジェクトオイラーの質問を通過しています
java - ここでの再帰はどのように機能しますか?
コード1:
fibonacci
それがまだ何であるかを説明し終えていない場合、どのように使用できますか?私はこのような他の場合に再帰を使用することを理解することができました:
コード2:
ただし、コード2の場合、n
最終的にはそれが満たされないポイントに到達しn>0
、メソッドは再帰的にそれ自体を呼び出すのを停止します。n=1
ただし、コード2の場合、開始点が2、3、5などの場合、1からどのように取得できるかわかりません。また、機能するためにはある意味で含まれている必要があるreturn fibonacci (n-1) + fibonacci (n-2)
ため、行がどのように機能するかはわかりませんが、まだ存在していません。fibonacci (n-2)
fibonacci (n-1)
私が見ている本はそれがうまくいくと言っています。それはどのように機能しますか?