SlideShare a Scribd company logo
1 of 9
Download to read offline
ì	
  
1次元セルオートマトン	
 
くらげノート
Cell	
  class(.h)	
 
今回はセルの数は9個です。	
  
動きを見るのに少なすぎる気がしましたが、9個。	
  
	
  
無駄に前回のクラスを継承していますが意味があ
りません。	
  
まあ気持ちです。	
  
	
  
前回と関数も変数もお変わりないです。	
  
	
  
ちなみにコピーコンストラクタを作っていますが、	
  
これも結局使いませんでした・・・。	
  
	
  
せっかくなんで継承とコピーコンストラクタは軽
く触れます。
Cell	
  class(.cpp)1/2	
 
さきほど書き忘れていましたが、cell_size	
  は60で定義
しています。	
  
	
  
引数付きコンストラクタはexを引数にもらい、x座標を
調整します。	
  
隣とぶつからないようにcell_sizeの分だけずらしていま
す。後は同じ。	
  
	
  
コピーコンストラクタです。	
  
参照渡しでオブジェクトを受け取り、そのオブジェク
トと同じ値のオブジェクトを作ります。	
  
これは、次のようにオブジェクトを宣言したときに呼
ばれます。	
  
	
  
Class	
  c2	
  =	
  c1;	
  
すでにあるc1をもとにc2を作れます。
Cell	
  class(.cpp)2/2	
 
前回と同じcalcState()です。	
  
	
  
	
  
checkState()も変化なしです。	
  
ポインタ渡しでオブジェクトを受け取り、
get_nowStateで値をもらいます。	
  
しかし、if文はやはりいらないですね・・・。	
  
	
  
よく出てくるcoutですが、C言語で言うとこ
ろのprin@()です。	
  
coutの後ろ<<で文字を送ります。文章は
“”で囲み、変数はそのままでいいです。	
  
endlというのは改行を伝えます。	
  
	
  
使用するには	
  
include	
  <iostream>を忘れないように。
testApp(.h)	
 
配列でセルを作ります。それ以外は特にないので次へ。
testApp(.cpp)1/3	
 
setup()は前回と同じです。	
  
update()では次のページで紹介するcheckCalcという関数を呼びます。	
  
draw()では今回配列なのでfor文をつかって順番に描画します。	
  
これはほぼ同時といっていい範囲だと思います。
testApp(.cpp)2/3	
 
restart()も前回とほぼ
変わらず、配列なの
でfor文で、ここでそ
れぞれのxをもとに
引数付きで初期化さ
れます。	
  
	
  
checkCalc()では、自
分の前後のセルを
checkStateさせてか
ら計算に入ります。	
  
	
  
backIやnextIは次の
ページで紹介します。
testApp(.cpp)3/3	
 
nextIとbackIはほぼ同じです。	
  
nextIの方を説明します。	
  
周期的境界条件のために、9個目のセル
の次は1個目のセルになるように次のイ
ンデックスを指定します。	
  
	
  
backIも同様に1個目のセルの前が9個目
のセルになるようにしています。
1次元セルオー”トマト”ン

More Related Content

Viewers also liked

Viewers also liked (16)

数学に包まれた生活 - 日曜にゼータ関数を(略 #ロマンティック数学ナイト
数学に包まれた生活 - 日曜にゼータ関数を(略 #ロマンティック数学ナイト 数学に包まれた生活 - 日曜にゼータ関数を(略 #ロマンティック数学ナイト
数学に包まれた生活 - 日曜にゼータ関数を(略 #ロマンティック数学ナイト
 
エッシャーと双曲幾何 - 第2回 #日曜数学会 in 札幌
エッシャーと双曲幾何 - 第2回 #日曜数学会 in 札幌エッシャーと双曲幾何 - 第2回 #日曜数学会 in 札幌
エッシャーと双曲幾何 - 第2回 #日曜数学会 in 札幌
 
素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe 素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe
 
Contiv 20160914
Contiv 20160914Contiv 20160914
Contiv 20160914
 
Neural Turing Machines
Neural Turing MachinesNeural Turing Machines
Neural Turing Machines
 
素数とゼータに包まれる19時 #MathPower
素数とゼータに包まれる19時 #MathPower 素数とゼータに包まれる19時 #MathPower
素数とゼータに包まれる19時 #MathPower
 
クンマーの合同式とゼータ関数の左側 - 数学カフェ #mathcafe_height
クンマーの合同式とゼータ関数の左側 - 数学カフェ #mathcafe_height クンマーの合同式とゼータ関数の左側 - 数学カフェ #mathcafe_height
クンマーの合同式とゼータ関数の左側 - 数学カフェ #mathcafe_height
 
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門
 
チューリング・マシンとコンピュータ工学
チューリング・マシンとコンピュータ工学チューリング・マシンとコンピュータ工学
チューリング・マシンとコンピュータ工学
 
日曜数学者のための面白いと思ってもらえるプレゼン術
日曜数学者のための面白いと思ってもらえるプレゼン術日曜数学者のための面白いと思ってもらえるプレゼン術
日曜数学者のための面白いと思ってもらえるプレゼン術
 
酉年の素数(第440回科学勉強会)
酉年の素数(第440回科学勉強会)酉年の素数(第440回科学勉強会)
酉年の素数(第440回科学勉強会)
 
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
 

1次元セルオー”トマト”ン