問題タブ [automaton]

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

finite-automata - 2つのオートマトン間の同等性

2つのオートマトン間の同等性を判断するための最良または最も簡単な方法はどれですか?

つまり、2つの有限オートマトンAとBが与えられた場合、両方が同じ言語を認識するかどうかをどのように判断できますか?

それらは両方とも決定論的または両方とも非決定論的です。

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

c - Getting values from previous "row" in 2D C array

I'm working on a 1D Game of Life (based upon the rules set out here at Mathworld). Essentially, each generation is represented as a row of 0's or 1's (dead or alive) and the next generation is created based upon the binary representation of a "rule" command line argument.

たとえば、ルール 30 は 00011110 (30 のバイナリ) に変わり、これを使用して、新しいセルを生成するか、次の世代で消滅するビット パターンを決定します。

これをプログラムするには、前の行から (ルールを適用するために) 3 つのグループのビットにアクセスできる必要があります。以下はサンプル画像です (開始行は常に 0 で中央が 1 であることに注意してください):

行を生成するには、上の行のビットを 3 つのグループに分けて調べ、ルールを 1/0、ライブ/ダイの決定として適用する必要があります。

基本的に、3 ビット パターンとルールを一致させ、それを使用して子孫の 0 または 1 を出力する予定です。これは一般的なアルゴリズムです:

私が問題を抱えているプログラムの部分は、前の行の内容にアクセスすることです。私のすべての試みは、ガベージまたは不正確なデータをもたらします。

要するに、前の行の値に 3 ビットのグループでアクセスするにはどうすればよいでしょうか?

行は次のように作成されます。

}

わかりましたので、これをかなり単純にして、2 つの配列 (前の列を保持するものと現在の列を保持するもの) を作成します。私が理解していないのは、なぜ出力配列を印刷するとガベージが生成されるのですか? output[i] = arr[i] は有効な式ではありませんか?

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

automaton - 文法のヘルプ (オートマトンの理論)?

こんにちは皆さん、質問があります。オートマトンに関する簡単な質問です。これがこの種の質問をするのに適切な場所であるかどうかわかりません。実際、今年は Compiler Construction のコースがあり、誰かが良いリソースを知っている場合は、ここに投稿することをお勧めします。

最初に、非常に基本的な質問があります。たとえば、次のような式があります: 2+3*5 、この式の文法を書く方法は? あいまいな例とあいまいでない例を1つずつ意味します ありがとう

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

haskell - オートマトンのように使用できるモナドはありますか?

ある入力データ型から出力データ型へのストリームトランスフォーマーを作成しています。入力はユーザーが行うため、イベント間には時間がかかります。各入力にはある程度のリソースの読み込みが必要なため、「将来を見据えて」、つまり、すべての可能な入力をメインの計算に送信し、結果に基づいてリソースをプリロードしたいと思います。

現在、各入力の後に常に1つの出力がありますが、これを変更することは最終的に興味深いものになる可能性があります。

私はRossPatersonによるAutomatonトランスフォーマーでそれを実装することに成功しました。私のソリューションが最適かどうかはわかりません。

  • これを行う方法の良い例はありますか?おそらくテストコードでも?
  • モナドでも達成できますか?(例?、なぜそれが不可能なのか説明?)

編集:より詳細な情報を求めた後、ここにコードを追加しました。今、私はそれを削除し(それは理解できませんでした)、他の説明を追加します。私の質問は答えられます。

私の意図は、矢印/ストリームトランスフォーマーなどに入力された各ユーザー入力の後にメインイベントループを停止させることでした。次に、現在のオートマトンの状態を保存し、考えられるすべての入力(偽のイベント)を1つずつオートマトンに送信し、それらをキャッシュするためにロードする必要のあるリソースを確認します。次の実際のイベントの後、応答性を高めるためにキャッシュを使用します。主な計算はこれに影響されるべきではありません。

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

java - dk.brics.automatonパッケージスレッドは安全ですか?

Apache Luceneは、 Bricsオートマトンパッケージの変更された形式を使用します。しかし、Bricsのスレッドは安全ですか?

より具体的には、異なるスレッドからの複数の同時オートマトンインスタンスをブロックせずに安全に処理できますか?

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

pushdown-automaton - 言語を認識する「プッシュダウンオートマトン」の設計:a ^ nb ^ m | n <= m <= 3n

私は試験のオートマトンと形式言語を勉強しています。言語を認識するPDAを設計する必要があります。

私は少し考えがありますが、私はこれで立ち往生しています:

すべての「a」と各「a」が「A」をプッシュする最初の思考プロセス

だから私は解決策を考えました、しかし私は正しくないと思います、私は何か間違ったことをしていますか?

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

regular-language - なぜ言語は規則的ではないのですか?

  1. 言語が規則的でないことを示します。L = {a^nb^m : n>m}
0 投票する
1 に答える
1031 参照

state-machine - DFA よりも強力ですが、DPDA よりも強力ではありません

有限オートマトンより強力で、決定論的プッシュ ダウン オートマトンより強力でないものはありますか?

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

regex - 正規表現エンジン dk.brics.automaton で Unicode を使用できますか?

正規表現で Unicode を使用したいと考えています。

たとえば、RegExp="\u0061" は "a" に一致します。しかし、dk.brics.automaton はこれをサポートしていないようです。「u0061」と​​一致することがわかりました。RegExp="\u0061" と RegExp="\\u0061" も試しました。どれもうまくいきません。

このツールを使用した経験がある場合は、解決策を教えてください。

ありがとう!