問題タブ [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.
loops - mathematica決定論的オートマトン
オートマトンが決定論的であるかどうかを返すモジュールを数学で作りたい。同じ状態で始まり、同じシンボルを読み取る2つの遷移がある場合、または空の遷移が存在する場合、オートマトンは決定論的ではないと考えています。
このコードをデバッグしたいのですが、できません:
Aはオートマトンで、最初の要素は状態のリスト、2番目はアルファベット、3番目は遷移、4番目は初期状態、5番目は最終状態のリストです。
主な問題は、関数をAに適用すると、関数が終了しないことです。
編集:解決済み
これが最終的なコードです。
c++ - 標準ライブラリ コンテナ イテレータのインクリメント/デクリメント イテレータは決定論的ですか?
標準ライブラリ コレクション (std::map など) のイテレータをインクリメント/デクリメントするのにかかる時間に上限はありますか? (コンテナ自体は変更されていないと仮定します。)
haskell - Haskellの型に統合された関数を呼び出すにはどうすればよいですか?
私は学生で、プログラミング コースでは Haskell を学ぶ必要があります。だから私はそれが初めてで、それほど多くの経験がありません。また、フォーラムに質問を投稿することに慣れていません。
そのため、まずライブラリを投稿します。一緒に作業する必要があります。(DA : 決定論的オートマトン)
toDA 関数は、リスト表現でオートマトンを取得し、それをオートマトンに変換します。この機能とライブラリの残りの部分は、講義の議長によって与えられます。
問題は、型の関数を書くことです
この関数は、オートマトン、状態、および文字列を受け取り、文字列を読み取った後にオートマトンの状態を返します。
これまでのところ、アイデアは明確です。タイプ DA のオートマトンは、状態遷移関数デルタを持っています。したがって、関数「advance」は、何らかの方法でそのデルタ関数を呼び出す必要があります。しかし、型に統合された関数にアクセスするにはどうすればよいでしょうか?
algorithm - すべての決定論的アルゴリズム ALG について、ジョンのトラックの合計距離が
A、B、C の 3 つの人気ビーチ リゾートが並んでいます。
リゾート間の距離は 1k です。ジョンは、ビーチ リゾート A とビーチ リゾート C にある別のアイスクリーム トラックを所有しています。明日、アイスクリームを欲しがっている子供たちでいっぱいの 2 台のバスがビーチ リゾート (A、B、C) に到着しますが、ジョンは来ません。各バスがどのリゾートに向かうか、各バスがいつ到着するかを把握します (バスは異なる時間に到着する可能性があります)。彼は、バスがビーチ リゾートに到着したらすぐに、アイスクリーム トラックを現在の場所からビーチ リゾートに派遣する予定です。各トラックは 1 つのビーチ リゾートにのみサービスを提供できます。つまり、トラックがビーチ リゾートに派遣されると、1 日中そこに留まらなければなりません。ジョンは、バスの場所に到達するためにトラックが移動する距離の合計を最小化するアルゴリズムを設計したいと考えています。
すべての決定論的アルゴリズム ALG について、ALG の下でジョンのトラックが移動する合計距離が 3OPT であるシナリオ (つまり、バスの到着予定と場所) があることを示します。ここで、OPT はそのシナリオにおける最適解の値です。
iphone - Apple A5 と Apple A6 CPU 間の浮動小数点決定論
iOS 用の Box2D 物理演算を使用したマルチプレイヤー ゲームを開発しています。マルチプレイは相変わらずロックステップ方式。ゲームは物理ワールドを固定タイムリーに更新します。同じ CPU を搭載した iOS デバイス間で同期がずれることはありません。
ただし、Apple A6 チップを搭載した新しい iOS デバイスでテストすると、非同期が発生しました。ログ ファイルを表示すると、desync が非常に高速に発生しているような印象を受けます。これはおそらく、まだ特定できていない浮動小数点演算が原因であると思われます。
ゲームの設計で同期が必要なモジュールは Box2D だけであり、ログによると、すべてのマルチプレイヤー コマンドと入力が非同期ではないことを保証できます。
すべての超越関数を変更しようとしました: sinf、cosf、pow、sqrtf、atan2f を double バージョンに変更しましたが、うまくいきませんでした。
一部のコンパイラ オプションのように、Apple A6 が浮動小数点数を Apple A5 と同じように扱うように強制する方法はありますか?
どんな答えでも本当に感謝します。
cryptography - 決定論的アルゴリズムを使用してブール値を暗号化する最も安全な方法は?
私の学校の作品の 1 つで、いくつかのフィールドを暗号化するために決定論的アルゴリズム (http://en.wikipedia.org/wiki/Deterministic_encryption) を使用する必要があります。
この特定のケースでは、テーブルをブール値で暗号化する必要があります。これは問題ありませんが、決定論的アルゴリズムを使用してもほとんど役に立ちません。
どうしてこんなことに?(あなたは尋ねるかもしれません)
たとえば、値「true」を暗号化すると、常に「AB1」の暗号文が取得され、値 false を暗号化すると、常に「SQ2」の暗号文が取得されます。したがって、値「true」と「false」で満たされたテーブルを持つ代わりに、値「AB1」と「SQ2」で満たされたテーブルがあります。攻撃者は、テーブルにブール値が格納されていることをすぐに理解し、AB1=true および SQ2=false であると理解するのにそれほど時間はかかりません。
これは私が宿題で防ぎたいことです。この問題を回避するために、特定のプロパティを持つ数値を使用してみました。たとえば、「true」の値は素数に置き換えられ、「false」の値は非素数に置き換えられます。したがって、私のテーブルは多くの異なる素数と非素数でいっぱいになります。
計算できる素数の数が「限られている」 (大きな素数を計算するには非常に長い時間がかかる) という小さな問題がなければ、これは許容できる解決策です。10000000 の間隔で、素数は 664579 のみです (6.64579% のみ)。
そこで、素数の代わりに奇数を使用することを検討しましたが、奇数の品質についてはわかりません。攻撃者は暗号から「奇数」という性質を取り出して攻撃できると思います。
奇妙さについての私の仮定は正しいですか?他の解決策はありますか?何かアイデアはありますか?
事前にペドロに感謝します。
c++ - g ++で決定論的なバイナリ出力を生成する方法は?
私は非常に規制された環境で働いており、製品を構築するたびに同じバイナリ入力を生成して同じソースコードを提供できる必要があります。現在、ビルドごとに変更される結果のバイナリに日付/時刻などを書き込まないようにパッチが適用された古いバージョンのg ++を使用していますが、g++4.7.2に更新したいと思います。誰かがパッチを知っているか、または2つの同一のソースコードを取得して同一のバイナリ出力を生成するために何を探す必要があるかについての提案がありますか?
regular-language - 決定性有限オートマトンの組み合わせ
私はこのようなものに本当に慣れていないので、ここでの無邪気さをお詫びします。
Deterministic Finite Automaton
次の言語を認識するDFAを 作成します。
これの各部分の自動化は(at least 2 a's, odd # of b's)
個別に簡単に作成できます...誰かがそれらを1つに組み合わせる体系的な方法を説明できますか?ありがとう。
big-o - 繰り返し文字列のチューリングマシンの時間計算量
1テープの決定性マシン、2テープの決定性マシン、1テープの非決定性マシンの、3つのケースで繰り返し文字列(ww)を受け入れるチューリングマシンの時間計算量を把握しようとしています。
今の私の考えはそれです
1テープの決定論的マシンは、O(n ^ 2)を使用して中点を見つけ(入力の最初と最後の記号を繰り返し消して)、O(n ^ 2)を使用して前半と秒の半分を比較します(必要に応じて)文字列のn/2を通過するたびに、n / 2回前後に移動します)、
2テープTMは、中点を見つけるためにO(n ^ 2)を取り、後半を2番目のテープにコピーするためにO(n)を取り、次に2つの半分を同時に比較するためにO(n)を取ります。
非決定論的なものは中点を推測し、O(n ^ 2)を使用して2つの半分を比較します。
しかし、3つのケースすべてがO(n ^ 2)の同じ時間計算量を持つべきではないように感じるので、私の推論がどこかで間違っているのか(または私が正しいのか、問題についてよく考えているだけなのか)疑問に思いました。任意の入力をいただければ幸いです!
random - clojureで確定的シャッフルを作成できますか?
プログラムを実行するたびに同じになるセットのシャッフルを作成したいと思います。
これはそれを行う1つの方法です:
しかし、評価には時間がかかり、無駄でかなりエレガントではないようです。
すべてのシーケンスを生成および消費せずに、シャッフル39038を直接生成する方法はありますか?
(私はそれらをハードコーディングできること、またはマクロを使用してコンパイル時間を取り戻すことができることをすでに認識しています。これも少しごみのようです。)