問題タブ [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 投票する
2 に答える
11544 参照

python - 辞書の順序付けが非決定論的であるのはなぜですか?

私は最近、Python 2.7 から Python 3.3 に切り替えました。Python 2 では、辞書キーの順序付けは任意ですが一貫していたようですが、Python 3 では、eg で取得した辞書のキーの順序付けはvars()非決定的であるように見えます。

私が実行した場合:

Python 2.7 と Python 3.3 の両方で、次のようにします。

  • Python 2.7は一貫して私に与えます

    /li>
  • Python 3.3 では、ランダムな順序を取得できます。たとえば、次のようになります。

    /li>

この非決定性はどこから来るのでしょうか? そして、なぜのようなものです

…実行間で一貫性があり、常に与える

… ?

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

haskell - 適用可能なファンクターの構成を介して、短絡障害のある成功のリストをモデル化できますか?

ユーザー「singpolyma」はredditで、基礎となる一般的な構造があるかどうかを尋ねました。

無料のモナドが提案されましたが、これはアプリケーションファンクターを介してより一般的にモデル化できるのではないかと思いました。Abstracting with Applicativesで、Bazermanは、バイアスの方向に自然変換があれば、2つのApplicativeファンクターの合計もApplicativeファンクターであり、左右にバイアスがあることを示しています。これは私たちが必要としているもののように聞こえます!したがって、私は提案を始めましたが、すぐに問題にぶつかりました。誰かがこれらの問題の解決策を見ることができますか?:


まず、2つのファンクターの合計の定義から始めます。ここから始めたのは、成功または成功と失敗の合計タイプをモデル化するためです。

そして、私たちが使用したい2つのファンクターは次のとおりです。

Success簡単です-それは本質的にConst [a]です。しかし、Failure eよくわかりません。pure定義がないため、これは適用可能なファンクターではありません。ただし、これはApplyのインスタンスです。

次に、これらのファンクターの合計を、右から左への自然変換(つまり左バイアス)で定義できます。

そして今私たちがしなければならない唯一のことは私たちの自然変換を定義することです、そしてこれはそれがすべて崩壊するところです。

を作成できないことFailureが問題のようです。さらに、ハッキーで⊥を使用することもオプションではありません。これは、を持っている場合に評価されるためInR (Success ...) <*> InL (Failure ...)です。

何かが足りないような気がしますが、それが何なのかわかりません。

これはできますか?

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

deterministic - 別の CPU を使用すると、同じプログラムの出力が異なる可能性がありますか?

乱数や I/O を使用しない場合、同じプログラムは常に同じ結果を出力する必要がありますか、または別の CPU で別のものを出力する可能性はありますか (ただし、同じアーキテクチャ、再コンパイルの必要はありません) ? 数値近似で使用されるように、精度に大きく依存する float と double を使用した計算について特に考えています。

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

python - この opencl コードが非決定論的であるのはなぜですか?

次の python コードは、PyOpenCL を使用して、配列a_plus_bに配列 b の要素の合計を入力します (これは私の実際の目的ではありませんが、まだ問題を示していることがわかる最も単純なコードです)。

次の出力が得られます。

ただし、を 32 から 33 に変更すると、配列は何度も同じ要素ではなくなります。

実際、コードが実行されるたびに、異なる結果が生成されます。

違いの原因は何ですか?そうでないもの

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

haskell - リストモナドをどのように使用して、非決定論的計算の結果を計算/表現しますか?

コンテキストが現在に至るすべてのパスの履歴 (ツリーを形成する) であり、関数が過去の状態を条件とする現在の状態である計算を構築したいと考えています。関数自体は非決定論的であるため、1 つの過去の状態が複数の将来の状態になる可能性があるため、ツリーは分岐します。この計算の結果をツリーとして表現することは理にかなっていますが、それをリストモナドで簡潔に表現する方法はありますか? それとも、私が知らない他の構造ですか?

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

tsql - select * は t-sql 決定論的ですか?

具体的には、クエリが

常に同じ順序で列を返します。

非決定論的であるという兆候は見たことがありませんが、アプリケーションの仕様により、これが真実であるとは想定できません。誰かが何らかの方法でドキュメントを教えてもらえますか? 検索がうまくいきませんでした。

前もって感謝します。

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

audio - FMODスペクトルデータ決定論

system::getSpectrumto を使用して周波数データを取得し、オーディオ分析に FMOD を使用しています。ここでの私の質問は、FMOD が舞台裏で FFT を実行するために使用するデータについてです。たとえば、出力レートが 44100Hz で、getSpectrum() を 1 秒間に 30 回 (0.03333 秒ごとに) 1024 サンプルで呼び出すとします。

FMOD は、再生された最後の 1024 個の PCM サンプルを取得し、それらに対して FFT を実行するだけですか? この場合、1470 個のサンプルが getSpectrum() 呼び出しの間に実際に読み取られて再生された場合、最後の 1024 個のサンプルのみが処理され、中間の 446 個のフロートに関する情報が失われます。次に、getSpectrum を呼び出す間隔の精度が非常に重要になります。一度 0.033 秒後に呼び出すと、次の 0.034 秒後に呼び出すと、同じ結果が得られないため、すべてが FPS に大きく依存し、完全に未定。FMOD の内部メカニズムと、これを決定論的にする方法についての洞察を誰かに教えてもらえますか?

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

c++ - 「printf」はQtで非決定的であるように見えますか?

「printf」は標準cであり、決定論的であるべきであることは知っています。しかし、Qt で実行すると、より非決定論的な応答 (クロック サイクル) が見られます。これは、Qt が応答に「ポーク」を追加したことが原因でしょうか?

ミューテックスを使用する関数を呼び出す複数のスレッドがあります。1 つのスレッドが入ると、他のスレッドが完了するまでスイッチを設定できません。数秒間問題なく動作しているように見えた後、スレッドが 10 から 1 スレッドに殺されているように見えました。そこで、遅延を追加してみました: (k=k+1: ヘルプなし)、(ループ k=k+1: ヘルプなし)、(usleep が動作)、(printf) はランダムな遅延の作成と許可で動作しますすべてのスレッドが実行を継続します。