현재 위치 - 주공해몽공식사이트 - 랜덤 번호 뽑기 점술 - 파이썬은 셀룰러 오토 마톤에 기반한 생명 게임을 실현했다

파이썬은 셀룰러 오토 마톤에 기반한 생명 게임을 실현했다

이번에 우리는 Python 으로 생명게임을 실현했는데, 이것은 간단한 세포 로봇이다. 특정 규칙에 따라 프로그램은 자동으로 현재 상태에서 다음 상태로 추론할 수 있습니다. 최종 품목은 다음과 같습니다.

삶의 게임 규칙에 대해 이야기 해 봅시다.

생명의 게임에서, 각 세포는 두 가지 상태, 즉 생과 죽음을 가지고 있다. 우리의 실현에서 노란색 세포는 살아있는 세포를 나타내고, 빨간색 세포는 죽은 세포를 나타낸다. 각 셀의 다음 상태는 셀과 그 주변 8 개 셀의 현재 상태에 의해 결정됩니다.

구체적으로 말하자면:

현재 세포는 살아있는 세포이다.

현재 단위는 죽은 단위입니다

설치되지 않은 표준 라이브러리:

타사 라이브러리:

가져오기 모듈:

우선, 세포의 생존 공간은 N * N 의 정사각형이며, 각 세포마다 켜기, 끄기 두 가지 상태가 있다는 것을 알아야 한다. 운전은 255 이고, 관문은 0 이다. 우리는 numpy 를 사용하여 N * N Np.random 의 정사각형을 생성합니다. choice 는 State.on 과 State.off 에서 같은 확률로 요소를 무작위로 선택하여 N * N 의 정사각형을 구성합니다.

둘째, 우리는 세포 주위의 살아있는 세포 수, 특히 경계 주위에 원이 있는 세포를 계산하는 방법을 알아야 한다. 나머지 방법을 사용하여 보드 크기가 9 * 9 인 경우 왼쪽 및 오른쪽 경계의 왼쪽 요소는-1% 9 = 8 로 계산되며 오른쪽 경계로 자동 축소됩니다. 세포 주위의 8 개 세포의 수치를 더하고 255 로 나누면 세포 주위의 살아있는 세포 수를 얻을 수 있다.

다음은 규칙의 번역입니다. 즉, 현재 세대의 상태에 따라 차세대 세포의 상태를 추론하는 것입니다. Initial 은 현재 세대의 행렬이고 data 는 차세대 행렬입니다. 초기값을 기준으로 데이터 값을 계산합니다. 총수는 주변 살아있는 세포의 수이다. 만약 현재 세포가 살아 있다면, 총수가 3 보다 크거나 2 보다 작으면, 다음 세대는 사망할 것이다. 현재 세포가 죽으면 총수는 3 이고, 다음 세대의 살아있는 세포는 그 세포로 번식할 것이다.

다음은 애니메이션 과정입니다. 처음 몇 줄은 그림의 기본 작업입니다. 그런 다음 matplotlib.animation 메서드를 사용했습니다. 여기서 Funanimation 은 매개 변수의 의미를 받아들입니다. fig 는 이미지 핸들이고 generate 함수는 각 프레임 이미지의 데이터를 업데이트해야 하는 함수입니다. 아래에 설명되어 있습니다. Fargs 는 첫 번째 매개 변수 이외의 genrate 함수이며 첫 번째 매개 변수는 Funanimation 으로 지정된 framenum (프레임 수) 을 통해 generate 함수에 전달됩니다. Frames 는 프레임 수, interval 은 이미지를 업데이트하는 간격, save_count 는 프레임에서 캐시까지의 값 수입니다.

저장 경로 (html) 를 지정하면 html 애니메이션으로 저장됩니다.

Generate 함수를 살펴 보겠습니다. 여기서 NUM 은 반복 수이고 frame_num 은 FuncAnimation 에서 프레임 수를 받습니다. 중첩된 for 루프를 통해 방진에 있는 각 요소의 상태를 하나씩 업데이트합니다.

마지막으로 명령줄 인수를 통해 프로그램을 실행할 수 있습니다.

-size 매개변수는 바둑판의 크기이고-seed 는 다른 임의 정사각형을 생성하는 임의 시드입니다.

고스파 글라이더 총

글라이더를 글라이더로 바꿀 수 있습니다. -애니메이션으로 저장된 주소를 저장합니다.