問題タブ [recursion]

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.

0 投票する
7 に答える
10540 参照

recursion - 二分木を作成するための再帰的アルゴリズムの反復バージョン

このアルゴリズムを前提として、反復バージョンが存在するかどうかを知りたいと思います。また、反復バージョンの方が高速であるかどうかを知りたいです。

このある種の疑似Python...

アルゴリズムはツリーのルートへの参照を返します

0 投票する
4 に答える
25853 参照

sql - MSSQL 2005 で再帰クエリを作成するにはどうすればよいですか?

次のテーブルがあるとします。

James のすべての子孫 (Jenna、Jennifer、Peter、Alice、Steve) を 1 つのクエリで取得したいと考えています。ありがとう、パブロ。

0 投票する
4 に答える
5630 参照

python - 考えられるすべての組み合わせをテキストファイルの別の行に書き込むプログラムが必要です

変数のセットのすべての組み合わせをテキストファイルに出力して、単語リストを作成するプログラムを作成したいと思います。各回答は別々の行に書き込み、1桁、2桁、および3桁のすべての結果を1つのテキストファイルに書き込む必要があります。

これを実現できるPythonプログラムを作成する簡単な方法はありますか?1、2、および3桁で可能なすべての2進数の組み合わせを印刷するときに期待する出力の例を次に示します。

0 投票する
7 に答える
16815 参照

ruby - Ruby アプリのスタック サイズを増やす方法。再帰的なアプリの取得: スタック レベルが深すぎます (SystemStackError)

stackoverflow.com にスタック オーバーフローの質問を投稿すると、なんと面白いことでしょう :-)

再帰的な Ruby コードをいくつか実行していますが、次の結果が得られます。"Stack level too deep (SystemStackError)"

(私はコードが機能することを確信しています。私は無限の再帰的な死のスパイラルに陥っていませんが、とにかくそれはポイントではありません)

私のRubyアプリの許可されたスタックの深さ/サイズを変更する方法はありますか?

これが Ruby の制限であるかどうかはよくわかりません。エラーに「スタック レベル」と表示されているため、Ruby が何らかの方法でスタックの「レベル」をカウントしているように見えるからです。

このプログラムを Vista と Ubuntu の両方で実行してみましたが、結果は同じでした。Ubuntu では、「ulimit -s」でスタック サイズを 8192 から 16000 に変更しようとしましたが、何も変わりませんでした。

編集:フィードバックをありがとう。
再帰関数を使用することは、おそらく最も堅牢な方法ではないことを認識しています。しかし、それも重要ではありません。スタックサイズを増やす方法があるのだろうか..期間。そして、私が述べたように、ルビースクリプトを実行する前に ulimit -s 16000 を実行しようとしました..改善はありません..私はそれを間違って使用していますか?

Edit2:実際には、コードのエッジケースで無限再帰が発生していました。
エラーが発生したときの切り捨てられた ruby​​ スタック トレース"Stack level too deep"は、少し誤解を招きます。
いくつかの関数を含む再帰動作を行うと、再帰の回数が実際よりもはるかに少ないという印象を受けます。この例では、190 回を少し超える呼び出しの後にクラッシュする可能性がありますが、実際には約 15000 回の呼び出しです。

-アンドレアス

0 投票する
11 に答える
3071 参照

java - この再帰メソッドをリファクタリングしますか?

私は再帰のアイデアにかなり慣れていないので、これは実際に再帰メソッドを書く最初の試みです。

最大の要素を出力するために、配列のサイズを保持する変数とともに、配列を渡す再帰関数 Max を実装しようとしました。

機能しますが、気分が良くありません。

また、一般的にクラスメートよりも static 修飾子を使用しているように見えることにも気付きました...

コードを改善する方法について、一般的なヒントとフィードバックを提供してもらえますか?

}

0 投票する
14 に答える
345139 参照

linux - 現在のディレクトリからの相対パスを使用して、Linux CLI でファイルを再帰的に一覧表示する

これはこの質問に似ていますが、unix で現在のディレクトリからの相対パスを含めたいと考えています。私が次のことをした場合:

フルパスは含まれません。たとえば、次のディレクトリ構造があります。

上記のコードは次を返します。

標準の Unix コマンドを使用して、現在のディレクトリからの相対パスを含めるにはどうすればよいですか?

0 投票する
3 に答える
34979 参照

python - Python:ジェネレータとして再帰的アルゴリズムを使用する

最近、重要な制約を持つ特定のシーケンスを生成する関数を作成しました。問題は自然な再帰的解決策にありました。さて、入力が比較的小さい場合でも、シーケンスは数千であるため、すべてのシーケンスでリストを埋めるために使用するのではなく、ジェネレーターとしてアルゴリズムを使用することをお勧めします。

これが例です。再帰関数を使用して文字列のすべての順列を計算するとします。次の素朴なアルゴリズムは、追加の引数'storage'を取り、それが見つかるたびに順列を追加します。

(非効率性については気にしないでください。これは単なる例です。)

ここで、関数をジェネレーターに変換します。つまり、ストレージリストに追加するのではなく、順列を生成します。

このコードは機能しませ(関数は空のジェネレーターのように動作します)。

私は何かが足りないのですか?上記の再帰的アルゴリズムを反復的なものに置き換えることなくジェネレーターに変える方法はありますか?

0 投票する
4 に答える
1532 参照

php - PHP はどのように再帰関数呼び出しを行いますか?

PHP (とりわけ) は、最も深い関数を最初に実行し、その方法を実行します。例えば、

テンプレートパーサーの上記の例と非常によく似たことをしています。タグを探します

$tag_nameという名前の変数に置き換えます。もう 1 つの例:

どうすればこれを行うことができますか?これは理にかなっていますか?そうでない場合は、より良い説明を試みることができます。

0 投票する
2 に答える
2075 参照

ruby-on-rails - パーシャルを介して再帰を達成するのはベストプラクティスですか?

HTML でネストされたセット構造を表示する必要があります。私は次の部分でそれをやっています:

これはコードを配置するのに最適な場所ですか? to_htmlこれは機能しますが、オブジェクトにツリー構造全体をダンプするメソッドが必要なように「感じます」 。

0 投票する
3 に答える
1532 参照

sql - Sql Server 2005 ビューで再帰を使用できますか?

OPTION (MAXRECURSION 0)ビューで使用して日付のリストを生成しようとしました。これはサポートされていないようです。この問題の回避策はありますか?

私が実際にやりたいことを説明する編集:

私は2つのテーブルを持っています。

table1: int 平日、bool 利用可能

table2: datetime 日付、bool 利用可能

私は結果が欲しい:ビュー1:日付(ここでは今年のすべての日)、利用可能(テーブル2から、またはテーブル2にない場合はテーブル1から)。

つまり、平日の日付に結合を適用する必要があります。この説明が理解できることを願っています。実際には、クエリでより多くのフィールドを持つより多くのテーブルを使用しているためです。

再帰を生成する次のコードを見つけました。