問題タブ [non-deterministic]

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 投票する
0 に答える
71 参照

ruby - Ruby 1.9.3-p448 で一貫性のないランダムな「ロード」エラーが発生する

別の質問をする目的で、同じファイルを何度も読み込んで再読み込みしていました。load明らかな理由がなくても、かなりの割合で失敗することに気付きました。これはruby 1.9.3p448 (2013-06-27) [i386-mingw32]、metasploit に同梱されているものとほとんど同じです。

これはirbセッションのトランスクリプトです(ソースファイルは下に追加されています)-このトランスクリプトでは、キーを押してリターンを押すだけで、約1秒間隔でup-arrow同じコマンドを繰り返しました。load

そして、これが test-pack.rb コードです - このファイルの 11 行目はたまたまそのfail unless $bits.encoding == $ptr.encoding行です (少なくとも決定論的であるべきだと思われるでしょう):

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

tsql - TSQL を使用すると、COLLATE を指定した CAST() は非決定論的です。それを決定論的にする方法は?回避策は何ですか?

私は以下を含む機能を持っています:

これは、たとえば、フランス語のアクセントを削除するのに役立ちます。例えば:

を与えELECTRICITEます。

しかし、使用COLLATEすると関数が非決定論的になるため、列の計算された永続値として使用できません。

Q1. 決定論的関数を使用して、このようなアクセントを削除する別の (迅速かつ簡単な) 方法はありますか?

Q2. (おまけの質問) この計算された永続列を使用する理由は、検索するためです。たとえば、ユーザーが顧客の姓を 'Gagne' または 'Gagné' または 'GAGNE' または 'GAGNÉ' として入力すると、アプリは永続化された計算列を使用してそれを検索します。これを行うより良い方法はありますか?

編集: SQL Server 2012 と SQL-Azure を使用します。

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

sql-server - ファイルを開くための SQL ユーザー定義関数

ユーザー定義関数/ストア プロシージャ、またはファイル名が渡されたときに後で処理するためにファイルの内容を変数に読み込む別の SQL メカニズムを作成したいと考えています。このメカニズムは、トランザクション内で機能する必要があります。

私の計画はユーザー定義関数を使用することでしたが、OPENROWSET 関数ではファイル名として変数を渡すことができないため、「sp_executesql」ステートメント内で実行する必要があり、関数は非決定論的になります。

非決定論的な機能を回避するために使用できる回避策はありますか?

0 投票する
1 に答える
1981 参照

python - 一部のコードが Python2 では決定論的で、Python 3 では非決定論的であるのはなぜですか?

短い文字列、つまり「kmer」に一致する可能性のあるすべてのファジー文字列一致を計算するスクリプトを作成しようとしています。Python 2.7.X で動作する同じコードは、Python 3.3 で非決定論的な答えを返します。 .X で、その理由がわかりません。

コード内でディクショナリ、itertools.product、および itertools.combinations を反復処理しますが、それらすべてを中断または継続なしで完了するまで反復処理します。さらに、すべての結果を反復処理中の辞書ではなく、別の辞書に保存します。要するに、私は明らかな間違いを犯していないのに、Python2 と Python3 で動作が異なるのはなぜですか?

以下のサンプル、わずかに簡略化されたコード:

0 投票する
1 に答える
504 参照

algorithm - 非決定性を使用してクリークを検出しますか?

クリーク問題で非決定論を理解しようとしています。

コンピュータ サイエンスでは、クリーク問題とは、グラフ内の特定の完全なサブグラフ (「クリーク」)、つまり要素の各ペアが接続されている要素のセットを見つけることに関連する問題を指します。

ノードA、B、C、D、E、Fを含むグラフがあり、4のクリークが存在するかどうかを判断したいとします。

非決定性についての私の理解は、4 つのノード (B、C、D、F) を取得して推測し、4 つのノードすべての間に接続が存在するかどうかを確認することです。存在する場合、クリークが存在すると結論付け、存在しない場合、クリークは存在しないと結論付けます。

ただし、間違った選択をした可能性があるため、これが問題の解決にどのように役立つかはわかりません。

一般的な非決定論の適用を理解しようとしていると思います。

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

haskell - 無限入力の非決定性

入力が無限に多くの値を取ることができる場合、リストを使用して非決定性をモデル化することは問題があります。例えば

これは戻り[(0,1),(0,2),(0,3),...]、最初の要素が ではないペアを表示することはありません0

Cantor ペアリング関数を使用して、リストのリストを 1 つのリストに折りたたむことで、この問題を回避できます。たとえば、バインドのような演算子を定義して、出力をよりインテリジェントに並べ替えることができます。

これをモナドとしてまとめると、すべての可能なペアを列挙できます

これにより、

これははるかに望ましい結果です。ただし、代わりにトリプルを要求した場合、出力の順序は「適切」ではなく、最終的にすべての出力が含まれているかどうかさえわかりません-

(2,0,1)順序付けの前に表示されることに注意してください(0,1,1)-私の直感では、この問題の適切な解決策は、アルゴリズムへの明示的な入力である可能性があるか、暗黙的に与えられる可能性がある「サイズ」の概念に従って出力を順序付けることです(この例では、入力の「サイズ」は入力リスト内の位置です)。入力を組み合わせる場合、組み合わせの「サイズ」は、入力のサイズの関数 (おそらく合計) にする必要があります。

私が見逃しているこの問題に対するエレガントな解決策はありますか?

0 投票する
0 に答える
146 参照

python - 単純な PLY インタープリターで引数リストから非決定性を解決する

些細なことだと思うことを解決するのに苦労しています。PLY の calc の例を修正して、いくつかの関数呼び出しと、1 つ以上の式 (式は名前、数値、またはリテラル) を受け入れることができる引数リストを含めました。問題は、私の実装が非決定論的であることです。複数行の引数が正しく、そうでない場合もあります。

たとえば、実行中に次のように入力しています。

時々実行すると、次のようになります。

また、プログラムを実行すると、これが生成されます(これは避けたいです):

どちらの場合も、パーサーは正しいルール (p_expression_number) に入りますが、間違ったものを選択することもあります。半分の時間は、(コンマを無視して) 式に縮小され、次の引数であるコンマが理解できないと不平を言うように見えます。それ以外の時は大丈夫です。

これを解決するにはどうすればよいですか? 私はいくつかのことを試しましたが、例を調べましたが、わかりません。

これが私のコードです:

0 投票する
1 に答える
690 参照

python - Python 浮動小数点決定論

以下のコード (コサイン類似度を計算するため) を私のコンピューターで繰り返し実行すると、1.0、0.9999999999999998、または 1.0000000000000002 が出力されます。正規化関数を取り出すと、1.0 しか返されません。浮動小数点演算は決定論的であるべきだと思っていました。毎回同じコンピューター上の同じデータに同じ操作が適用されている場合、プログラムでこれが発生する原因は何ですか? スタック上の正規化関数が呼び出されている場所と関係があるのでしょうか? どうすればこれを防ぐことができますか?