Wolfram 언어

핵심 언어

셀룰러 오토마타의 주기성

새로운 함수 FindTransientRepeat은 목록에서 과도 부분과 반복 부분을 식별할 수 있습니다. 이 함수는 셀룰러 오토마타 조사에 사용할 수 있습니다.

셀룰러 오토마타 (CA) 규칙 30을 살펴봅니다. 버전 11의 함수 RulePlot은 관련 변환 규칙을 찾는 매우 유용한 도구입니다.

In[1]:=
Click for copyable input
RulePlot[CellularAutomaton[30]]
Out[1]=

새로운 함수 CenterArray를 사용하여 CA의 초기 상태를 정의합니다.

In[2]:=
Click for copyable input
initc = CenterArray[7]
Out[2]=

위의 초기 조건에서 CA 규칙 30을 계산하고, 사각형의 이산 배열로 플롯합니다.

In[3]:=
Click for copyable input
ca30 = CellularAutomaton[30, initc, 20]; ArrayPlot[ca30, Mesh -> True]
Out[3]=

FindTransientRepeat을 사용하여 CA의 반복 부분을 알아낼 수 있습니다.

In[4]:=
Click for copyable input
tr30 = FindTransientRepeat[ca30, 2]; ArrayPlot[Last[tr30], Mesh -> True]
Out[4]=

CA의 규칙 90에 대해 같은 단계를 반복합니다.

In[5]:=
Click for copyable input
RulePlot[CellularAutomaton[90]]
Out[5]=
In[6]:=
Click for copyable input
ca90 = CellularAutomaton[90, initc, 20]; ArrayPlot[ca90, Mesh -> True]
Out[6]=
In[7]:=
Click for copyable input
tr90 = FindTransientRepeat[ca90, 2]; ArrayPlot[Last[tr90], Mesh -> True]
Out[7]=

관련 예제

de en es fr ja pt-br ru zh