問題タブ [cellular-automata]

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

c# - C#毎回新しい値でIfステートメントを繰り返す

ネストされた if ステートメントを反復ごとに新しい値で反復することは可能ですか? 私は1次元のセルオートマトンを構築しようとしています(宿題のために、私はそれを否定できません).次のコードが間違いなく保証するので、私はC#に完全に慣れていません. 私は、利用可能な最も簡単で基本的な DIY の方法を使用してこのプログラムを作成しようとしましたが、わだち掘れに陥りました。

長さ 8 の 1 と 0 の文字列があるとします。

この設定を 3 つの 8 つの部分文字列セットに分割したいと思います。各セットは y の値とその両側の単一の値で構成されます。したがって、0 から数えると、3 番目のセットは 110 になり、7 番目は 001 になります。ただし、部分文字列は 1 番目から 6 番目のセットのみを提供します。これは、y の周りで好きなようにループできないため、次のように定義しました-

y1 を使用して、必要なすべての部分文字列を取得できました。これらは、基本的に次のように定義されていました-

次世代のセル オートマトンのルールは、このプログラムのユーザー次第です。つまり、ユーザーは部分文字列かどうか、たとえば 111->0 か 1 のいずれかをすべての反復で選択できます。各部分文字列に対して次の方法でifテーブルを(非常に多く)使用しました

ここで、a、b、c、d、e、f、g、h は int であり、ユーザーが選択したルールです。たとえば、ユーザーが各セット 000 が 1 の値になるように決定したとします。その場合、a=1 になります。b は {0,0,1} に対応し、c は {0,1,0} に対応します。ただし、この方法のかなり明白な問題は、取得できない int の世代が 1 つしかないことです。y1 をこの新しい世代 (文字列に変換されたもの) に置き換えたいと思います。これが不可能な場合はお知らせください。

このリンクは、物事を少しクリアするかもしれません

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

c# - C# でコンソールに書き込むと、Unicode 文字が正しく表示されない

C# で基本的なセル オートマトンを実行するコードを開発しています。Microsoft Visual Studio Express 2012 で作業しています。

全体的に私のコードは機能していますが、結果をコンソールに書き込むときに問題があります。

入力として uint を取り、その uint のビット表現に対応する文字列を返すメソッド「brep」を含むクラス「bitrep」を作成しました。

この問題の目的のために、返される文字列を 1 の場合は黒 (塗りつぶし) の四角、0 の場合は白 (空) の四角にする必要があります。

上記のコードでプログラムを実行すると、出力の例は次のようになります。

実線/黒の四角は 1 を表しますが、白の四角の代わりに 0 は ? として書き込まれます。

0 の白い四角形 (Unicode UTF-16 (10 進数) エンコーディング 9633 を持つ) の望ましい出力が正しく表示されないのはなぜですか?

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

dimension - セルオートマトンの Z オーダー曲線と逆 Z オーダー

Processing で、セル オートマトンを任意の数の次元 (合計、最近傍、ムーア近傍) でシミュレートするプログラムを作成しました。物事を単純化し、プログラムをできるだけ一般的なものにするために、セルの状態を 1 次元の整数配列に格納します。セルの n 次元の隣接セルを計算するために、1 次元配列をラスター順序として扱います (最初の座標をゼロから問題の空間のサイズまで反復し、次の座標を 1 ずつインクリメントし、最初の座標を反復します)。もう一度、など。)

コンピュータ画面の 2 次元で n 次元データを表示する洗練された方法はほとんどないため (特にこの場合、n は理論的には 2 から無限大までの範囲であり、実際には少なくとも 2 から 5 までの範囲である)、 Z オーダーを使用してみることにしましたが、この件に関して読んだことすべてが混乱し、すべての資料はデカルト座標 (x1、x2、x3...xn) の仮定から始まっているようです。私の場合はあまり当てはまりません。

私が望むのは、1 次元のセル配列の要素を別の 1 次元配列に格納し、n 次元の Z オーダーで並べ替え、その配列を 2 次元の Z オーダーで並べ替えた配列に変換できるようにすることです。表示できるようにします。私はこれを効率的な方法で実行したいと考えています (プログラムを毎秒少なくとも 0.5 フレームで実行し続けようとしていますが、これは小さなスペースでも 5 次元ではすでに困難です)。

ビット インターリービング アルゴリズムは知っていますが、32 ビット整数をオーバーフローさせずに処理に実装する方法がよくわかりません。どんな助けでも大歓迎です。詳細が必要な場合は、関連するコードを以下に示します (はい、面倒なことはわかっています。それが私の仕事です)。

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

cellular-automata - セルラー オートメーションは生きていない隣人を得る

私はセル オートマトン シミュレーションを開発しようとしていますが、問題は、各セル (青とベージュで示されている) の近くにあるセルと遠くにあるセルを取得し、どのセルが死んでいるかを判断し、いくつかのルールを使用してそれらを生き生きとさせることです。したがって、反復ごとに配列内のすべてのセルを実行し、これらのセルの近くと遠くのすべてのセルを効率的に取得したいと考えています。

ここに画像の説明を入力

ただし、グリッド上のセルの位置によっては、一部の隣接セルのみが使用可能になります。これまでのところ、これを行う唯一の方法は、使用可能なすべての隣接セルのリストを返す getNeighbours(cell) メソッドを使用することです。生きていないものを取得するために反復する必要があるそのセルの。

ただし、これはオーバーヘッドが大きく、グリッド内のセルごとに多くの比較を行う必要があります。

セルラーオートメーションで一般的に使用される一般的なアプローチはありますか? たぶん、私が使用できるデータ構造はありますか?これまでのところ、グリッドが十分に大きい場合、各反復には多くの時間がかかるためです。

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

lua - セルの座標を判断できる Lua の機能は何ですか?

私は Lua スクリプト (セル オートメーション) に取り組んでおり、セルラー空間を 4 つの部分に分割する必要があります。各部分には独自の機能があります。次のコードを使用します (一部の人にはばかげているように見えるかもしれません)。

上記のコードを書き直す正しい方法は何ですか?機能はありますか?ありがとうございました!

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

c - セルオートマトンが動かない

これに基づいてセルオートマトンを作成しようとしています。私はルール 90 のみに従う単純な方法でそれを行うことができましたが、ルールを受け入れるように変更したとき、何か間違ったことをしました。

これは、結果がどのように見えるかです。 http://natureofcode.com/book/imgs/chapter07/ch07_12.png

これは私のコードです:

次のinput.txtで 00000000000000000000000000000000000000100000000000000000000000000000000000000000

ありがとうございました!

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

class - Processingで書かれたプログラムは何もしないがエラーは出ない

クラスを使用した最初のプロジェクトとして、「人生のゲーム」を書くことにしました。cell というクラスを作成しました。その作業は、近くのセルが生きているかどうか (変数の状態が true) をチェックし、次のフレームでセルが生きているかどうかを判断することです。これが私のコードです