YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← 07x-01 Elementary Cellular Automaton

Get Embed Code
2 Languages

Showing Revision 1 created 07/21/2014 by osawakjvta.

  1. この問題では入力文字列の使い方を
    説明していきます
  2. この場合は...x ....です
  3. いくつかのルールに従ってこれを変更します
  4. ルールを説明しましょう
  5. 文字列の中の3文字に目を向けます
  6. そして右にあるルールに従って
  7. 下の列の中央の1文字に変更します
  8. この時点で上の数字は気にしないでください
    後ほど説明します
  9. 特定した3文字は..xです
  10. ..xを中央の文字に変更するとxになります
  11. 次の文字列で新たな文字列になりますが
  12. この位置はxになります
  13. その前の位置に来る文字は
  14. ...から与えられます
  15. ...の中央は.になります
  16. 端の文字はつなげる必要があります
  17. ここにあるこの.をこの左の.と
  18. この右にある.につなげます
  19. 再び...になります
  20. ...の中央を.に変えます
  21. 次に移動します
  22. 次に入力しなければならないのは.x .です
  23. .x .の中央はxに変わるとなっています
  24. x ..の中央をxに変えます
  25. 再び...です
  26. 中央は.です
  27. ...なので中央が.です
  28. ..そして1つ目の文字がこの最後に来ます
  29. ですから再び...となり.になります
  30. これで文字列の1つの変更を終了します
  31. これをもう一度繰り返します
  32. 先ほどの結果は1世代です
  33. これが2世代です
  34. 一般的にこれを行う時は
    文字列の最初から開始します
  35. 説明するだけでしたので
    中央の文字の変更を示す方が簡単でした
  36. それでは今回は文字列の始めから
    繰り返しを行ってみましょう
  37. 上の行を見ます
  38. 文字列の1つ目の要素がその左側に.を有していて
  39. 右側に.があるので つまり...です
  40. ですから.になります
  41. 次は..xがあります
  42. そして..xはというと
    このルールの2つ目でxを与えています
  43. .x xはxです
  44. xxxは.です
  45. xx .は.です
  46. x ..はxです
  47. ...は.です
  48. そして...も.です
  49. このように続けることができます
  50. こうして5世代後には
  51. 文字列...xx .xxになります
  52. とても面白いパターンを作り上げていますね
  53. ルールの2行目の青色のxとドットの
  54. 異なる様々な組み合わせで
    これを行うことができます
  55. 実に256通りもできます
  56. どのパターンを使用するか
  57. 正確にはどのルールにするのか決定するため
  58. このルールに数字を与えます
  59. そして最終行にxがある場合は常に
  60. この数字を加算します
  61. つまりここでは2+4+8+16です
  62. そうすると結果は30となります
  63. なのでここではパターン30を使用しています
  64. パターン30の代わりに
    異なるパターンを選ぶこともできます
  65. パターン69を選択すると仮定しましょう
  66. 69を成すものは何でしょう
  67. 先ほどの数字を探す必要があります
  68. そしてどのようにその数字から
  69. 69を作成するか算出します
  70. 128は69になりません
    このような数字は必要ありません
  71. 64にはなります ですから64が必要です
  72. 32は必要ありません
  73. 16や8も必要ありません
  74. ですが4は必要です
  75. 2は必要ありませんが1は必要です
  76. これで64+4+1で69になります
  77. つまり必要なのは1ということです
  78. そして...の中央の文字を
  79. xで置き換えるということです
  80. そして2はありません 4はあります
  81. 8はありません
  82. 16はありません
  83. 32はありません
  84. 64はあります
  85. 128はありません
  86. 以前と同じ入力から始めることができます
  87. それは...x ....でした
  88. 最初にドットがある時 その左隣はドットです
  89. その右隣もドットです
  90. ...があります それはxで置き換えます
  91. ...が再びxになります
  92. .. xは.です
  93. この下の文字を忘れないでください
  94. . x .つまりルールの数字4はxです
  95. x ..は.です
  96. ...はxです 次も同じです
  97. その次の...もxになります
  98. これが行1です
  99. 同じことを続けます さらに数行入力します
  100. そうすることで
    パターンによって起きることが確認できます
  101. 行6を見てみます
  102. 行5にあるものと
    まったく同じであることが確認できます
  103. つまり行7もまったく同じになることを意味しています
  104. このように固定されるパターンを与える値があります
  105. カオス的になる値もあり様々なことが起きているのです
  106. 検証してみるととても面白いですね
  107. それでは実際のコードに戻りましょう
  108. 皆さんに行ってほしいことは
    入力に文字列を使用することです
  109. それはドットとxの文字列です
  110. パターン数はゼロと255の間です
  111. ドットとxの動きを作り出すために
    それを使用しなければなりません
  112. この情報を提供します
  113. つまりxx.などの文字列に一致する数です
  114. これがあなたが探すパターンです
  115. そして最後に世代の数です それは正の整数です
  116. 1、2、3、4などです
  117. あなたの出力はその世代または
  118. 世代nの文字列になるはずです
  119. 例えば入力文字列がここにあるものだったら
  120. パターンは69で世代は5です
  121. .x .x .x .xを返します