tag:crieit.net,2005:https://crieit.net/users/muzudho1/feed むずでょの投稿 - Crieit Crieitでユーザーむずでょによる最近の投稿 2024-04-25T02:15:46+09:00 https://crieit.net/users/muzudho1/feed tag:crieit.net,2005:PublicArticle/18823 2024-04-24T20:22:22+09:00 2024-04-25T02:15:46+09:00 https://crieit.net/posts/my-favorite-manga-artist-hayashi-yoshihiko 林快彦先生の漫画へのリンクまとめ <p>林先生の漫画が読めるリンク、コミックス購入へのリンク、その他情報を貼っていきます</p> <h1 id="2021年 オクトキル"><a href="#%EF%BC%92%EF%BC%90%EF%BC%92%EF%BC%91%E5%B9%B4%E3%80%80%E3%82%AA%E3%82%AF%E3%83%88%E3%82%AD%E3%83%AB">2021年 オクトキル</a></h1> <p>第101回手塚賞佳作<br /> (※2024年4月24日現在)この作品は公開されていないと思います</p> <p>情報:<br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://natalie.mu/comic/news/540347">コミックナタリー > ジャンプで3号連続新連載がスタート 3作家全員が手塚賞出身者&連載デビュー作</a></p> <h1 id="2021年 ラブリー・ランナーズ・ハイ"><a href="#%EF%BC%92%EF%BC%90%EF%BC%92%EF%BC%91%E5%B9%B4%E3%80%80%E3%83%A9%E3%83%96%E3%83%AA%E3%83%BC%E3%83%BB%E3%83%A9%E3%83%B3%E3%83%8A%E3%83%BC%E3%82%BA%E3%83%BB%E3%83%8F%E3%82%A4">2021年 ラブリー・ランナーズ・ハイ</a></h1> <p>2021年4月期JUMP新世界漫画賞<br /> スマホアプリのジャンプ+で無料で公開されています</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://shonenjumpplus.com/episode/3269754496363847128">ジャンプ+ > ラブリー・ランナーズ・ハイ</a></p> <h1 id="2022年 絵に描いた餅を描いた餅"><a href="#%EF%BC%92%EF%BC%90%EF%BC%92%EF%BC%92%E5%B9%B4%E3%80%80%E7%B5%B5%E3%81%AB%E6%8F%8F%E3%81%84%E3%81%9F%E9%A4%85%E3%82%92%E6%8F%8F%E3%81%84%E3%81%9F%E9%A4%85">2022年 絵に描いた餅を描いた餅</a></h1> <p>2022年 第16回金未来杯(ゴールドフューチャーカップ)のエントリーNo.1 が初出だそうです。<br /> 週刊少年ジャンプ編集部のツイッターで公開されています</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">吹奏楽部と漫研の二人の話「<a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E7%B5%B5%E3%81%AB%E6%8F%8F%E3%81%84%E3%81%9F%E9%A4%85%E3%82%92%E6%8F%8F%E3%81%84%E3%81%9F%E9%A4%85?src=hash&ref_src=twsrc%5Etfw">#絵に描いた餅を描いた餅</a>」林快彦(1/12)<a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E6%BC%AB%E7%94%BB%E3%81%8C%E8%AA%AD%E3%82%81%E3%82%8B%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%B0?src=hash&ref_src=twsrc%5Etfw">#漫画が読めるハッシュタグ</a><a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85?src=hash&ref_src=twsrc%5Etfw">#魔々勇々</a> <a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/wj41?src=hash&ref_src=twsrc%5Etfw">#wj41</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/JjAsY7a9bW">pic.twitter.com/JjAsY7a9bW</a></p>— 少年ジャンプ編集部 (@jump_henshubu) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/jump_henshubu/status/1701143582944485800?ref_src=twsrc%5Etfw">September 11, 2023</a></blockquote> <p>情報:<br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/金未来杯">Wikipedia > 金未来杯</a></p> <p>他の方の感想ブログ:<br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://jump-tantei.com/【第16回金未来杯】エントリーno-1『絵に描いた/">【第16回金未来杯】エントリーNo.1『絵に描いた餅を描いた餅』感想</a></p> <h1 id="2022年 へのへのもへじと棒人間とパンツ"><a href="#%EF%BC%92%EF%BC%90%EF%BC%92%EF%BC%92%E5%B9%B4%E3%80%80%E3%81%B8%E3%81%AE%E3%81%B8%E3%81%AE%E3%82%82%E3%81%B8%E3%81%98%E3%81%A8%E6%A3%92%E4%BA%BA%E9%96%93%E3%81%A8%E3%83%91%E3%83%B3%E3%83%84">2022年 へのへのもへじと棒人間とパンツ</a></h1> <p>スマホアプリのジャンプ+で無料で公開されています。<br /> YouTube で無料でボイスコミックとして公開されています</p> <p><a target="_blank" rel="nofollow noopener" href="https://shonenjumpplus.com/episode/316112896925763346">週刊少年ジャンプ > 2022年 へのへのもへじと棒人間とパンツ</a></p> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/tDDQcx-pjNQ?si=2y2kJhNTOXy__-4h" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/MAjNd9rnnUw?si=gCn_-nJ9H9r5_IFE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div> <h1 id="2023年 魔々勇々"><a href="#%EF%BC%92%EF%BC%90%EF%BC%92%EF%BC%93%E5%B9%B4%E3%80%80%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85">2023年 魔々勇々</a></h1> <p>週刊少年ジャンプで2023年9月~2024年4月まで連載されました。<br /> スマホアプリのジャンプ+で第1話が無料で公開されています。<br /> ゼブラックで第1話~3話が公開されているそうです。<br /> YouTube で PV が公開されています。<br /> YouTube で ボイスコミック形式で第1話~3話が公開されています</p> <p><a target="_blank" rel="nofollow noopener" href="https://shonenjumpplus.com/episode/14079602755195551554">ジャンプ+ > 魔々勇々 No.1</a></p> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/b27WosLZuBY?si=dZqbaTQiIdermJNJ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/EHJ2zYIFKQ4?si=N9ckGScd-Tp4BRtl" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/dqzohHLLTvg?si=drOAPsNTLq5qdgO2" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/Xtf_y67B-LE?si=aGieTolKDiUFA20g" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">週刊少年ジャンプ41号本日発売📚新連載3連弾第1弾‼表紙&巻頭カラーは『魔々勇々』🎉センターカラーは『アオのハコ』『逃げ上手の若君』『僕とロボコ』‼️※今週の『僕のヒーローアカデミア』『ONE PIECE』『ルリドラゴン』は休載します電子版👇<a target="_blank" rel="nofollow noopener" href="https://t.co/3nRohLsMWR">https://t.co/3nRohLsMWR</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/06ClrImiSd">pic.twitter.com/06ClrImiSd</a></p>— 少年ジャンプ編集部 (@jump_henshubu) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/jump_henshubu/status/1700886851786281213?ref_src=twsrc%5Etfw">September 10, 2023</a></blockquote> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">連載開始より話題沸騰🌋『<a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85?src=hash&ref_src=twsrc%5Etfw">#魔々勇々</a>』本日2/2待望の第1巻発売‼今なら第1巻購入で30%還元💰※2/8まで1~3話無料試し読み公開中🔽<a target="_blank" rel="nofollow noopener" href="https://t.co/wjuKK1NzJf">https://t.co/wjuKK1NzJf</a>📱集英社公式アプリ <a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E3%82%BC%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF?src=hash&ref_src=twsrc%5Etfw">#ゼブラック</a><a target="_blank" rel="nofollow noopener" href="https://t.co/qHSKVHX8Mk">https://t.co/qHSKVHX8Mk</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/C7ZkBDWog9">pic.twitter.com/C7ZkBDWog9</a></p>— ゼブラック(集英社公式・総合電子書店) (@zebrack_comic) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/zebrack_comic/status/1753319934242042256?ref_src=twsrc%5Etfw">February 2, 2024</a></blockquote> <p>情報:<br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://www.shonenjump.com/j/rensai/mamayuyu.html">『魔々勇々』|集英社『週刊少年ジャンプ』公式サイト</a></p> <h2 id="魔々勇々 コミックス1巻"><a href="#%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85%E3%80%80%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF%E3%82%B9%EF%BC%91%E5%B7%BB">魔々勇々 コミックス1巻</a></h2> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">◤第 1巻カバー解禁◢❖━━━━━━━━❖【<a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85?src=hash&ref_src=twsrc%5Etfw">#魔々勇々</a>】第1巻来週2月2日(金)発売❖━━━━━━━━❖戦争が終わり平和に暮らす勇者と魔王。そこへ異世界から歴戦の勇者が顕れる。世界の均衡は崩れ、混沌へと歩み出す。第1話試し読み▼<a target="_blank" rel="nofollow noopener" href="https://t.co/pEy3cakHb6">https://t.co/pEy3cakHb6</a><a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E3%81%BE%E3%81%BE%E3%82%86%E3%81%86?src=hash&ref_src=twsrc%5Etfw">#ままゆう</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/FwnfnilKBw">pic.twitter.com/FwnfnilKBw</a></p>— 少年ジャンプ編集部 (@jump_henshubu) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/jump_henshubu/status/1750685341009539247?ref_src=twsrc%5Etfw">January 26, 2024</a></blockquote> <p>情報:<br /> * 📖 <a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/魔々勇々-1-ジャンプコミックス-林-快彦/dp/4088838173/ref=tmm_other_meta_binding_swatch_0?_encoding=UTF8&dib_tag=se&dib=eyJ2IjoiMSJ9.NZHs0LETaKDTJ9hpKNs6KWSvsaQuyEwCst_w1UMlTycFXgRgi5WxuhtJHi_Qy5oX5i_zDMduudGDlL-_vGyEyPu68I7ppo8fCphrbNpnwTUZVS_XKkqgVaZjzSegfvUn_Y_tonY5ZaaFFq6Ta3InUgC4tjTjCFoiAYYpek7fe1ZUqEuK3Xdu92VZG1cghSWkIJzvSsXDgkqJkV7zXiRK3g_BbNCxB_tBk3f7tduFWPBj1ejOLJmoyg2x_5oB5G5yizpluZ7koeMQmYpoY9iSFMFS6du_SLJvDK5TlW1v8bE.zN_u2S0CILJGnGZ5z7Y5nlWNQeDSAC7butJC6m33qMo&qid=1713958759&sr=8-2">Amazon > 魔々勇々1(コミックス・紙)</a><br /> Amazon のWebサイトには Kindle版もあります</p> <h2 id="魔々勇々 コミックス2巻"><a href="#%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85%E3%80%80%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF%E3%82%B9%EF%BC%92%E5%B7%BB">魔々勇々 コミックス2巻</a></h2> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">◤第2巻カバー解禁◢❖━━━━━━━━❖【<a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85?src=hash&ref_src=twsrc%5Etfw">#魔々勇々</a>】第2巻来週4月4日(木)発売❖━━━━━━━━❖異世界から現れる複数の勇者と魔王──ジャンプ発、ニューノーマルバトルファンタジー漫画第1巻は発売後即重版、第2巻は各書店にて現在予約受付中です<a target="_blank" rel="nofollow noopener" href="https://t.co/rOKwJxJoC8">https://t.co/rOKwJxJoC8</a><a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E3%81%BE%E3%81%BE%E3%82%86%E3%81%86?src=hash&ref_src=twsrc%5Etfw">#ままゆう</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/awKwi2YTtx">pic.twitter.com/awKwi2YTtx</a></p>— 少年ジャンプ編集部 (@jump_henshubu) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/jump_henshubu/status/1772921843126554773?ref_src=twsrc%5Etfw">March 27, 2024</a></blockquote> <p>情報:<br /> * 📖 <a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/魔々勇々-2-ジャンプコミックス-林-快彦/dp/4088838769/ref=tmm_other_meta_binding_swatch_0?_encoding=UTF8&dib_tag=se&dib=eyJ2IjoiMSJ9.NZHs0LETaKDTJ9hpKNs6KWSvsaQuyEwCst_w1UMlTycFXgRgi5WxuhtJHi_Qy5oX5i_zDMduudGDlL-_vGyEyPu68I7ppo8fCphrbNpnwTUZVS_XKkqgVaZjzSegfvUn_Y_tonY5ZaaFFq6Ta3InUgC4tjTjCFoiAYYpek7fe1ZUqEuK3Xdu92VZG1cghSWkIJzvSsXDgkqJkV7zXiRK3g_BbNCxB_tBk3f7tduFWPBj1ejOLJmoyg2x_5oB5G5yizpluZ7koeMQmYpoY9iSFMFS6du_SLJvDK5TlW1v8bE.zN_u2S0CILJGnGZ5z7Y5nlWNQeDSAC7butJC6m33qMo&qid=1713958759&sr=8-1">Amazon > 魔々勇々2(コミックス・紙)</a><br /> Amazon のWebサイトには Kindle版もあります</p> <h2 id="魔々勇々 コミックス3巻"><a href="#%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85%E3%80%80%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF%E3%82%B9%EF%BC%93%E5%B7%BB">魔々勇々 コミックス3巻</a></h2> <p>2024年7月4日発売予定</p> <h2 id="魔々勇々 コミックス4巻(完結)"><a href="#%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85%E3%80%80%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF%E3%82%B9%EF%BC%94%E5%B7%BB%EF%BC%88%E5%AE%8C%E7%B5%90%EF%BC%89">魔々勇々 コミックス4巻(完結)</a></h2> <p>2024年8月2日発売予定</p> <p><書きかけ></p> むずでょ tag:crieit.net,2005:PublicArticle/18815 2024-04-19T21:56:08+09:00 2024-04-21T16:38:30+09:00 https://crieit.net/posts/mamayuyu 「魔々勇々」という漫画のタイトルがツイッターのトレンドに入らない仮説について <p>この記事は、2024年4月19日(金)~21(日)に書いています。<br /> 話しが3つと、提言が1つ、そのあと資料があります。</p> <h1 id="話し<その1> ツイッターのトレンドに入らないと言われている &quot;魔々勇々&quot; という名前"><a href="#%E8%A9%B1%E3%81%97%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%91%EF%BC%9E%E3%80%80%E3%83%84%E3%82%A4%E3%83%83%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%81%AB%E5%85%A5%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E8%A8%80%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B+%26quot%3B%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85%26quot%3B+%E3%81%A8%E3%81%84%E3%81%86%E5%90%8D%E5%89%8D">話し<その1> ツイッターのトレンドに入らないと言われている "魔々勇々" という名前</a></h1> <h2 id="完結"><a href="#%E5%AE%8C%E7%B5%90">完結</a></h2> <p>2024年4月8日 月曜日 0時、 週刊少年ジャンプで連載されていた漫画 魔々勇々 は完結しました。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85?src=hash&ref_src=twsrc%5Etfw">#魔々勇々</a> 最新話本日更新 【No.29 CLOSER 】本編は今週で完結いたしますご愛読いただいた皆様本当にありがとうございました🙏続々重版中の1巻、そして最新2巻は大好評発売中!そして7月に3巻、8月に最終4巻が大幅追加描き下ろしで発売予定!林快彦先生の次回作にご期待ください🙇<a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97?src=hash&ref_src=twsrc%5Etfw">#ジャンプ</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/snpLVX5cEB">pic.twitter.com/snpLVX5cEB</a></p>— 少年ジャンプ編集部 (@jump_henshubu) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/jump_henshubu/status/1776990543672955253?ref_src=twsrc%5Etfw">April 7, 2024</a></blockquote> <p>7月4日 コミックス3巻、<br /> 8月2日 コミックス4巻<br /> の発売が予定されていますので、引き続き 応援📢 しましょう。</p> <h2 id="「魔々勇々」という単語がツイッターのトレンドのアルゴリズムに引っかからないという仮説"><a href="#%E3%80%8C%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85%E3%80%8D%E3%81%A8%E3%81%84%E3%81%86%E5%8D%98%E8%AA%9E%E3%81%8C%E3%83%84%E3%82%A4%E3%83%83%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%AB%E5%BC%95%E3%81%A3%E3%81%8B%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%84%E3%81%86%E4%BB%AE%E8%AA%AC">「魔々勇々」という単語がツイッターのトレンドのアルゴリズムに引っかからないという仮説</a></h2> <p>同日 10時40分、 <a target="_blank" rel="nofollow noopener" href="https://mamayuyublog.com/">魔々勇々感想・考察ブログ</a> を書いている haruta さんが次のツイートを見つけました。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">>そもそも「魔々勇々」という単語がTwitterのトレンドのアルゴリズムに引っかからないっぽいのが残念ですえ?どういうことよ?!これは悔しい。 <a target="_blank" rel="nofollow noopener" href="https://t.co/Mp3LZDBeyG">https://t.co/Mp3LZDBeyG</a></p>— haruta (@harutamamayuyu) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/harutamamayuyu/status/1777330598870388905?ref_src=twsrc%5Etfw">April 8, 2024</a></blockquote> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">罠やんけこんなん!!!!!!たのむわ!!!!ウワーーーーーーッ!!! <a target="_blank" rel="nofollow noopener" href="https://t.co/zjwavgO5Dt">https://t.co/zjwavgO5Dt</a></p>— いち (@ArchonShu) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/ArchonShu/status/1779544536907485453?ref_src=twsrc%5Etfw">April 14, 2024</a></blockquote> <h1 id="話し<その2> スマホで打ち込みやすい ”#ままゆう” ハッシュタグ"><a href="#%E8%A9%B1%E3%81%97%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%92%EF%BC%9E%E3%80%80%E3%82%B9%E3%83%9E%E3%83%9B%E3%81%A7%E6%89%93%E3%81%A1%E8%BE%BC%E3%81%BF%E3%82%84%E3%81%99%E3%81%84+%E2%80%9D%EF%BC%83%E3%81%BE%E3%81%BE%E3%82%86%E3%81%86%E2%80%9D+%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%B0">話し<その2> スマホで打ち込みやすい ”#ままゆう” ハッシュタグ</a></h1> <h2 id="&quot;魔々勇々&quot; はスマホで打ち込みにくいのでは?"><a href="#%26quot%3B%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85%26quot%3B+%E3%81%AF%E3%82%B9%E3%83%9E%E3%83%9B%E3%81%A7%E6%89%93%E3%81%A1%E8%BE%BC%E3%81%BF%E3%81%AB%E3%81%8F%E3%81%84%E3%81%AE%E3%81%A7%E3%81%AF%EF%BC%9F">"魔々勇々" はスマホで打ち込みにくいのでは?</a></h2> <p>魔々勇々 No.1 連載時点では、魔々勇々がツイッターのトレンドに入らないのはスマホで打ち込みにくいからでは、と思われていたようだ。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">どうでもいいけど魔々勇々、先週作品名じゃなくて「ジャンプの新連載」でトレンド入りしてたの、めちゃくちゃ入力しにくいんだな…になって笑うぜ(カグラバチは普通に作品名で入ってる)</p>— タイツマン𝕏 (@india8mkk) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/india8mkk/status/1703462701526360432?ref_src=twsrc%5Etfw">September 17, 2023</a></blockquote> <h2 id="まおなじゆうおなじ"><a href="#%E3%81%BE%E3%81%8A%E3%81%AA%E3%81%98%E3%82%86%E3%81%86%E3%81%8A%E3%81%AA%E3%81%98">まおなじゆうおなじ</a></h2> <p>「まおなじゆうおなじ」と打ち込んでいる人も。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">「まおなじゆうおなじ」ってめんどくさい打ち方してわざわざトレンドに載らない文字打ってたのか…教えていただきありがとうございます</p>— ミソシル (@misosiru089) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/misosiru089/status/1780964272778170531?ref_src=twsrc%5Etfw">April 18, 2024</a></blockquote> <h2 id="ままゆう ハッシュタグの推奨"><a href="#%E3%81%BE%E3%81%BE%E3%82%86%E3%81%86%E3%80%80%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%B0%E3%81%AE%E6%8E%A8%E5%A5%A8">ままゆう ハッシュタグの推奨</a></h2> <p>👇 公式で <code>#ままゆう</code> ハッシュタグが使われた例</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">◤第 1巻カバー解禁◢❖━━━━━━━━❖【<a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85?src=hash&ref_src=twsrc%5Etfw">#魔々勇々</a>】第1巻来週2月2日(金)発売❖━━━━━━━━❖戦争が終わり平和に暮らす勇者と魔王。そこへ異世界から歴戦の勇者が顕れる。世界の均衡は崩れ、混沌へと歩み出す。第1話試し読み▼<a target="_blank" rel="nofollow noopener" href="https://t.co/pEy3cakHb6">https://t.co/pEy3cakHb6</a><a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E3%81%BE%E3%81%BE%E3%82%86%E3%81%86?src=hash&ref_src=twsrc%5Etfw">#ままゆう</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/FwnfnilKBw">pic.twitter.com/FwnfnilKBw</a></p>— 少年ジャンプ編集部 (@jump_henshubu) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/jump_henshubu/status/1750685341009539247?ref_src=twsrc%5Etfw">January 26, 2024</a></blockquote> <p>👇 少なくともコミックス1巻発売後の頃、漫画の柱で ままゆう ハッシュタグが推奨された。<br /> 読者の中には <strong>魔々勇々</strong> がスマホで打ちにくいという意見に応えたものでは、というツイートもあった。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">魔々勇々はSNS対策があんまり上手くなかった気がするまず正式名称が打ち辛すぎる公式の推奨タグが出たのも1巻発売ごろだし<a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E3%81%BE%E3%81%BE%E3%82%86%E3%81%86?src=hash&ref_src=twsrc%5Etfw">#ままゆう</a> <a target="_blank" rel="nofollow noopener" href="https://twitter.com/hashtag/%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85?src=hash&ref_src=twsrc%5Etfw">#魔々勇々</a></p>— タナカ定刻 (@tanakatarouMDR) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/tanakatarouMDR/status/1777514698084376915?ref_src=twsrc%5Etfw">April 9, 2024</a></blockquote> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">これは わたし個人のスクラップブックだが、ままゆう ハッシュタグの初出は 少なくとも No.22 の柱には見られるな( ^ω^ ) <a target="_blank" rel="nofollow noopener" href="https://t.co/0bPspK3K1F">pic.twitter.com/0bPspK3K1F</a></p>— むずでょ (@muzudho1) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/muzudho1/status/1781272536480989562?ref_src=twsrc%5Etfw">April 19, 2024</a></blockquote> <h2 id="しかし &quot;#ままゆう&quot; もツイッターのトレンドには入らなさそう"><a href="#%E3%81%97%E3%81%8B%E3%81%97+%26quot%3B%23%E3%81%BE%E3%81%BE%E3%82%86%E3%81%86%26quot%3B+%E3%82%82%E3%83%84%E3%82%A4%E3%83%83%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%81%AB%E3%81%AF%E5%85%A5%E3%82%89%E3%81%AA%E3%81%95%E3%81%9D%E3%81%86">しかし "#ままゆう" もツイッターのトレンドには入らなさそう</a></h2> <p>後述しますが、 <strong>#(ハッシュタグ)+ひらがな4文字</strong> もツイッターのトレンドには入らないと言われています。 <strong>ひらがな</strong> を名指しされています。<br /> (※無間地獄を見ているようだ)</p> <p>片仮名を含む <code>#それスノ</code>, <code>#フロイニ</code> といったハッシュタグはトレンド入りしていました。</p> <h1 id="話し<その3> 表記ゆれのパターン数が多い"><a href="#%E8%A9%B1%E3%81%97%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%93%EF%BC%9E%E3%80%80%E8%A1%A8%E8%A8%98%E3%82%86%E3%82%8C%E3%81%AE%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E6%95%B0%E3%81%8C%E5%A4%9A%E3%81%84">話し<その3> 表記ゆれのパターン数が多い</a></h1> <div class="table-responsive"><table> <thead> <tr> <th>単語</th> <th>トレンド入りしやすさのわたしの推測</th> <th>見かける頻度のわたしの主観</th> <th>解説</th> </tr> </thead> <tbody> <tr> <td>魔々勇々</td> <td>×</td> <td>1番多い</td> <td>作品名。ジャンプ公式や書店、まとめサイトのようなインフルエンサーが使うので1番多い。スマホで打ちにくいので草の根で広がるのは難しそう</td> </tr> <tr> <td>魔魔勇勇</td> <td>可能だろう</td> <td>なかなか多い</td> <td>"々" の字を打ちこむのがめんどくさい気持ちは分かる</td> </tr> <tr> <td>魔勇</td> <td>×</td> <td>個人レベルで一般的に普及してる</td> <td>魔々勇々の時代の1つ前の時代。ジャンプの感想文を書いている人がよく使う。文字数が少なくて済む</td> </tr> <tr> <td>魔々</td> <td>×</td> <td>稀</td> <td>勇々まで打つのがめんどくさくなった</td> </tr> <tr> <td>ままゆうゆう</td> <td>可能だろう</td> <td>ほどほど</td> <td>作品名をひらがなに開いたもの</td> </tr> <tr> <td>ままゆーゆー</td> <td>可能だろう</td> <td>ちょっぴり</td> <td>伸ばしてみた</td> </tr> <tr> <td>ままゆゆ</td> <td>×</td> <td>わりと多い</td> <td>縮めてみた。自然発生した、ひらがなに開いた読み方の進化形</td> </tr> <tr> <td>ままゆう</td> <td>×</td> <td>増えてきた</td> <td>ジャンプ編集部が推奨したハッシュタグの名前。まおゆうと言ってしまいそうになる</td> </tr> <tr> <td>ままゆー</td> <td>可能だろう</td> <td>稀</td> <td><code>おりほー</code> 、 <code>すわほー</code> がトレンド入りするのを見て、わたしが使ってる呼称</td> </tr> <tr> <td>魔王と勇者の漫画</td> <td>可能だろう</td> <td>稀</td> <td>作品名なんだっけかな、あの、あれ。ダイ大の方が有名</td> </tr> <tr> <td>mamayuyu</td> <td>可能だろう</td> <td>多い</td> <td>海外の人が使ってる。目に入るのが魔々勇々一色ではないのが文化の違い</td> </tr> </tbody> </table></div> <p>ツイッターでは、アルファベットの表記ゆれはある程度 同一視してくれるそうだが、日本語については分からない。</p> <p>ばらばらの個人たちの草の根活動で一番多そうな <strong>魔々勇々</strong> 、 <strong>魔勇</strong> 、 <strong>ままゆゆ</strong> 、 <strong>ままゆう</strong> 全部トレンドに入るのに向いてないし、<br /> トレンドに入る可能性のある筆頭と思う <strong>魔魔勇勇</strong> と <strong>ままゆうゆう</strong> が数を分け合っているのも、トレンドに入るのに不利だろう。<br /> (※無間地獄を見ているようだ2回目)</p> <p>わたしが <strong>#ままゆう</strong> や、 <strong>ままゆう</strong> を使って大量に投稿していると、他の人のツイートを読みたいのに むずでょ というやつばっかりでてきて邪魔だ、という意見があったので<br /> 邪魔にならないよう、かつトレンド入りの可能性を残して、わたしは <strong>ままゆー</strong> を使っているが、公式ではないし、誰の間とも合意が取れていないし、推奨もしない。<br /> 特に公式のハッシュタグは <strong>#ままゆう</strong> があるから、 <strong>ままゆー</strong> をハッシュタグにはしない。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">こんばんは⭐️「ままゆう」なんですね!!オッケーです。そうなんですよね、ままゆゆだったり魔勇だったり色々で、どれが一番使われてるのかわからなくて…ありがとうございます!もっと早くに知っとくべきでした💦</p>— のの (@sorairo_obake) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/sorairo_obake/status/1780607064437670185?ref_src=twsrc%5Etfw">April 17, 2024</a></blockquote> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">これからはままゆうで行きます!</p>— 歌詠鳥⚫ (@Utayomi_Uziie) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/Utayomi_Uziie/status/1781134122385334586?ref_src=twsrc%5Etfw">April 19, 2024</a></blockquote> <h1 id="わたし個人からの提言"><a href="#%E3%82%8F%E3%81%9F%E3%81%97%E5%80%8B%E4%BA%BA%E3%81%8B%E3%82%89%E3%81%AE%E6%8F%90%E8%A8%80">わたし個人からの提言</a></h1> <p>(2024-04-21 Sun)がらりと主張を変更しました。</p> <p>作者が思いをもって名前を付け、ファンが呼びやすいように呼ぶような、そこに余計なものが混じっていない ありきたりな関係が良いかと思います。</p> <p>魔々勇々というネーミングがSEO対策を考えられていなくて悪い、という考え方が全てではありません。<br /> SEOを気にして、作品名や、その呼び方を、ツイッターという私企業のいち製品の仕様にフィットさせるというのもおかしな話しです。</p> <h2 id="トレンド入りするのに、作品名でそれをやろうとしなくていい"><a href="#%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E5%85%A5%E3%82%8A%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AB%E3%80%81%E4%BD%9C%E5%93%81%E5%90%8D%E3%81%A7%E3%81%9D%E3%82%8C%E3%82%92%E3%82%84%E3%82%8D%E3%81%86%E3%81%A8%E3%81%97%E3%81%AA%E3%81%8F%E3%81%A6%E3%81%84%E3%81%84">トレンド入りするのに、作品名でそれをやろうとしなくていい</a></h2> <p>魔々勇々をツイッターのトレンドに入れて有名にさせよう、と考えてもいいとは思いますが、<br /> それを作品名で行おうとしなくてもよいはずです。</p> <p>めんどくさい一手間が嫌でツイートしなくなったり、不自然な内容でエキセントリックなツイートになってしまいます。<br /> ツイッターのトレンド入りを気にせず、書きやすいように書きましょう。</p> <p>魔々勇々のハッシュタグの名前部分として <code>ままゆう</code> が推奨されていますし、トレンドに入らないですが普段遣いしてもいいような気がします。</p> <h2>ハッシュタグは <code>#ままゆう</code> でも <code>#魔々勇々</code> でもどっちでもいい</h2> <p>スマホで打ちやすいのは <strong>#ままゆう</strong> ですし、公式のジャンプ編集部が推奨していて、作者との合意も取れているはずです。<br /> その他、 <strong>#魔々勇々</strong> も正式名称なので自然です。</p> <p><strong>#ままゆう</strong> も <strong>#魔々勇々</strong> も、ツイッターのトレンドに入らないそうですが、仕方ありません。</p> <h2 id="週刊少年ジャンプが魔々勇々を応援するようなハッシュタグを別に作ってほしい"><a href="#%E9%80%B1%E5%88%8A%E5%B0%91%E5%B9%B4%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%81%8C%E9%AD%94%E3%80%85%E5%8B%87%E3%80%85%E3%82%92%E5%BF%9C%E6%8F%B4%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AA%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%B0%E3%82%92%E5%88%A5%E3%81%AB%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BB%E3%81%97%E3%81%84">週刊少年ジャンプが魔々勇々を応援するようなハッシュタグを別に作ってほしい</a></h2> <p>例えば <code>#ままゆう</code> とは別に、週刊少年ジャンプが <code>#ままゆうを応援しよう</code> みたいな何かキャンペーンのようなハッシュタグを作ってほしい。<br /> 草の根からボトムアップしていくのは難しそうだ。</p> <h1 id="ままゆうを応援しよう 📢"><a href="#%E3%81%BE%E3%81%BE%E3%82%86%E3%81%86%E3%82%92%E5%BF%9C%E6%8F%B4%E3%81%97%E3%82%88%E3%81%86+%F0%9F%93%A2">ままゆうを応援しよう 📢</a></h1> <p>2024年4月19日現在、魔々勇々には</p> <p>7月4日のコミックス3巻発売予定日、<br /> 8月2日のコミックス4巻発売予定日の</p> <p>あと2回 ツイッターのトレンド入りをするチャンスが残されています。</p> <p><strong>#ままゆう</strong> ハッシュタグを上手く使ったり、あるいは普通に、やるだけやってみましょう。</p> <p>👇 なお、わたしが調べたところでは、林快彦先生が読み切りを掲載した2021年以降、およそ3年と少しの間に2000アカウント以上の方が 林快彦先生やその読み切り作品、魔々勇々についてツイートしていました。<br /> このリストは 特にファンというわけでもないという方も含めての数です。</p> <p><a target="_blank" rel="nofollow noopener" href="https://twitter.com/i/lists/1765557185889837374">Twitter > むずでょのリスト > ままゆう</a></p> <h1 id="以下、細かな話しや資料"><a href="#%E4%BB%A5%E4%B8%8B%E3%80%81%E7%B4%B0%E3%81%8B%E3%81%AA%E8%A9%B1%E3%81%97%E3%82%84%E8%B3%87%E6%96%99">以下、細かな話しや資料</a></h1> <p>(2024-04-20 Sat)変更。他の節と齟齬が出た。</p> <h2><code>#ままゆう</code> はツイッターのトレンドに入るか?</h2> <p>入らないのではないか?</p> <ul> <li><p>📖参考:<a target="_blank" rel="nofollow noopener" href="https://kingandprince-support.hatenablog.jp/entry/2021/07/11/010930">King & Prince support for beginners ~はじめてさん🔰への応援ガイド~ > 補講【 トレンド 】トレンドに入る条件</a></p> <ul> <li><code>#(ハッシュタグ)+ひらがな4文字</code> は、ツイッターのトレンドには入らない。<br /> だから <code>#ままゆう</code> はツイッターのトレンドに<strong>入らない</strong></li> </ul></li> <li><p>📖参考:<a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/Twitterトレンド">Wikipedia > Twitterトレンド</a></p> <ul> <li><code>#(ハッシュタグ)+ひらがな4文字</code> は、ツイッターのトレンドには入らない。<br /> だから <code>#ままゆう</code> はツイッターのトレンドに<strong>入らない</strong></li> </ul></li> </ul> <h2><code>ままゆう</code> はツイッターのトレンドに入るか?</h2> <p>単に <code>ひらがな</code> 4文字でも、ツイッターのトレンドに入らないという仮説がある。これは争点だ。次の単語がトレンド入りしたという反例がある</p> <ul> <li><code>おりほー</code> - オリックスが勝ったのだろう。伸ばし棒はひらがなではないということか?</li> <li><code>すわほー</code> - スワローズが勝ったのだろう。伸ばし棒はひらがなではないということか?</li> </ul> <p>意見</p> <ul> <li>📖参考: <a target="_blank" rel="nofollow noopener" href="https://kingandprince-support.hatenablog.jp/entry/2021/07/11/010930">King & Prince support for beginners ~はじめてさん🔰への応援ガイド~ > 補講【 トレンド 】トレンドに入る条件</a> <ul> <li>単に <code>ひらがな4文字</code> でも、ツイッターのトレンドに入らない。<br /> だから <code>ままゆう</code> はツイッターのトレンドに<strong>入らない</strong></li> </ul></li> <li>📖参考:<a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/Twitterトレンド">Wikipedia > Twitterトレンド</a> <ul> <li>言及なし。<br /> だから <code>ままゆう</code> がツイッターのトレンドに入るかどうかは分からない</li> </ul></li> </ul> <h2><code>魔勇</code>, <code>林快彦</code>, <code>林先生</code> はツイッターのトレンドに入るか?</h2> <p>入らないのではないか?</p> <ul> <li>📖参考:<a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/Twitterトレンド">Wikipedia > Twitterトレンド</a> <ul> <li>3文字ではトレンドに入らず、4文字以上が必要。(※わたしの解釈:半角英字は除くと思う)<br /> だから <code>魔勇</code>, <code>林快彦</code>, <code>林先生</code> はツイッターのトレンドに<strong>入らない</strong></li> </ul></li> </ul> <h2><code>魔々勇々</code> はツイッターのトレンドに入るか?</h2> <p>入らないか、入りにくいのではないか?</p> <ul> <li>わたしの仮説 <ul> <li><strong>魔々勇々</strong>, "<strong>#魔々勇々</strong>" は <strong>々</strong> の字が記号・句読点のような扱いをされているとしたら、まるで <code>魔、勇。</code> と書いているようなものなので、ツイッターのトレンドには入らないのではないか?</li> </ul></li> </ul> <h2><code>#林快彦</code> はツイッターのトレンドに入るか?</h2> <p>わたしには分からない。</p> <ul> <li>📖参考: <a target="_blank" rel="nofollow noopener" href="https://kingandprince-support.hatenablog.jp/entry/2021/07/11/010930">King & Prince support for beginners ~はじめてさん🔰への応援ガイド~ > 補講【 トレンド 】トレンドに入る条件</a> <ul> <li><code>岸優太</code> はツイッターのトレンドに入らないが、<code>#岸優太</code> はツイッターのトレンドに入ると書いている</li> </ul></li> <li>📖参考:<a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/Twitterトレンド">Wikipedia > Twitterトレンド</a> <ul> <li>言及なし。<br /> だから <code>#林快彦</code> がツイッターのトレンドに入るかどうかは分からない</li> </ul></li> </ul> <h2 id="その他の注意点"><a href="#%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9">その他の注意点</a></h2> <ul> <li>📖参考: <a target="_blank" rel="nofollow noopener" href="https://kingandprince-support.hatenablog.jp/entry/2021/07/11/010930">King & Prince support for beginners ~はじめてさん🔰への応援ガイド~ > 補講【 トレンド 】トレンドに入る条件</a> <ul> <li>トレンド入りしずらくなるという憶測 <ul> <li>画像、動画が添付されている</li> <li>特殊文字を含む単語やタグ</li> <li>絵文字の使用 <ul> <li>2024年4月20日23時、シャワー(🚿)やキラキラ(✨)が使われているトレンドに入っているツイートは見かける</li> </ul></li> <li>10文字未満のツイート</li> </ul></li> </ul></li> </ul> <p>愛読者のみなさんや、まとめサイト、書店、コミックスを買ってきた人、ジャンプの感想を書く人、アンケを出したと報告する人は 漫画のタイトルを打ち間違えないよう "々" の字もしっかりと打って 正式名称を書くことが多いので、ツイッターのトレンドには入らない(のかもしれない)。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">失礼しました。なるべく正式タイトルで表記するようにかつ、文字数を省略することを念頭に置いていたのですが、トレンドのことは気にかけていませんでした。コミックの販売も控えていますし今後は配慮いたします。<(_ _)></p>— エルフなの (@nano_bokuhari) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/nano_bokuhari/status/1781167192714907906?ref_src=twsrc%5Etfw">April 19, 2024</a></blockquote> <h2 id="(この節は読み飛ばしても構いません)仮説の解説その1 &quot;々&quot; の字は Unicode では「CJKの記号及び句読点」"><a href="#%EF%BC%88%E3%81%93%E3%81%AE%E7%AF%80%E3%81%AF%E8%AA%AD%E3%81%BF%E9%A3%9B%E3%81%B0%E3%81%97%E3%81%A6%E3%82%82%E6%A7%8B%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%EF%BC%89%E4%BB%AE%E8%AA%AC%E3%81%AE%E8%A7%A3%E8%AA%AC%E3%81%9D%E3%81%AE%EF%BC%91%E3%80%80%26quot%3B%E3%80%85%26quot%3B+%E3%81%AE%E5%AD%97%E3%81%AF+Unicode+%E3%81%A7%E3%81%AF%E3%80%8CCJK%E3%81%AE%E8%A8%98%E5%8F%B7%E5%8F%8A%E3%81%B3%E5%8F%A5%E8%AA%AD%E7%82%B9%E3%80%8D">(この節は読み飛ばしても構いません)仮説の解説その1 "々" の字は Unicode では「CJKの記号及び句読点」</a></h2> <p>大雑把に説明すると、例えば ツイッターのアルゴリズムは「魔々勇々」の字を見て「魔、勇。」のように漢字が2つ区切られているように解釈しているかもしれないし、そうでないかもしれません。</p> <ul> <li><code>々</code> は漢字ではなく踊り字。現在は日本でだけ使われている。正式な読み方無し。「どう」とか「おなじ」とか「ノマ」などと読まれる <ul> <li>📖参考: <a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/踊り字">Wikipedia > 踊り字</a></li> </ul></li> <li><code>CJK</code> (シージェイケー)というのは 中国語(Chinese)、日本語(Japanese)、朝鮮語(Korean)の頭文字。</li> <li><code>Unicode</code> (ユニコード)というのはパソコンに入っている、世界中の字や絵文字などが並んだ一覧表のようなもの(の規格の名前)。</li> </ul> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">そうかー( ̄ー ̄)<a target="_blank" rel="nofollow noopener" href="https://t.co/4y6k1115PD">https://t.co/4y6k1115PD</a></p>— むずでょ (@muzudho1) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/muzudho1/status/1777349711881797946?ref_src=twsrc%5Etfw">April 8, 2024</a></blockquote> <h2 id="(この節は読み飛ばしても構いません)仮説の検証方法"><a href="#%EF%BC%88%E3%81%93%E3%81%AE%E7%AF%80%E3%81%AF%E8%AA%AD%E3%81%BF%E9%A3%9B%E3%81%B0%E3%81%97%E3%81%A6%E3%82%82%E6%A7%8B%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%EF%BC%89%E4%BB%AE%E8%AA%AC%E3%81%AE%E6%A4%9C%E8%A8%BC%E6%96%B9%E6%B3%95">(この節は読み飛ばしても構いません)仮説の検証方法</a></h2> <p>とりあえず無料の <a target="_blank" rel="nofollow noopener" href="https://twittrend.jp/">ついっトレンド</a> で反例が見つからなければ、その仮説は合ってるかもしれないし、合ってないかもしれません。<br /> いわゆる悪魔の証明の1つなので、反例が1つ見つかるまでは、仮説が間違っているとは言い切れません。</p> <h2 id="(この節は読み飛ばしても構いません)備考"><a href="#%EF%BC%88%E3%81%93%E3%81%AE%E7%AF%80%E3%81%AF%E8%AA%AD%E3%81%BF%E9%A3%9B%E3%81%B0%E3%81%97%E3%81%A6%E3%82%82%E6%A7%8B%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%EF%BC%89%E5%82%99%E8%80%83">(この節は読み飛ばしても構いません)備考</a></h2> <p>千葉ロッテマリーンズの <strong>佐々木朗希</strong> 投手がツイッターのトレンド入りをしたことがある。<br /> <strong>々</strong> の字は使われているが、それを抜いても日本語で4文字以上ということだろうか。</p> <ul> <li><p>📖参考: <a target="_blank" rel="nofollow noopener" href="https://orugpt.xsrv.jp/makeraf/2023/07/19/20/rank6-20-12/">Twitterトレンド速報 > 「佐々木朗希」ってなに?</a></p></li> <li><p>また、半角英字3文字は トレンドに入っているように思います。</p></li> <li>2024年4月20日(土)0時45分、 <code>#それスノ</code> というハッシュタグがトレンド入りしていました。</li> <li>2024年4月20日(土)2時25分、 <code>#フロイニ</code> というハッシュタグがトレンド入りしていました。</li> </ul> <h2 id="(この節は読み飛ばしても構いません)トレンド入りするためのツイート数"><a href="#%EF%BC%88%E3%81%93%E3%81%AE%E7%AF%80%E3%81%AF%E8%AA%AD%E3%81%BF%E9%A3%9B%E3%81%B0%E3%81%97%E3%81%A6%E3%82%82%E6%A7%8B%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%EF%BC%89%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E5%85%A5%E3%82%8A%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%84%E3%82%A4%E3%83%BC%E3%83%88%E6%95%B0">(この節は読み飛ばしても構いません)トレンド入りするためのツイート数</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/Twitterトレンド">Wikipedia > Twitterトレンド</a> によると、</p> <pre><code>2018年のTwitterトレンドを元にしている研究結果[1]によれば、 平均して、特定の話題がトレンドのトップ10に入るためには11万2000ツイート以上、1位になるには26万3000ツイートが必要とされる[1]。 1. ^ a b c d e f g h i Annamoradnejad, Issa; Habibi, Jafar (2019). “A Comprehensive Analysis of Twitter Trending Topics”. 2019 5th International Conference on Web Research (ICWR) (Tehran, Iran: IEEE): 22–27. arXiv:1907.09007. Bibcode: 2019arXiv190709007A. doi:10.1109/ICWR.2019.8765252. ISBN 9781728114316. </code></pre> <p>とあります。これは世界全体でしょうか? 日本国内ではどうでしょうか。<br /> 日本国内では 4000ツイートぐらいあれば 瞬間的、それは数分かもしれませんが<br /> トレンドに入らなくもないのではないでしょうか?</p> むずでょ tag:crieit.net,2005:PublicArticle/18726 2024-02-04T09:12:24+09:00 2024-02-28T21:07:57+09:00 https://crieit.net/posts/300a8c5a30f64d52e3b7ab2767a16294 きふわらべのお父んの、確定申告(令和5年度分)しようぜページ(^~^) <p>📖 <a href="https://crieit.net/posts/f34d7ca88724b0b87c299dc5e8b406cd">前回の話し</a></p> <h1 id="情報"><a href="#%E6%83%85%E5%A0%B1">情報</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/blue-return-practice">Git Hub / muzudho / blue-return-practice</a></p> <h1 id="[📅2024-02-04 sun ⏰08:57] 書類を印刷しようぜ"><a href="#%5B%F0%9F%93%852024-02-04+sun+%E2%8F%B008%3A57%5D+%E6%9B%B8%E9%A1%9E%E3%82%92%E5%8D%B0%E5%88%B7%E3%81%97%E3%82%88%E3%81%86%E3%81%9C">[📅2024-02-04 sun ⏰08:57] 書類を印刷しようぜ</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 DX ぜんぜん 付いていけない……」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 また紙だな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 決算書からねえ」</p> <p><a href="https://crieit.now.sh/upload_images/6fef37d9a6a8d0a5aceefe5218728ba265bed37d2af72.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6fef37d9a6a8d0a5aceefe5218728ba265bed37d2af72.png?mw=700" alt="202402__blueReturn__04-0859--HomePage.png" /></a></p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.nta.go.jp/taxes/shiraberu/shinkoku/syotoku/index.htm">確定申告書等の様式・手引き等</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>令和5年度分</strong> をやるんだな。 まだ 紙の申請書はあるかな?」</p> <p><a href="https://crieit.now.sh/upload_images/703205ee00c7a429bb24906157ac3dd665bed41ca36b5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/703205ee00c7a429bb24906157ac3dd665bed41ca36b5.png?mw=700" alt="202402__blueReturn__04-0902--HomePage2-remark.png" /></a></p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.nta.go.jp/taxes/shiraberu/shinkoku/syotoku/r05.htm">確定申告書等の様式・手引き等(令和5年分の所得税及び復興特別所得税の確定申告分)</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 わたしは <strong>青色申告</strong> で、 <strong>一般用</strong>」</p> <p><a href="https://crieit.now.sh/upload_images/19244c50efc7a3caf29d43eb57f3d6fb65bed47ee9c19.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/19244c50efc7a3caf29d43eb57f3d6fb65bed47ee9c19.png?mw=700" alt="202402__blueReturn__04-0903--KessanSho.png" /></a></p> <p>「 👆 令和5年度から 何か変わったのか。<br /> 提出用4枚、控用4枚 の1セット計8枚。<br /> この PDFファイルを USBメモリーに入れて、コンビニで1セット、カラー印刷してこよう」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 去年は 申込書 も印刷したのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/85a197cb7ee3530d4336244e1441105465bed56544285.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/85a197cb7ee3530d4336244e1441105465bed56544285.png?mw=700" alt="202402__blueReturn__04-0907--ShinkokuSho-remark.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 わたしは <strong>第一表・第二表</strong> だな」</p> <p><a href="https://crieit.now.sh/upload_images/3ad199270caae00f3eb862ccdf8091d065bed5fbcf763.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3ad199270caae00f3eb862ccdf8091d065bed5fbcf763.png?mw=700" alt="202402__blueReturn__04-0910--ShinkokuSho2.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 提出用2枚、控のモノクロ2枚を めんどくさいので まとめて カラー印刷しよう」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 2019年度から 源泉徴収票の添付は 不要だそうよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 印刷物は これだけだな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 近くのミニストップか、駅の反対側のコンビニに USBのデータを印刷できるコピー機があったと思うぜ」</p> <h1 id="[📅2024-02-18 sun ⏰20:14] 売上を記入しようぜ?"><a href="#%5B%F0%9F%93%852024-02-18+sun+%E2%8F%B020%3A14%5D+%E5%A3%B2%E4%B8%8A%E3%82%92%E8%A8%98%E5%85%A5%E3%81%97%E3%82%88%E3%81%86%E3%81%9C%EF%BC%9F">[📅2024-02-18 sun ⏰20:14] 売上を記入しようぜ?</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 このブログのページを開きたくない かくていしんこく の音を聞いただけで くじけそうになる」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 くじけてもいいが、税務署の言い値で税金を納めることになるそうだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 印刷物は用意してあるぜ。<br /> A4 片面 カラー印刷1枚50円で、計12枚 600円だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 郵送用と、控えで半分ずつだから、書くのは実質6枚だな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 去年の記事を見ながら やっていこう」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 決算書控えの2ページ目左上 月別の売上を埋めろだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 一度に全部終わらせようとすると 心が折れるので、今日はそこだけやろう」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 銀行通帳 <strong>のお預入れ金額(円)</strong> に 入金があるか確認し、<br /> 月ごとに分け、 <strong>1月分</strong>、 <strong>2月分</strong> と 鉛筆でメモを書き入れていくぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 通帳が繰り越されていて、 1月分が見えないが?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 今、繰り越し済の 通帳を探し中」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 なんで 通帳の置き場に 通帳が無いの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 通帳記入をしにいって、カバンに入れっぱなしというのが 考えられる。<br /> ほら あった」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 今年は 令和 何年?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 6年よ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 うそ~ん この前 改元したばかりでは……、 まだ気分的に 令和3年だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 令和5年の1月から12月のところを見ろよ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <strong>普通預金利息19円</strong> って、売上?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 調べなさい」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.lan2.jp/psl/aog/aog04004.html">預金の利息を受け取った</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 普通預金利息は <strong>事業主借</strong> だ。売上じゃないらしい」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 今日はここまで。書類を事務棚へ戻すぜ」</p> <h1 id="[📅2024-02-28 wed ⏰19:48] 何にもせず月末の前日"><a href="#%5B%F0%9F%93%852024-02-28+wed+%E2%8F%B019%3A48%5D+%E4%BD%95%E3%81%AB%E3%82%82%E3%81%9B%E3%81%9A%E6%9C%88%E6%9C%AB%E3%81%AE%E5%89%8D%E6%97%A5">[📅2024-02-28 wed ⏰19:48] 何にもせず月末の前日</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 何をしたらいいんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 給与を調べろ。<br /> 会社の勤怠ページを開き、源泉徴収票のPDFをダウンロードしろだぜ。<br /> そして 支払われた金額と 源泉徴収された額を 確認しろだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 イー・タイムカードだったかな。開けてみるか。<br /> あれっ 違う?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 派遣先が変わったときに 勤怠システムも変わったんじゃない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あった、あった。源泉徴収票をダウンロードするぜ。あれ……。<br /> 年収400万円有ると思ったが、無かった……」</p> <h2 id="[⏰20:13]"><a href="#%5B%E2%8F%B020%3A13%5D">[⏰20:13]</a></h2> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 続けて 決算書を書けだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <strong>控用</strong> と書かれた4ページ分の紙を 書類棚から出すぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 とりあえず 最初に <strong>第2ページ</strong> を埋めるぜ」</p> <div class="table-responsive"><table> <thead> <tr> <th>項目名</th> </tr> </thead> <tbody> <tr> <td>令和 〇 年分</td> </tr> <tr> <td>フリガナ 氏名</td> </tr> <tr> <td>月別売上(収入)金額及び仕入金額</td> </tr> </tbody> </table></div> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これは 前に埋めた」</p> <div class="table-responsive"><table> <thead> <tr> <th>項目名</th> </tr> </thead> <tbody> <tr> <td>青色申告特別控除額の計算</td> </tr> </tbody> </table></div> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ここも埋めたいが 後回しにして、先に <strong>第1ページ</strong> を埋めるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261f4ceb0a5f11.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 去年の控えを参考にしろだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61f4ce5d04700.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 去年の控えを見て 決算書を書くか。<br /> 申告書は 手引きみたいな紙のやつ見ないと書けないけど、手引きどこ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61f4d01259f74.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👇 この前のリンクに あるんじゃないの?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.nta.go.jp/taxes/shiraberu/shinkoku/syotoku/index.htm">確定申告書等の様式・手引き等</a></p> <p><書きかけ><br /> .</p> むずでょ tag:crieit.net,2005:PublicArticle/18709 2024-01-21T23:37:33+09:00 2024-01-22T01:27:30+09:00 https://crieit.net/posts/9a73d545600a3e2e0f97b00a4de0da54 [コンピューター将棋]先手勝率70%時代に向けての大会ルールの代案。イプシロン勝ち点制(^~^) <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <strong>イプシロン勝ち点制</strong> を説明する」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 まだ 提出前のやつだろ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 こんなブログ誰も読んでないから ちらしの裏のメモ書きよ」</p> <h1 id="従来の勝ち点"><a href="#%E5%BE%93%E6%9D%A5%E3%81%AE%E5%8B%9D%E3%81%A1%E7%82%B9">従来の勝ち点</a></h1> <pre><code class="plaintext">従来 ==== プレイヤー1  1勝 プレイヤー2 -1勝 (=1敗) プレイヤー1の勝ち数 + プレイヤー2の勝ち数 = 0 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>従来の大会</strong> では、2者が対局すれば、どちらかが1勝すれば 反対側は1敗した。<br /> 大会全体のプレイヤーの勝ち数の合計は 常に 0。 これを ゼロ・サムという」</p> <h1 id="点の交通量<その1>"><a href="#%E7%82%B9%E3%81%AE%E4%BA%A4%E9%80%9A%E9%87%8F%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%91%EF%BC%9E">点の交通量<その1></a></h1> <pre><code class="plaintext">従来 ==== 先手1勝時の点の交通量: 2 後手1勝時の点の交通量: 2 引分け 時の点の交通量: 1 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>従来の大会</strong> では、先手が勝てば 後手から1点が減り、先手に1点が増える。<br /> これを <strong>点の交通量</strong> とでも呼ぶとき、<br /> 勝ち負けが付いたとき 点の交通量は 2、<br /> 引分けで 0.5 ずつ分けるとき 点の交通量は 1 だぜ」</p> <pre><code class="plaintext">イプシロン勝ち点制 ================= 先手1勝時の点の交通量: ※先手勝率によって決まる 後手1勝時の点の交通量: ※先手勝率によって決まる </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>イプシロン勝ち点制</strong> では、大会が始まる前に 先手勝率を 多分これぐらいと決めておき、<br /> その仮決めの先手勝率によって <strong>点の交通量</strong> は変わる。この計算式は後で説明する」</p> <h1 id="勝ち点の計算<その1>"><a href="#%E5%8B%9D%E3%81%A1%E7%82%B9%E3%81%AE%E8%A8%88%E7%AE%97%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%91%EF%BC%9E">勝ち点の計算<その1></a></h1> <pre><code class="plaintext">従来 ==== 先手1勝 時の加点: 1 後手1敗 時の減点: 1 後手1勝 時の加点: 1 先手1敗 時の減点: 1 先手引分け時の加点: 0.5 ※0.4のところもある 後手引分け時の加点: 0.5 ※0.6のところもある </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>従来の大会</strong> では、勝てば1増えて、負ければ1減るというものだった。<br /> これを、負けた方は <strong>点の交通量</strong> の半分が奪われ、<br /> 勝った方に <strong>点の交通量</strong> の半分が行くと 考えるとしよう」</p> <pre><code class="plaintext">イプシロン勝ち点制 ================= 先手の1勝の加点 =   先手の1勝時の点の交通量 / 2 後手の1敗の減点 = -(先手の1勝時の点の交通量 / 2) 後手の1勝の加点 =  1 - 先手の1勝の加点 先手の1敗の減点 = - 1 - 後手の1敗の減点 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>イプシロン勝ち点制</strong> では、<br /> <strong>先手の1勝時の点の交通量</strong> と、<br /> <strong>後手の1勝時の点の交通量</strong> は異なるが、</p> <p>どっちにしろ 負けた方は <strong>点の交通量</strong> の半分が奪われ、<br /> 勝った方に <strong>点の交通量</strong> の半分が行くのは 従来と同じだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 じゃあ その式で 勝ち負けが付いたときの 点の交通量が 2 のとき、<br /> 従来の大会と同じになんの?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 勝ち負けが付いたときは 同じになるな」</p> <h1 id="イプシロン勝ち点制の点の交通量を求めよう"><a href="#%E3%82%A4%E3%83%97%E3%82%B7%E3%83%AD%E3%83%B3%E5%8B%9D%E3%81%A1%E7%82%B9%E5%88%B6%E3%81%AE%E7%82%B9%E3%81%AE%E4%BA%A4%E9%80%9A%E9%87%8F%E3%82%92%E6%B1%82%E3%82%81%E3%82%88%E3%81%86">イプシロン勝ち点制の点の交通量を求めよう</a></h1> <pre><code class="plaintext">※ 以下、 0 除算しないために、先手勝率は 0 より大きく 1 より小さいものとする 1 先手の1勝の値打ち = ------------- 2 * 先手勝率 1 後手の1勝の値打ち = ------------------- 2 * (1 - 先手勝率) ※ 先手と後手の1勝時の点の交通量を合計すると 2 になるようにする 先手の1勝時の点の交通量 = 先手の1勝の値打ち × (2 / (先手の1勝の値打ち + 後手の1勝の値打ち)) 後手の1勝時の点の交通量 = 2 - 先手の1勝時の点の交通量 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>イプシロン勝ち点制</strong> での<br /> 点の交通量は 上記のように求まる」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 暗算できないわねえ。表が要るわねえ」  </p> <h1 id="早見表<その1>"><a href="#%E6%97%A9%E8%A6%8B%E8%A1%A8%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%91%EF%BC%9E">早見表<その1></a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 早見表を作っておいたぜ」</p> <pre><code class="plaintext">先手勝率: 0.5 のとき、 先手の1勝の値打ち   : 1.0000000000000000 後手の1勝の値打ち   : 0.5000000000000000 先手の1勝時の点の交通量: 1.0000000000000000 先手の1勝の加点    : 0.5000000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5000000000000000 (先手は同じだけ減点する) ここで、先手の 50 勝 50 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.51 のとき、 先手の1勝の値打ち   : 0.9803921568627451 後手の1勝の値打ち   : 0.5100000000000000 先手の1勝時の点の交通量: 0.9800000000000000 先手の1勝の加点    : 0.4900000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5100000000000000 (先手は同じだけ減点する) ここで、先手の 51 勝 49 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.52 のとき、 先手の1勝の値打ち   : 0.9615384615384615 後手の1勝の値打ち   : 0.5200000000000000 先手の1勝時の点の交通量: 0.9599999999999999 先手の1勝の加点    : 0.4799999999999999 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5200000000000000 (先手は同じだけ減点する) ここで、先手の 52 勝 48 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.53 のとき、 先手の1勝の値打ち   : 0.9433962264150942 後手の1勝の値打ち   : 0.5300000000000000 先手の1勝時の点の交通量: 0.9399999999999999 先手の1勝の加点    : 0.4700000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5300000000000000 (先手は同じだけ減点する) ここで、先手の 53 勝 47 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.54 のとき、 先手の1勝の値打ち   : 0.9259259259259258 後手の1勝の値打ち   : 0.5400000000000000 先手の1勝時の点の交通量: 0.9199999999999998 先手の1勝の加点    : 0.4599999999999999 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5400000000000000 (先手は同じだけ減点する) ここで、先手の 54 勝 46 敗のケースの検算は以下の通り。 先手計: -0.0000000000000071 後手計: 0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.55 のとき、 先手の1勝の値打ち   : 0.9090909090909091 後手の1勝の値打ち   : 0.5500000000000000 先手の1勝時の点の交通量: 0.8999999999999999 先手の1勝の加点    : 0.4500000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5500000000000000 (先手は同じだけ減点する) ここで、先手の 55 勝 45 敗のケースの検算は以下の通り。 先手計: -0.0000000000000071 後手計: 0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.56 のとき、 先手の1勝の値打ち   : 0.8928571428571428 後手の1勝の値打ち   : 0.5599999999999999 先手の1勝時の点の交通量: 0.8800000000000001 先手の1勝の加点    : 0.4400000000000001 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5599999999999999 (先手は同じだけ減点する) ここで、先手の 56 勝 44 敗のケースの検算は以下の通り。 先手計: 0.0000000000000071 後手計: -0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.57 のとき、 先手の1勝の値打ち   : 0.8771929824561404 後手の1勝の値打ち   : 0.5700000000000000 先手の1勝時の点の交通量: 0.8600000000000001 先手の1勝の加点    : 0.4300000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5700000000000000 (先手は同じだけ減点する) ここで、先手の 57 勝 43 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.58 のとき、 先手の1勝の値打ち   : 0.8620689655172414 後手の1勝の値打ち   : 0.5800000000000000 先手の1勝時の点の交通量: 0.8400000000000001 先手の1勝の加点    : 0.4200000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5800000000000000 (先手は同じだけ減点する) ここで、先手の 58 勝 42 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.59 のとき、 先手の1勝の値打ち   : 0.8474576271186441 後手の1勝の値打ち   : 0.5900000000000001 先手の1勝時の点の交通量: 0.8200000000000000 先手の1勝の加点    : 0.4100000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.5900000000000001 (先手は同じだけ減点する) ここで、先手の 59 勝 41 敗のケースの検算は以下の通り。 先手計: -0.0000000000000071 後手計: 0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.6 のとき、 先手の1勝の値打ち   : 0.8333333333333334 後手の1勝の値打ち   : 0.6000000000000000 先手の1勝時の点の交通量: 0.8000000000000000 先手の1勝の加点    : 0.4000000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6000000000000000 (先手は同じだけ減点する) ここで、先手の 60 勝 40 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.61 のとき、 先手の1勝の値打ち   : 0.8196721311475410 後手の1勝の値打ち   : 0.6100000000000000 先手の1勝時の点の交通量: 0.7800000000000000 先手の1勝の加点    : 0.3900000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6100000000000000 (先手は同じだけ減点する) ここで、先手の 61 勝 39 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.62 のとき、 先手の1勝の値打ち   : 0.8064516129032259 後手の1勝の値打ち   : 0.6200000000000000 先手の1勝時の点の交通量: 0.7600000000000000 先手の1勝の加点    : 0.3800000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6200000000000000 (先手は同じだけ減点する) ここで、先手の 62 勝 38 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.63 のとき、 先手の1勝の値打ち   : 0.7936507936507936 後手の1勝の値打ち   : 0.6299999999999999 先手の1勝時の点の交通量: 0.7400000000000001 先手の1勝の加点    : 0.3700000000000001 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6299999999999999 (先手は同じだけ減点する) ここで、先手の 63 勝 37 敗のケースの検算は以下の通り。 先手計: 0.0000000000000071 後手計: -0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.64 のとき、 先手の1勝の値打ち   : 0.7812500000000000 後手の1勝の値打ち   : 0.6400000000000000 先手の1勝時の点の交通量: 0.7200000000000000 先手の1勝の加点    : 0.3600000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6400000000000000 (先手は同じだけ減点する) ここで、先手の 64 勝 36 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.65 のとき、 先手の1勝の値打ち   : 0.7692307692307692 後手の1勝の値打ち   : 0.6500000000000001 先手の1勝時の点の交通量: 0.6999999999999998 先手の1勝の加点    : 0.3499999999999999 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6500000000000001 (先手は同じだけ減点する) ここで、先手の 65 勝 35 敗のケースの検算は以下の通り。 先手計: -0.0000000000000071 後手計: 0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.66 のとき、 先手の1勝の値打ち   : 0.7575757575757576 後手の1勝の値打ち   : 0.6600000000000001 先手の1勝時の点の交通量: 0.6799999999999998 先手の1勝の加点    : 0.3399999999999999 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6600000000000001 (先手は同じだけ減点する) ここで、先手の 66 勝 34 敗のケースの検算は以下の通り。 先手計: -0.0000000000000107 後手計: 0.0000000000000107 総 計: 0.0000000000000000 先手勝率: 0.67 のとき、 先手の1勝の値打ち   : 0.7462686567164178 後手の1勝の値打ち   : 0.6700000000000002 先手の1勝時の点の交通量: 0.6599999999999998 先手の1勝の加点    : 0.3299999999999999 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6700000000000002 (先手は同じだけ減点する) ここで、先手の 67 勝 33 敗のケースの検算は以下の通り。 先手計: -0.0000000000000142 後手計: 0.0000000000000142 総 計: 0.0000000000000000 先手勝率: 0.68 のとき、 先手の1勝の値打ち   : 0.7352941176470588 後手の1勝の値打ち   : 0.6800000000000000 先手の1勝時の点の交通量: 0.6399999999999999 先手の1勝の加点    : 0.3200000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6800000000000000 (先手は同じだけ減点する) ここで、先手の 68 勝 32 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.69 のとき、 先手の1勝の値打ち   : 0.7246376811594204 後手の1勝の値打ち   : 0.6899999999999999 先手の1勝時の点の交通量: 0.6200000000000001 先手の1勝の加点    : 0.3100000000000001 (後手は同じだけ減点する) 後手の1勝の加点    : 0.6899999999999999 (先手は同じだけ減点する) ここで、先手の 69 勝 31 敗のケースの検算は以下の通り。 先手計: 0.0000000000000071 後手計: -0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.7 のとき、 先手の1勝の値打ち   : 0.7142857142857143 後手の1勝の値打ち   : 0.7000000000000000 先手の1勝時の点の交通量: 0.6000000000000000 先手の1勝の加点    : 0.3000000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7000000000000000 (先手は同じだけ減点する) ここで、先手の 70 勝 30 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.71 のとき、 先手の1勝の値打ち   : 0.7042253521126761 後手の1勝の値打ち   : 0.7100000000000000 先手の1勝時の点の交通量: 0.5800000000000001 先手の1勝の加点    : 0.2900000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7100000000000000 (先手は同じだけ減点する) ここで、先手の 71 勝 29 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.72 のとき、 先手の1勝の値打ち   : 0.6944444444444444 後手の1勝の値打ち   : 0.7200000000000000 先手の1勝時の点の交通量: 0.5599999999999999 先手の1勝の加点    : 0.2800000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7200000000000000 (先手は同じだけ減点する) ここで、先手の 72 勝 28 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.73 のとき、 先手の1勝の値打ち   : 0.6849315068493150 後手の1勝の値打ち   : 0.7300000000000000 先手の1勝時の点の交通量: 0.5399999999999999 先手の1勝の加点    : 0.2700000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7300000000000000 (先手は同じだけ減点する) ここで、先手の 73 勝 27 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.74 のとき、 先手の1勝の値打ち   : 0.6756756756756757 後手の1勝の値打ち   : 0.7400000000000000 先手の1勝時の点の交通量: 0.5199999999999999 先手の1勝の加点    : 0.2600000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7400000000000000 (先手は同じだけ減点する) ここで、先手の 74 勝 26 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.75 のとき、 先手の1勝の値打ち   : 0.6666666666666666 後手の1勝の値打ち   : 0.7500000000000000 先手の1勝時の点の交通量: 0.5000000000000000 先手の1勝の加点    : 0.2500000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7500000000000000 (先手は同じだけ減点する) ここで、先手の 75 勝 25 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.76 のとき、 先手の1勝の値打ち   : 0.6578947368421053 後手の1勝の値打ち   : 0.7600000000000000 先手の1勝時の点の交通量: 0.4800000000000000 先手の1勝の加点    : 0.2400000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7600000000000000 (先手は同じだけ減点する) ここで、先手の 76 勝 24 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.77 のとき、 先手の1勝の値打ち   : 0.6493506493506493 後手の1勝の値打ち   : 0.7700000000000000 先手の1勝時の点の交通量: 0.4600000000000000 先手の1勝の加点    : 0.2300000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7700000000000000 (先手は同じだけ減点する) ここで、先手の 77 勝 23 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.78 のとき、 先手の1勝の値打ち   : 0.6410256410256410 後手の1勝の値打ち   : 0.7800000000000000 先手の1勝時の点の交通量: 0.4399999999999999 先手の1勝の加点    : 0.2200000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7800000000000000 (先手は同じだけ減点する) ここで、先手の 78 勝 22 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.79 のとき、 先手の1勝の値打ち   : 0.6329113924050632 後手の1勝の値打ち   : 0.7900000000000000 先手の1勝時の点の交通量: 0.4199999999999999 先手の1勝の加点    : 0.2100000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.7900000000000000 (先手は同じだけ減点する) ここで、先手の 79 勝 21 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.8 のとき、 先手の1勝の値打ち   : 0.6250000000000000 後手の1勝の値打ち   : 0.8000000000000000 先手の1勝時の点の交通量: 0.3999999999999999 先手の1勝の加点    : 0.2000000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8000000000000000 (先手は同じだけ減点する) ここで、先手の 80 勝 20 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.81 のとき、 先手の1勝の値打ち   : 0.6172839506172839 後手の1勝の値打ち   : 0.8100000000000001 先手の1勝時の点の交通量: 0.3799999999999998 先手の1勝の加点    : 0.1899999999999999 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8100000000000001 (先手は同じだけ減点する) ここで、先手の 81 勝 19 敗のケースの検算は以下の通り。 先手計: -0.0000000000000071 後手計: 0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.82 のとき、 先手の1勝の値打ち   : 0.6097560975609756 後手の1勝の値打ち   : 0.8200000000000001 先手の1勝時の点の交通量: 0.3600000000000000 先手の1勝の加点    : 0.1800000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8200000000000001 (先手は同じだけ減点する) ここで、先手の 82 勝 18 敗のケースの検算は以下の通り。 先手計: -0.0000000000000018 後手計: 0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.83 のとき、 先手の1勝の値打ち   : 0.6024096385542169 後手の1勝の値打ち   : 0.8300000000000000 先手の1勝時の点の交通量: 0.3400000000000001 先手の1勝の加点    : 0.1700000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8300000000000000 (先手は同じだけ減点する) ここで、先手の 83 勝 17 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.84 のとき、 先手の1勝の値打ち   : 0.5952380952380952 後手の1勝の値打ち   : 0.8400000000000000 先手の1勝時の点の交通量: 0.3200000000000001 先手の1勝の加点    : 0.1600000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8400000000000000 (先手は同じだけ減点する) ここで、先手の 84 勝 16 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.85 のとき、 先手の1勝の値打ち   : 0.5882352941176471 後手の1勝の値打ち   : 0.8500000000000000 先手の1勝時の点の交通量: 0.3000000000000000 先手の1勝の加点    : 0.1500000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8500000000000000 (先手は同じだけ減点する) ここで、先手の 85 勝 15 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.86 のとき、 先手の1勝の値打ち   : 0.5813953488372093 後手の1勝の値打ち   : 0.8600000000000000 先手の1勝時の点の交通量: 0.2800000000000000 先手の1勝の加点    : 0.1400000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8600000000000000 (先手は同じだけ減点する) ここで、先手の 86 勝 14 敗のケースの検算は以下の通り。 先手計: 0.0000000000000018 後手計: -0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.87 のとき、 先手の1勝の値打ち   : 0.5747126436781609 後手の1勝の値打ち   : 0.8700000000000000 先手の1勝時の点の交通量: 0.2600000000000000 先手の1勝の加点    : 0.1300000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8700000000000000 (先手は同じだけ減点する) ここで、先手の 87 勝 13 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.88 のとき、 先手の1勝の値打ち   : 0.5681818181818182 後手の1勝の値打ち   : 0.8800000000000000 先手の1勝時の点の交通量: 0.2400000000000000 先手の1勝の加点    : 0.1200000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8800000000000000 (先手は同じだけ減点する) ここで、先手の 88 勝 12 敗のケースの検算は以下の通り。 先手計: -0.0000000000000018 後手計: 0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.89 のとき、 先手の1勝の値打ち   : 0.5617977528089888 後手の1勝の値打ち   : 0.8900000000000000 先手の1勝時の点の交通量: 0.2200000000000000 先手の1勝の加点    : 0.1100000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.8900000000000000 (先手は同じだけ減点する) ここで、先手の 89 勝 11 敗のケースの検算は以下の通り。 先手計: -0.0000000000000018 後手計: 0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.9 のとき、 先手の1勝の値打ち   : 0.5555555555555556 後手の1勝の値打ち   : 0.9000000000000000 先手の1勝時の点の交通量: 0.2000000000000000 先手の1勝の加点    : 0.1000000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9000000000000000 (先手は同じだけ減点する) ここで、先手の 90 勝 10 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.91 のとき、 先手の1勝の値打ち   : 0.5494505494505494 後手の1勝の値打ち   : 0.9100000000000000 先手の1勝時の点の交通量: 0.1799999999999999 先手の1勝の加点    : 0.0900000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9100000000000000 (先手は同じだけ減点する) ここで、先手の 91 勝 9 敗のケースの検算は以下の通り。 先手計: -0.0000000000000018 後手計: 0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.92 のとき、 先手の1勝の値打ち   : 0.5434782608695652 後手の1勝の値打ち   : 0.9200000000000000 先手の1勝時の点の交通量: 0.1599999999999999 先手の1勝の加点    : 0.0799999999999999 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9200000000000000 (先手は同じだけ減点する) ここで、先手の 92 勝 8 敗のケースの検算は以下の通り。 先手計: -0.0000000000000053 後手計: 0.0000000000000053 総 計: 0.0000000000000000 先手勝率: 0.93 のとき、 先手の1勝の値打ち   : 0.5376344086021505 後手の1勝の値打ち   : 0.9300000000000000 先手の1勝時の点の交通量: 0.1399999999999999 先手の1勝の加点    : 0.0700000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9300000000000000 (先手は同じだけ減点する) ここで、先手の 93 勝 7 敗のケースの検算は以下の通り。 先手計: -0.0000000000000053 後手計: 0.0000000000000053 総 計: 0.0000000000000000 先手勝率: 0.94 のとき、 先手の1勝の値打ち   : 0.5319148936170213 後手の1勝の値打ち   : 0.9399999999999999 先手の1勝時の点の交通量: 0.1200000000000001 先手の1勝の加点    : 0.0600000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9399999999999999 (先手は同じだけ減点する) ここで、先手の 94 勝 6 敗のケースの検算は以下の通り。 先手計: 0.0000000000000044 後手計: -0.0000000000000044 総 計: 0.0000000000000000 先手勝率: 0.95 のとき、 先手の1勝の値打ち   : 0.5263157894736842 後手の1勝の値打ち   : 0.9500000000000000 先手の1勝時の点の交通量: 0.1000000000000001 先手の1勝の加点    : 0.0500000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9500000000000000 (先手は同じだけ減点する) ここで、先手の 95 勝 5 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.96 のとき、 先手の1勝の値打ち   : 0.5208333333333334 後手の1勝の値打ち   : 0.9600000000000000 先手の1勝時の点の交通量: 0.0800000000000001 先手の1勝の加点    : 0.0400000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9600000000000000 (先手は同じだけ減点する) ここで、先手の 96 勝 4 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.97 のとき、 先手の1勝の値打ち   : 0.5154639175257733 後手の1勝の値打ち   : 0.9700000000000000 先手の1勝時の点の交通量: 0.0600000000000000 先手の1勝の加点    : 0.0300000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9700000000000000 (先手は同じだけ減点する) ここで、先手の 97 勝 3 敗のケースの検算は以下の通り。 先手計: 0.0000000000000022 後手計: -0.0000000000000022 総 計: 0.0000000000000000 先手勝率: 0.98 のとき、 先手の1勝の値打ち   : 0.5102040816326531 後手の1勝の値打ち   : 0.9800000000000000 先手の1勝時の点の交通量: 0.0400000000000000 先手の1勝の加点    : 0.0200000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9800000000000000 (先手は同じだけ減点する) ここで、先手の 98 勝 2 敗のケースの検算は以下の通り。 先手計: 0.0000000000000018 後手計: -0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.99 のとき、 先手の1勝の値打ち   : 0.5050505050505051 後手の1勝の値打ち   : 0.9900000000000000 先手の1勝時の点の交通量: 0.0200000000000000 先手の1勝の加点    : 0.0100000000000000 (後手は同じだけ減点する) 後手の1勝の加点    : 0.9900000000000000 (先手は同じだけ減点する) ここで、先手の 99 勝 1 敗のケースの検算は以下の通り。 先手計: 0.0000000000000009 後手計: -0.0000000000000009 総 計: 0.0000000000000000 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 このように 限りなく ゼロに近いような数字、イプシロン(ε)のような気分だぜ」</p> <h1 id="これって めっちゃ簡単に計算できない?"><a href="#%E3%81%93%E3%82%8C%E3%81%A3%E3%81%A6%E3%80%80%E3%82%81%E3%81%A3%E3%81%A1%E3%82%83%E7%B0%A1%E5%8D%98%E3%81%AB%E8%A8%88%E7%AE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%EF%BC%9F">これって めっちゃ簡単に計算できない?</a></h1> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 これって めっちゃ簡単に計算できない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 これ以上 どうやって 簡単に計算するんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 例えば 将棋の先手勝率が 0.68 だったら、<br /> 先手が勝ったら 1 から 0.68 引いて 先手の 0.32勝、 後手の 0.32敗よ。<br /> 後手が勝ったら そのまんま    後手の 0.68勝、 先手の 0.68敗よ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 なんてこった……」</p> <pre><code class="plaintext">イプシロン勝ち点制 ================= 先手勝率を x とする。 先手勝ちのとき   先手の 1 - x 勝、   後手の 1 - x 敗 後手勝ちのとき   先手の x 勝、   後手の x 敗 </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 これで いいんじゃないの?<br /> きふわらべちゃん、検算してみてちょうだい」</p> <h1 id="早見表<その2>"><a href="#%E6%97%A9%E8%A6%8B%E8%A1%A8%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%92%EF%BC%9E">早見表<その2></a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 早見表を作っておいたぜ」</p> <pre><code class="plaintext">先手勝率: 0.5 のとき、   先手勝ちなら     先手の  0.5000000000000000 勝、     後手の  0.5000000000000000 敗   後手勝ちなら     後手の  0.5000000000000000 勝、     先手の  0.5000000000000000 敗 ここで、先手の 50 勝 50 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.51 のとき、   先手勝ちなら     先手の  0.4900000000000000 勝、     後手の  0.4900000000000000 敗   後手勝ちなら     後手の  0.5100000000000000 勝、     先手の  0.5100000000000000 敗 ここで、先手の 51 勝 49 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.52 のとき、   先手勝ちなら     先手の  0.4800000000000000 勝、     後手の  0.4800000000000000 敗   後手勝ちなら     後手の  0.5200000000000000 勝、     先手の  0.5200000000000000 敗 ここで、先手の 52 勝 48 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.53 のとき、   先手勝ちなら     先手の  0.4700000000000000 勝、     後手の  0.4700000000000000 敗   後手勝ちなら     後手の  0.5300000000000000 勝、     先手の  0.5300000000000000 敗 ここで、先手の 53 勝 47 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.54 のとき、   先手勝ちなら     先手の  0.4600000000000000 勝、     後手の  0.4600000000000000 敗   後手勝ちなら     後手の  0.5400000000000000 勝、     先手の  0.5400000000000000 敗 ここで、先手の 54 勝 46 敗のケースの検算は以下の通り。 先手計: -0.0000000000000071 後手計: 0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.55 のとき、   先手勝ちなら     先手の  0.4500000000000000 勝、     後手の  0.4500000000000000 敗   後手勝ちなら     後手の  0.5500000000000000 勝、     先手の  0.5500000000000000 敗 ここで、先手の 55 勝 45 敗のケースの検算は以下の通り。 先手計: -0.0000000000000071 後手計: 0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.56 のとき、   先手勝ちなら     先手の  0.4399999999999999 勝、     後手の  0.4399999999999999 敗   後手勝ちなら     後手の  0.5600000000000001 勝、     先手の  0.5600000000000001 敗 ここで、先手の 56 勝 44 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.57 のとき、   先手勝ちなら     先手の  0.4300000000000000 勝、     後手の  0.4300000000000000 敗   後手勝ちなら     後手の  0.5700000000000000 勝、     先手の  0.5700000000000000 敗 ここで、先手の 57 勝 43 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.58 のとき、   先手勝ちなら     先手の  0.4200000000000000 勝、     後手の  0.4200000000000000 敗   後手勝ちなら     後手の  0.5800000000000000 勝、     先手の  0.5800000000000000 敗 ここで、先手の 58 勝 42 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.59 のとき、   先手勝ちなら     先手の  0.4100000000000000 勝、     後手の  0.4100000000000000 敗   後手勝ちなら     後手の  0.5900000000000000 勝、     先手の  0.5900000000000000 敗 ここで、先手の 59 勝 41 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.6 のとき、   先手勝ちなら     先手の  0.4000000000000000 勝、     後手の  0.4000000000000000 敗   後手勝ちなら     後手の  0.6000000000000000 勝、     先手の  0.6000000000000000 敗 ここで、先手の 60 勝 40 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.61 のとき、   先手勝ちなら     先手の  0.3900000000000000 勝、     後手の  0.3900000000000000 敗   後手勝ちなら     後手の  0.6100000000000000 勝、     先手の  0.6100000000000000 敗 ここで、先手の 61 勝 39 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.62 のとき、   先手勝ちなら     先手の  0.3800000000000000 勝、     後手の  0.3800000000000000 敗   後手勝ちなら     後手の  0.6200000000000000 勝、     先手の  0.6200000000000000 敗 ここで、先手の 62 勝 38 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.63 のとき、   先手勝ちなら     先手の  0.3700000000000000 勝、     後手の  0.3700000000000000 敗   後手勝ちなら     後手の  0.6300000000000000 勝、     先手の  0.6300000000000000 敗 ここで、先手の 63 勝 37 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.64 のとき、   先手勝ちなら     先手の  0.3600000000000000 勝、     後手の  0.3600000000000000 敗   後手勝ちなら     後手の  0.6400000000000000 勝、     先手の  0.6400000000000000 敗 ここで、先手の 64 勝 36 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.65 のとき、   先手勝ちなら     先手の  0.3500000000000000 勝、     後手の  0.3500000000000000 敗   後手勝ちなら     後手の  0.6500000000000000 勝、     先手の  0.6500000000000000 敗 ここで、先手の 65 勝 35 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.66 のとき、   先手勝ちなら     先手の  0.3400000000000000 勝、     後手の  0.3400000000000000 敗   後手勝ちなら     後手の  0.6600000000000000 勝、     先手の  0.6600000000000000 敗 ここで、先手の 66 勝 34 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.67 のとき、   先手勝ちなら     先手の  0.3300000000000000 勝、     後手の  0.3300000000000000 敗   後手勝ちなら     後手の  0.6700000000000000 勝、     先手の  0.6700000000000000 敗 ここで、先手の 67 勝 33 敗のケースの検算は以下の通り。 先手計: -0.0000000000000071 後手計: 0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.68 のとき、   先手勝ちなら     先手の  0.3200000000000000 勝、     後手の  0.3200000000000000 敗   後手勝ちなら     後手の  0.6800000000000000 勝、     先手の  0.6800000000000000 敗 ここで、先手の 68 勝 32 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.69 のとき、   先手勝ちなら     先手の  0.3100000000000001 勝、     後手の  0.3100000000000001 敗   後手勝ちなら     後手の  0.6899999999999999 勝、     先手の  0.6899999999999999 敗 ここで、先手の 69 勝 31 敗のケースの検算は以下の通り。 先手計: 0.0000000000000071 後手計: -0.0000000000000071 総 計: 0.0000000000000000 先手勝率: 0.7 のとき、   先手勝ちなら     先手の  0.3000000000000000 勝、     後手の  0.3000000000000000 敗   後手勝ちなら     後手の  0.7000000000000000 勝、     先手の  0.7000000000000000 敗 ここで、先手の 70 勝 30 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.71 のとき、   先手勝ちなら     先手の  0.2900000000000000 勝、     後手の  0.2900000000000000 敗   後手勝ちなら     後手の  0.7100000000000000 勝、     先手の  0.7100000000000000 敗 ここで、先手の 71 勝 29 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.72 のとき、   先手勝ちなら     先手の  0.2800000000000000 勝、     後手の  0.2800000000000000 敗   後手勝ちなら     後手の  0.7200000000000000 勝、     先手の  0.7200000000000000 敗 ここで、先手の 72 勝 28 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.73 のとき、   先手勝ちなら     先手の  0.2700000000000000 勝、     後手の  0.2700000000000000 敗   後手勝ちなら     後手の  0.7300000000000000 勝、     先手の  0.7300000000000000 敗 ここで、先手の 73 勝 27 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.74 のとき、   先手勝ちなら     先手の  0.2600000000000000 勝、     後手の  0.2600000000000000 敗   後手勝ちなら     後手の  0.7400000000000000 勝、     先手の  0.7400000000000000 敗 ここで、先手の 74 勝 26 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.75 のとき、   先手勝ちなら     先手の  0.2500000000000000 勝、     後手の  0.2500000000000000 敗   後手勝ちなら     後手の  0.7500000000000000 勝、     先手の  0.7500000000000000 敗 ここで、先手の 75 勝 25 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.76 のとき、   先手勝ちなら     先手の  0.2400000000000000 勝、     後手の  0.2400000000000000 敗   後手勝ちなら     後手の  0.7600000000000000 勝、     先手の  0.7600000000000000 敗 ここで、先手の 76 勝 24 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.77 のとき、   先手勝ちなら     先手の  0.2300000000000000 勝、     後手の  0.2300000000000000 敗   後手勝ちなら     後手の  0.7700000000000000 勝、     先手の  0.7700000000000000 敗 ここで、先手の 77 勝 23 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.78 のとき、   先手勝ちなら     先手の  0.2200000000000000 勝、     後手の  0.2200000000000000 敗   後手勝ちなら     後手の  0.7800000000000000 勝、     先手の  0.7800000000000000 敗 ここで、先手の 78 勝 22 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.79 のとき、   先手勝ちなら     先手の  0.2100000000000000 勝、     後手の  0.2100000000000000 敗   後手勝ちなら     後手の  0.7900000000000000 勝、     先手の  0.7900000000000000 敗 ここで、先手の 79 勝 21 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.8 のとき、   先手勝ちなら     先手の  0.2000000000000000 勝、     後手の  0.2000000000000000 敗   後手勝ちなら     後手の  0.8000000000000000 勝、     先手の  0.8000000000000000 敗 ここで、先手の 80 勝 20 敗のケースの検算は以下の通り。 先手計: -0.0000000000000036 後手計: 0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.81 のとき、   先手勝ちなら     先手の  0.1899999999999999 勝、     後手の  0.1899999999999999 敗   後手勝ちなら     後手の  0.8100000000000001 勝、     先手の  0.8100000000000001 敗 ここで、先手の 81 勝 19 敗のケースの検算は以下の通り。 先手計: -0.0000000000000053 後手計: 0.0000000000000053 総 計: 0.0000000000000000 先手勝率: 0.82 のとき、   先手勝ちなら     先手の  0.1800000000000000 勝、     後手の  0.1800000000000000 敗   後手勝ちなら     後手の  0.8200000000000000 勝、     先手の  0.8200000000000000 敗 ここで、先手の 82 勝 18 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.83 のとき、   先手勝ちなら     先手の  0.1700000000000000 勝、     後手の  0.1700000000000000 敗   後手勝ちなら     後手の  0.8300000000000000 勝、     先手の  0.8300000000000000 敗 ここで、先手の 83 勝 17 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.84 のとき、   先手勝ちなら     先手の  0.1600000000000000 勝、     後手の  0.1600000000000000 敗   後手勝ちなら     後手の  0.8400000000000000 勝、     先手の  0.8400000000000000 敗 ここで、先手の 84 勝 16 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.85 のとき、   先手勝ちなら     先手の  0.1500000000000000 勝、     後手の  0.1500000000000000 敗   後手勝ちなら     後手の  0.8500000000000000 勝、     先手の  0.8500000000000000 敗 ここで、先手の 85 勝 15 敗のケースの検算は以下の通り。 先手計: 0.0000000000000018 後手計: -0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.86 のとき、   先手勝ちなら     先手の  0.1400000000000000 勝、     後手の  0.1400000000000000 敗   後手勝ちなら     後手の  0.8600000000000000 勝、     先手の  0.8600000000000000 敗 ここで、先手の 86 勝 14 敗のケースの検算は以下の通り。 先手計: 0.0000000000000018 後手計: -0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.87 のとき、   先手勝ちなら     先手の  0.1300000000000000 勝、     後手の  0.1300000000000000 敗   後手勝ちなら     後手の  0.8700000000000000 勝、     先手の  0.8700000000000000 敗 ここで、先手の 87 勝 13 敗のケースの検算は以下の通り。 先手計: 0.0000000000000000 後手計: 0.0000000000000000 総 計: 0.0000000000000000 先手勝率: 0.88 のとき、   先手勝ちなら     先手の  0.1200000000000000 勝、     後手の  0.1200000000000000 敗   後手勝ちなら     後手の  0.8800000000000000 勝、     先手の  0.8800000000000000 敗 ここで、先手の 88 勝 12 敗のケースの検算は以下の通り。 先手計: -0.0000000000000018 後手計: 0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.89 のとき、   先手勝ちなら     先手の  0.1100000000000000 勝、     後手の  0.1100000000000000 敗   後手勝ちなら     後手の  0.8900000000000000 勝、     先手の  0.8900000000000000 敗 ここで、先手の 89 勝 11 敗のケースの検算は以下の通り。 先手計: -0.0000000000000018 後手計: 0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.9 のとき、   先手勝ちなら     先手の  0.1000000000000000 勝、     後手の  0.1000000000000000 敗   後手勝ちなら     後手の  0.9000000000000000 勝、     先手の  0.9000000000000000 敗 ここで、先手の 90 勝 10 敗のケースの検算は以下の通り。 先手計: -0.0000000000000018 後手計: 0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.91 のとき、   先手勝ちなら     先手の  0.0900000000000000 勝、     後手の  0.0900000000000000 敗   後手勝ちなら     後手の  0.9100000000000000 勝、     先手の  0.9100000000000000 敗 ここで、先手の 91 勝 9 敗のケースの検算は以下の通り。 先手計: -0.0000000000000018 後手計: 0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.92 のとき、   先手勝ちなら     先手の  0.0800000000000000 勝、     後手の  0.0800000000000000 敗   後手勝ちなら     後手の  0.9200000000000000 勝、     先手の  0.9200000000000000 敗 ここで、先手の 92 勝 8 敗のケースの検算は以下の通り。 先手計: -0.0000000000000044 後手計: 0.0000000000000044 総 計: 0.0000000000000000 先手勝率: 0.93 のとき、   先手勝ちなら     先手の  0.0700000000000000 勝、     後手の  0.0700000000000000 敗   後手勝ちなら     後手の  0.9300000000000000 勝、     先手の  0.9300000000000000 敗 ここで、先手の 93 勝 7 敗のケースの検算は以下の通り。 先手計: -0.0000000000000053 後手計: 0.0000000000000053 総 計: 0.0000000000000000 先手勝率: 0.94 のとき、   先手勝ちなら     先手の  0.0600000000000001 勝、     後手の  0.0600000000000001 敗   後手勝ちなら     後手の  0.9399999999999999 勝、     先手の  0.9399999999999999 敗 ここで、先手の 94 勝 6 敗のケースの検算は以下の通り。 先手計: 0.0000000000000053 後手計: -0.0000000000000053 総 計: 0.0000000000000000 先手勝率: 0.95 のとき、   先手勝ちなら     先手の  0.0500000000000000 勝、     後手の  0.0500000000000000 敗   後手勝ちなら     後手の  0.9500000000000000 勝、     先手の  0.9500000000000000 敗 ここで、先手の 95 勝 5 敗のケースの検算は以下の通り。 先手計: 0.0000000000000044 後手計: -0.0000000000000044 総 計: 0.0000000000000000 先手勝率: 0.96 のとき、   先手勝ちなら     先手の  0.0400000000000000 勝、     後手の  0.0400000000000000 敗   後手勝ちなら     後手の  0.9600000000000000 勝、     先手の  0.9600000000000000 敗 ここで、先手の 96 勝 4 敗のケースの検算は以下の通り。 先手計: 0.0000000000000036 後手計: -0.0000000000000036 総 計: 0.0000000000000000 先手勝率: 0.97 のとき、   先手勝ちなら     先手の  0.0300000000000000 勝、     後手の  0.0300000000000000 敗   後手勝ちなら     後手の  0.9700000000000000 勝、     先手の  0.9700000000000000 敗 ここで、先手の 97 勝 3 敗のケースの検算は以下の通り。 先手計: 0.0000000000000027 後手計: -0.0000000000000027 総 計: 0.0000000000000000 先手勝率: 0.98 のとき、   先手勝ちなら     先手の  0.0200000000000000 勝、     後手の  0.0200000000000000 敗   後手勝ちなら     後手の  0.9800000000000000 勝、     先手の  0.9800000000000000 敗 ここで、先手の 98 勝 2 敗のケースの検算は以下の通り。 先手計: 0.0000000000000018 後手計: -0.0000000000000018 総 計: 0.0000000000000000 先手勝率: 0.99 のとき、   先手勝ちなら     先手の  0.0100000000000000 勝、     後手の  0.0100000000000000 敗   後手勝ちなら     後手の  0.9900000000000000 勝、     先手の  0.9900000000000000 敗 ここで、先手の 99 勝 1 敗のケースの検算は以下の通り。 先手計: 0.0000000000000009 後手計: -0.0000000000000009 総 計: 0.0000000000000000 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 なんか これで 良さそうだ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 イプシロン使ってなくないか? これでは <strong>イプシロン勝ち点制</strong> じゃなくて、 <strong>あべこべ勝ち点ルール</strong> だぜ」</p> <h1 id="点の交通量:2 が崩れてはいけないのでは?"><a href="#%E7%82%B9%E3%81%AE%E4%BA%A4%E9%80%9A%E9%87%8F%EF%BC%9A%EF%BC%92%E3%80%80%E3%81%8C%E5%B4%A9%E3%82%8C%E3%81%A6%E3%81%AF%E3%81%84%E3%81%91%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%AF%EF%BC%9F">点の交通量:2 が崩れてはいけないのでは?</a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 点の交通量:2 が崩れてはいけないのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 最初から崩すという話しだったわよ?」</p> <h1 id="点の交通量<その2>"><a href="#%E7%82%B9%E3%81%AE%E4%BA%A4%E9%80%9A%E9%87%8F%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%92%EF%BC%9E">点の交通量<その2></a></h1> <pre><code class="plaintext">従来 ==== 先手1勝時の点の交通量: 2 後手1勝時の点の交通量: 2 引分け 時の点の交通量: 1 イプシロン勝ち点制 ================= 先手1勝時の点の交通量: 2 後手1勝時の点の交通量: 2 引分け 時の点の交通量: 1 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 じゃあ こうなるように 考え直しだぜ」</p> <h1 id="勝ち点の計算<その2>"><a href="#%E5%8B%9D%E3%81%A1%E7%82%B9%E3%81%AE%E8%A8%88%E7%AE%97%EF%BC%9C%E3%81%9D%E3%81%AE%EF%BC%92%EF%BC%9E">勝ち点の計算<その2></a></h1> <pre><code class="plaintext">従来 ==== 先手1勝 時の加点: 1 後手1敗 時の減点: 1 後手1勝 時の加点: 1 先手1敗 時の減点: 1 先手引分け時の加点: 0.5 ※0.4のところもある 後手引分け時の加点: 0.5 ※0.6のところもある イプシロン勝ち点制 ================= # 以下の 2 は、先手の1勝時の点の交通量 ε1       = 2 / xa 先手の1勝の加点 = 1 + ε 後手の1敗の減点 = 1 - ε # 以下の 2 は、後手の1勝時の点の交通量 ε2       = 2 / xb 後手の1勝の加点 = 1 + ε 先手の1敗の減点 = 1 - ε </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 このようになる xa と xb を求める必要があるんだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 それって どうやっても 2.0 勝 2.0 敗 ぐらいの差しか付かなくない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 さっきの <strong>あべこべ勝ち点ルール</strong> の方がよさそうだなあ」</p> むずでょ tag:crieit.net,2005:PublicArticle/18699 2024-01-08T23:43:42+09:00 2024-02-24T02:23:49+09:00 https://crieit.net/posts/f8b4659e194210a42ceb302142c26db7 日本地図を使ったクイズゲームを作ろうぜ(^~^)? <h1 id="(📅 2024-01-08 mon 成人の日) はじめに"><a href="#%28%F0%9F%93%85+2024-01-08+mon+%E6%88%90%E4%BA%BA%E3%81%AE%E6%97%A5%29+%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">(📅 2024-01-08 mon 成人の日) はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 日本地図を使ったクイズゲームを作ろうぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ 日本地図を描けだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👇 国土地理院の地図を参考にしたらいいんじゃないの?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.gsi.go.jp/chizuhensyu/chizuhensyu41009.html">日本全図</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 日本って 縦にも 横にも 長いな……<br /> ゲーム画面のサイズに合わせずら」</p> <p><a href="https://crieit.now.sh/upload_images/5e7e5dc83709d95b1371dded1cbe7d57659bff56b3fe0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5e7e5dc83709d95b1371dded1cbe7d57659bff56b3fe0.png?mw=700" alt="202401__game__08-2254--JapanMap.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 このサイズに 日本列島を収めて、メッセージウィンドウなどの GUI なども表示したいんだが」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 とりあえず 描いてみろだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/0e2be8b4bbc36b3e0c1da13efc1f7c6a659c052a9827c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0e2be8b4bbc36b3e0c1da13efc1f7c6a659c052a9827c.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こう?💦」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 もっと 方眼紙全体を 広く使いなさいよ」</p> <p><a href="https://crieit.now.sh/upload_images/18f141920c028cb8e661e970247b3a52659c09daefe47.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/18f141920c028cb8e661e970247b3a52659c09daefe47.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 きつい💦」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 47都道府県に分けれるか、やってみろだぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://uub.jp/map/">47都道府県の地図</a></p> <p><a href="https://crieit.now.sh/upload_images/5ed8d3305336a8dab7cc160b5fd53180659c0e5f3c63b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5ed8d3305336a8dab7cc160b5fd53180659c0e5f3c63b.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 関東の 群馬、埼玉、東京、神奈川、<br /> なんで 四重の弁当箱みたいに重なってんの? 描けないぜ また今度だな。今日は終わり」</p> <h1 id="(📅 2024-01-10 wed 成人の日) 関東"><a href="#%28%F0%9F%93%85+2024-01-10+wed+%E6%88%90%E4%BA%BA%E3%81%AE%E6%97%A5%29+%E9%96%A2%E6%9D%B1">(📅 2024-01-10 wed 成人の日) 関東</a></h1> <p><a href="https://crieit.now.sh/upload_images/585dfaa2de4c68a14b6591ce0fae0631659e8aa104fff.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/585dfaa2de4c68a14b6591ce0fae0631659e8aa104fff.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ひとまず、関東を仮置きだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 次は近畿、つら」</p> <p><a href="https://crieit.now.sh/upload_images/b7cdca4e2b5c9905052da4a7e302f1ba659e8d77b27e3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b7cdca4e2b5c9905052da4a7e302f1ba659e8d77b27e3.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o5o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 近畿、中国、四国を仮置きだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/60742805d84b9a4431a30ee8aa59a88d659e8f169ca90.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/60742805d84b9a4431a30ee8aa59a88d659e8f169ca90.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o6o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 九州」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 センタリングしようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/1253c2bf3b1b2f4e9f727d8be1500ef8659e90494d399.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1253c2bf3b1b2f4e9f727d8be1500ef8659e90494d399.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o7o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こうかな?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 国後、択捉はもっと長いんじゃないの?<br /> 中国地方は 分厚く見えるわねえ」</p> <p><a href="https://crieit.now.sh/upload_images/b4fc2c5462ae1522187da9a8489fd440659e9591ed60a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b4fc2c5462ae1522187da9a8489fd440659e9591ed60a.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o8o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ひとまず 北日本を調整」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 愛知と 三重は つながってんのよ?」</p> <p><a href="https://crieit.now.sh/upload_images/0090a78bff7dc824afb01224540feaf6659e9c31b7e10.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0090a78bff7dc824afb01224540feaf6659e9c31b7e10.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o9o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 近畿と中部を調整」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 沖縄 どのみち 入らないし、九州を思い切って下げれば?」</p> <p><a href="https://crieit.now.sh/upload_images/62e6d66899215cc2e08e7a2330ef3a7f659e9e5b9a909.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/62e6d66899215cc2e08e7a2330ef3a7f659e9e5b9a909.png?mw=700" alt="202401__game__08-2254--JapanMap-o2o10o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 九州、沖縄を調整」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 じゃあ 清書してみましょう」</p> <p><a href="https://crieit.now.sh/upload_images/1ad657e39d002663c83e1ea2026ed9ba659ea1298347c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1ad657e39d002663c83e1ea2026ed9ba659ea1298347c.png?mw=700" alt="202401__game__10-2244--JapanMap-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ひとまず 座標だけ振って 今日は終わりだぜ」</p> <h1 id="(📅 2024-01-13 sat) 隣接県"><a href="#%28%F0%9F%93%85+2024-01-13+sat%29+%E9%9A%A3%E6%8E%A5%E7%9C%8C">(📅 2024-01-13 sat) 隣接県</a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 清書する前に、隣接する県が 合ってるか、漏れがないか 調べておこうぜ?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.mlit.go.jp/tec/nyuusatu/hattyu/rinsetu.pdf">https://www.mlit.go.jp/tec/nyuusatu/hattyu/rinsetu.pdf</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 そんな便利な まとめがあるのかだぜ。やるな国土交通省」</p> <pre><code class="plaintext">北海道と東北 ※トンネル (北海道) 青森県 青森県 ↑ ↑ ↑ +---------+ +-----+----+ +----+----+ +----+----+ | 北海道 | | 青森県 | | 秋田県 +----→岩手県 秋田県<--+ 岩手県 | +----+----+ +-----+----+ +----+----+ +----+----+ ↓ ↓ \ ↓ \ ↓   (青森) 秋田県  岩手県     山形県 宮城県 宮城県 ※トンネル 秋田県 秋田県 岩手県 山形県  宮城県 ↑ \ ↑ ↑ / +----+----+ +----+----+ +----+----+ 新潟県<-| 山形県 +-->宮城県 山形県<--+ 宮城県 | 新潟県<--+ 福島県 | +----+----+ +----+----+ +----+----+ ↓ ↓ / ↓ \ 福島県 福島県 群馬県 栃木県 茨城県 関東 新潟県 福島県 福島県 福島県 埼玉県 茨城県 ↑ / ↑ ↑ \ ↑ +----+----+ +----+----+ +----+----+ +----+----+ 長野県<--+ 群馬県 +-->栃木県 群馬県<--+ 栃木県 +-->茨城県 栃木県<--+ 茨城県 | 東京都<--+ 千葉県 | +----+----+ +----+----+ +----+----+ +----+----+ ↓ ↓ / ↓ / 埼玉県 埼玉県 埼玉県 千葉県 (神奈川県)※橋 群馬県 栃木県 埼玉県 東京都 ↑ / ↑ ↑ +----+----+ +----+----+ +----+----+ 長野県<--+ 埼玉県 +-->茨城県 山梨県<--+ 東京都 +-->千葉県 山梨県<--+ 神奈川県 +-->(千葉県)※橋 +----+----+ +----+----+ +----+----+ / | \ ↓ / 山梨県 東京都 千葉県 神奈川県 静岡県 中部 山形県 富山県 新潟県 群馬県 新潟県 / \ ↑ / / +----+----+ +----+----+ +----+----+ +----+----+ 富山県<--+ 新潟県 +-->福島県 岐阜県<--+ 長野県 +-->埼玉県 石川県<--+ 富山県 +-->長野県 | 石川県 +-->富山県 +----+----+ +----+----+ +----+----+ +----+----+ / ↓ / ↓ \ ↓ ↓ \ 長野県 群馬県 愛知県 静岡県 山梨県 岐阜県 福井県 岐阜県 石川県 石川県 富山県 長野県 埼玉県 長野県 山梨県 神奈川県 ↑ \ ↑ \ / \ ↑ / +----+----+ +----+----+ +----+----+ +----+----+ 京都府<--+ 福井県 +-->岐阜県 福井県<--+ 岐阜県 +-->長野県 | 山梨県 +-->東京都 愛知県<--+ 静岡県 | +----+----+ +----+----+ +----+----+ +----+----+ ↓ / ↓ \ ↓ \ 滋賀県 滋賀県 三重県 愛知県 静岡県 神奈川県 岐阜県 長野県 ↑ / +----+----+ 三重県<--+ 愛知県 +-->静岡県 +----+----+ 近畿 福井県 福井県 鳥取県 京都府 京都府 滋賀県 岐阜県 ↑ / \ / \ ↑ / +----+----+ +----+----+ +----+----+ +----+----+ 京都府<--+ 滋賀県 +-->岐阜県 兵庫県<--+ 京都府 +-->滋賀県 | 兵庫県 | 奈良県<--+ 三重県 +-->愛知県 +----+----+ +----+----+ +----+----+ +----+----+ ↓ / ↓ \ / ↓ \ / 三重県 大阪府 奈良県 三重県 岡山県 (徳島県) 大阪府 和歌山県 ※淡路島 京都府 大阪府 奈良県 兵庫県 京都府 ↑ ↑ / \ ↑ +----+----+ +----+----+ +----+----+ 大阪府<--+ 奈良県 +-->三重県 | 和歌山県 +-->三重県 + 大阪府 +-->奈良県 +----+----+ +----+----+ +----+----+ / ↓ 和歌山県 和歌山県 中国 島根県 / +----+----+ +----+----+ +----+----+ 島根県<--+ 鳥取県 +-->兵庫県 山口県<--+ 島根県 +-->鳥取県 | 山口県 +-->広島県 +----+----+ +----+----+ +----+----+ / ↓ ↓ / 広島県 岡山県 広島県 福岡県 ※国土交通省では鳥取ではなく島根と書いてある (鳥取県) 島根県 鳥取県 ↑ ↑ / +----+----+ +----+----+ 広島県<--+ 岡山県 +-->兵庫県 山口県<--+ 広島県 +-->岡山県 +----+----+ +----+----+ ↓ ↓ 香川県 愛媛県 四国 ※淡路島 岡山県 香川県 (兵庫) 広島県 香川県 愛媛県 徳島県 ↑ ↑ / ↑ / \ / +----+----+ +----+----+ +----+----+ +----+----+ 愛媛県<--+ 香川県 | 愛媛県<--+ 徳島県 | | 愛媛県 +-->徳島県 | 高知県 | +----+----+ +----+----+ +----+----+ +----+----+ ↓ ↓ ↓ 徳島県 高知県 高知県 九州・沖縄 山口県 佐賀県 ↑ ↑ +----+----+ +----+----+ +----+----+ +----+----+ 佐賀県<--+ 福岡県 +-->大分県 | 佐賀県 +-->福岡県 | 長崎県 | 福岡県<--+ 大分県 | +----+----+ +----+----+ +----+----+ +----+----+ ↓ ↓ / ↓ 熊本県 長崎県 熊本県 宮崎県 ※本当はつながってない 福岡県 大分県 大分県 熊本県 宮崎県 (鹿児島県) ↑ / ↑ ↑ / ↑ +----+----+ +----+----+ +----+----+ +----+----+ | 熊本県 +-->宮崎県 熊本県<--+ 宮崎県 | | 鹿児島県 | | 沖縄県 | +----+----+ +----+----+ +----+----+ +----+----+ ↓ ↓ ↓ 鹿児島県 鹿児島県 (沖縄) ※本当はつながってない </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これを正として、イラストが ちゃんと 隣の県と隣接してるか 調べよ」</p> <p><a href="https://crieit.now.sh/upload_images/1442205106eb705ee9911e197776506065a2c3e488886.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1442205106eb705ee9911e197776506065a2c3e488886.png?mw=700" alt="202401__game__10-2244--JapanMap-o3o7o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 隣接を気にして 調整したぜ。今日はここまで」</p> <h1 id="(📅 2024-01-14 sun) 清書"><a href="#%28%F0%9F%93%85+2024-01-14+sun%29+%E6%B8%85%E6%9B%B8">(📅 2024-01-14 sun) 清書</a></h1> <p><a href="https://crieit.now.sh/upload_images/159e3b56e5f370836362b1ae0f38562965a37e257c840.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/159e3b56e5f370836362b1ae0f38562965a37e257c840.png?mw=700" alt="202401__game__14-1114--JapanBoard-o2o5o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 へぇへぇ 疲れた」</p> <p><a href="https://crieit.now.sh/upload_images/2c15722cccc2a3c5a8c315081915c0a565a38a0ee9c58.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2c15722cccc2a3c5a8c315081915c0a565a38a0ee9c58.png?mw=700" alt="202401__game__14-1114--JapanBoard-o2o9o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こんな感じでどうだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 できたわね。数字と グリッドを消してみましょう」</p> <p><a href="https://crieit.now.sh/upload_images/e2233e7830552932d67e4d96b912391b65a39298ce98e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e2233e7830552932d67e4d96b912391b65a39298ce98e.png?mw=700" alt="202401__game__14-1114--JapanBoard-o3o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ほい」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 この画像は完成として これで置いておいて」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 それとは別に、県を選択している色の カラー・バリエーションを作っておきましょう」</p> <p><a href="https://crieit.now.sh/upload_images/6ef0e6d531513e1473daa2b564c3eb5665a392a62054b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6ef0e6d531513e1473daa2b564c3eb5665a392a62054b.png?mw=700" alt="202401__game__14-1114--JapanBoard-o3o2o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ほい」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 県って、連番みたいなものってあるの?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 <strong>都道府県コード</strong>というものがあるらしいぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://makitani.net/shimauma/knowledge/japan-prefecture-code">都道府県コード</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 それを使って、選択色を47個のファイルに分割しましょう」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> (せっせっせ)</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 分けておいたぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 北海道、地方で分けた方がよくないかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 作業が終わったあとに 言わないでほしい……」</p> <p><a href="https://crieit.now.sh/upload_images/58d0ecb727f4a40a3a0f23e3ce4d47c765a3c22d1d2c9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/58d0ecb727f4a40a3a0f23e3ce4d47c765a3c22d1d2c9.png?mw=700" alt="202401__game__14-2014--Screenshot.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あー、海みたいな 背景画像が欲しいな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 青で塗りつぶせだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 将棋盤をイメージした配色にしてんだったら、背景は 畳でもいいんじゃない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 畳みなんか 描きたくないが……」</p> <p><a href="https://crieit.now.sh/upload_images/5c731a26e6ae79fd2d9b1146ea7ebb7665a3d2e210860.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5c731a26e6ae79fd2d9b1146ea7ebb7665a3d2e210860.png?mw=700" alt="202401__game__14-2016--TatamiColor-o2o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 縁を付けて 色味をそれっぽくした方眼紙で いいだろ……」</p> <p><a href="https://crieit.now.sh/upload_images/364f7759bdd0cda5da36844d470508f565a3d3dc9c353.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/364f7759bdd0cda5da36844d470508f565a3d3dc9c353.png?mw=700" alt="202401__game__14-2129--Screenshot.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 日本地図が 見にくくなったんだけど」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 畳の上に置くからだろ……、茶色に塗り直すのは 大きな手間だぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/9f5442093fa14b7ed88a87b4cdfcc89665a3da6d92f26.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9f5442093fa14b7ed88a87b4cdfcc89665a3da6d92f26.png?mw=700" alt="202401__game__14-2157--Screenshot.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 47ファイル 塗り直すしかないか……」</p> <h1 id="[📅2024-02-11 sun ⏰22:54] カーソル移動がまだ無い"><a href="#%5B%F0%9F%93%852024-02-11+sun+%E2%8F%B022%3A54%5D+%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E7%A7%BB%E5%8B%95%E3%81%8C%E3%81%BE%E3%81%A0%E7%84%A1%E3%81%84">[📅2024-02-11 sun ⏰22:54] カーソル移動がまだ無い</a></h1> <p><a href="https://crieit.now.sh/upload_images/ea1981c47e182749c31f42c0cd8a007465c8d1c155493.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ea1981c47e182749c31f42c0cd8a007465c8d1c155493.png?mw=700" alt="202402__game__11-2253--Choices.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 カーソル移動をサポートしてないので、選択肢で 隣県に移動することになるが」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ウィンドウを 日本海に持っていった方がいいんじゃない?」</p> <h1 id="[📅2024-02-18 sun ⏰23:25] カーソル移動を作りかけ"><a href="#%5B%F0%9F%93%852024-02-18+sun+%E2%8F%B023%3A25%5D+%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E7%A7%BB%E5%8B%95%E3%82%92%E4%BD%9C%E3%82%8A%E3%81%8B%E3%81%91">[📅2024-02-18 sun ⏰23:25] カーソル移動を作りかけ</a></h1> <p><a href="https://crieit.now.sh/upload_images/38d64873304932afa52e2fff15f5584365d2137c1b835.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/38d64873304932afa52e2fff15f5584365d2137c1b835.gif?mw=700" alt="202402__game__18-2321--cursor.gif" /></a><br /> (↑ gif animation)</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 十字キーの斜め入力を まだ受け付けてないので 高知県に入ったら 出られないぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 XとYの2軸を見ろだぜ」</p> <h1 id="[📅2024-02-21 wed ⏰22:04] 斜め入力に対応"><a href="#%5B%F0%9F%93%852024-02-21+wed+%E2%8F%B022%3A04%5D+%E6%96%9C%E3%82%81%E5%85%A5%E5%8A%9B%E3%81%AB%E5%AF%BE%E5%BF%9C">[📅2024-02-21 wed ⏰22:04] 斜め入力に対応</a></h1> <p><a href="https://crieit.now.sh/upload_images/6a08b155ba0df3ffb90faa02fa124fc265d5f509702d1.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6a08b155ba0df3ffb90faa02fa124fc265d5f509702d1.gif?mw=700" alt="202402__game__21-2201--naname-ido.gif" /></a><br /> (↑ gif animation)</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 斜め入力にも対応したが、斜めなんか 押しづらいぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 山梨から 長野へ なんで 左キーで行けないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 長野は日本地図を見ると左上だぜ。<br /> 山梨の左は 日本地図を見ると 神奈川だぜ。<br /> でも神奈川は 下キーで行くから 左キーは 何にも割り振られていないぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お父んの日本地図を 描き直せ!」</p> <h1 id="[📅2024-02-23 fri ⏰26:21] 斜め入力の利きを滑らかにした"><a href="#%5B%F0%9F%93%852024-02-23+fri+%E2%8F%B026%3A21%5D+%E6%96%9C%E3%82%81%E5%85%A5%E5%8A%9B%E3%81%AE%E5%88%A9%E3%81%8D%E3%82%92%E6%BB%91%E3%82%89%E3%81%8B%E3%81%AB%E3%81%97%E3%81%9F">[📅2024-02-23 fri ⏰26:21] 斜め入力の利きを滑らかにした</a></h1> <p><a href="https://crieit.now.sh/upload_images/0c1c3d88b1201ba32334e20b0d83530965d8d4688946e.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0c1c3d88b1201ba32334e20b0d83530965d8d4688946e.gif?mw=700" alt="202402__game__24-0218--naname-kousoku-ido.gif" /></a><br /> (↑ gif animation)</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 斜め入力は これでいいだろ……」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 カーソルが速すぎんだけど。ウェイトを入れなさいよ」</p> <p><続く></p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18685 2023-12-25T21:14:35+09:00 2023-12-25T23:51:25+09:00 https://crieit.net/posts/Haskell-o-6589722bdfef6 Haskellを練習しようぜ(^o^)?<その2o0> <h1 id="前の関連記事"><a href="#%E5%89%8D%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">前の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/Haskell-o-6587c55a0cd8c">Haskellを練習しようぜ(^o^)?<その1o0></a></p> <h1 id="情報"><a href="#%E6%83%85%E5%A0%B1">情報</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/haskell-practice-on-ubuntu">haskell-practice-on-ubuntu</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 エコー・サーバーのサンプル・プログラム無い?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://wiki.haskell.org/Implement_a_chat_server">Implement a chat server</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↑ チャット・サーバーなら すぐ見つかったけど」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ それを真似よう」</p> <pre><code class="bash">cabal init --interactive </code></pre> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ cabal init --interactive Should I generate a simple project with sensible defaults? [default: y] n What does the package build: 1) Executable 2) Library 3) Library and Executable Your choice? 1 What is the main module of the executable: * 1) Main.hs (does not yet exist, but will be created) 2) Main.lhs (does not yet exist, but will be created) 3) Other (specify) Your choice? [default: Main.hs (does not yet exist, but will be created)] 1 Please choose version of the Cabal specification to use: 1) 1.10 (legacy) 2) 2.0 (+ support for Backpack, internal sub-libs, '^>=' operator) 3) 2.2 (+ support for 'common', 'elif', redundant commas, SPDX) * 4) 2.4 (+ support for '**' globbing) 5) 3.0 (+ set notation for ==, common stanzas in ifs, more redundant commas, better pkgconfig-depends) Your choice? [default: 2.4 (+ support for '**' globbing)] Package name? [default: haskell-practice-on-ubuntu] chat_server Couldn't parse chat_server, please try again! Package name? [default: haskell-practice-on-ubuntu] chat-server Package version? [default: 0.1.0.0] Please choose a license: * 1) NONE 2) BSD-2-Clause 3) BSD-3-Clause 4) Apache-2.0 5) MIT 6) MPL-2.0 7) ISC 8) GPL-2.0-only 9) GPL-3.0-only 10) LGPL-2.1-only 11) LGPL-3.0-only 12) AGPL-3.0-only 13) GPL-2.0-or-later 14) GPL-3.0-or-later 15) LGPL-2.1-or-later 16) LGPL-3.0-or-later 17) AGPL-3.0-or-later 18) Other (specify) Your choice? [default: NONE] 5 Author name? [default: muzudho] Maintainer email? [default: [email protected]] Project homepage URL? https://github.com/muzudho/haskell-practice-on-ubuntu Project synopsis? for shogi server Project category: * 1) (none) 2) Codec 3) Concurrency 4) Control 5) Data 6) Database 7) Development 8) Distribution 9) Game 10) Graphics 11) Language 12) Math 13) Network 14) Sound 15) System 16) Testing 17) Text 18) Web 19) Other (specify) Your choice? [default: (none)] 13 What base language is the package written in: * 1) Haskell2010 2) Haskell98 3) Other (specify) Your choice? [default: Haskell2010] Add informative comments to each field in the cabal file (y/n)? [default: n] Guessing dependencies... Generating LICENSE... Warning: LICENSE already exists, backing up old version in LICENSE.save0 Generating CHANGELOG.md... Warning: CHANGELOG.md already exists, backing up old version in CHANGELOG.md.save0 Generating chat-server.cabal... You may want to edit the .cabal file and add a Description field. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 しまった プロジェクト・フォルダーの中身が ぶちまけられて ファイルをリネームまで されてしまった、<br /> 手動で復元しよ」</p> <h2 id="step 1o0"><a href="#step+1o0">step 1o0</a></h2> <p>🗒 <code>Main.hs</code> :</p> <pre><code class="hs">-- in Main.hs module Main where import Network.Socket main :: IO () main = do sock <- socket AF_INET Stream 0 -- create socket setSocketOption sock ReuseAddr 1 -- make socket immediately reusable - eases debugging. bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. listen sock 2 -- set a max of 2 queued connections mainLoop sock -- unimplemented </code></pre> <p>Output:</p> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/chat-server$ cabal build Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - chat-server-0.1.0.0 (exe:chat-server) (file app/Main.hs changed) Preprocessing executable 'chat-server' for chat-server-0.1.0.0.. Building executable 'chat-server' for chat-server-0.1.0.0.. [1 of 1] Compiling Main ( app/Main.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/chat-server/dist-newstyle/build/x86_64-linux/ghc-9.4.7/chat-server-0.1.0.0/x/chat-server/build/chat-server/chat-server-tmp/Main.o ) [Source file changed] app/Main.hs:4:1: error: Could not find module ‘Network.Socket’ Use -v (or `:set -v` in ghci) to see a list of the files searched for. | 4 | import Network.Socket | ^^^^^^^^^^^^^^^^^^^^^ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 依存性は <code>.cabal</code> ファイルにどう書けばいいんだ?」</p> <pre><code class="cabal">executable chat-server -- ... build-depends: base ^>=4.17.2.0, network, chat-server </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>network</code> を足してみるか」</p> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/chat-server$ cabal build ... app/Main.hs:10:34: error: Variable not in scope: iNADDR_ANY :: HostAddress | 10 | bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. | ^^^^^^^^^^ app/Main.hs:12:5: error: Variable not in scope: mainLoop :: Socket -> IO () | 12 | mainLoop sock -- unimplemented | ^^^^^^^^ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ このエラーはサンプル通りかな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 動かないコードをサンプルにするのは 止めてほしいわねぇ」</p> <h1 id="step 2o0"><a href="#step+2o0">step 2o0</a></h1> <pre><code class="hs">-- in Main.hs module Main where import Network.Socket -- メイン main :: IO () main = do sock <- socket AF_INET Stream 0 -- create socket setSocketOption sock ReuseAddr 1 -- make socket immediately reusable - eases debugging. bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. listen sock 2 -- set a max of 2 queued connections mainLoop sock -- unimplemented -- メインループ mainLoop :: Socket -> IO () mainLoop sock = do conn <- accept sock -- accept a connection and handle it runConn conn -- run our server's logic mainLoop sock -- repeat runConn :: (Socket, SockAddr) -> IO () runConn (sock, _) = do send sock "Hello!\n" close sock </code></pre> <p>Output:</p> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/chat-server$ cabal build Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - chat-server-0.1.0.0 (exe:chat-server) (file app/Main.hs changed) Preprocessing executable 'chat-server' for chat-server-0.1.0.0.. Building executable 'chat-server' for chat-server-0.1.0.0.. [1 of 1] Compiling Main ( app/Main.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/chat-server/dist-newstyle/build/x86_64-linux/ghc-9.4.7/chat-server-0.1.0.0/x/chat-server/build/chat-server/chat-server-tmp/Main.o ) [Source file changed] app/Main.hs:11:34: error: Variable not in scope: iNADDR_ANY :: HostAddress | 11 | bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. | ^^^^^^^^^^ app/Main.hs:24:5: error: Variable not in scope: send :: Socket -> String -> IO a0 Suggested fix: Perhaps use ‘snd’ (imported from Prelude) | 24 | send sock "Hello!\n" | ^^^^ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 少しずつ説明していくのだろう、それも どうかと思うが」</p> <h1 id="step 3o0"><a href="#step+3o0">step 3o0</a></h1> <pre><code class="hs">-- in Main.hs module Main where import Network.Socket -- in the imports our Main.hs add: import System.IO -- メイン main :: IO () main = do sock <- socket AF_INET Stream 0 -- create socket setSocketOption sock ReuseAddr 1 -- make socket immediately reusable - eases debugging. bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. listen sock 2 -- set a max of 2 queued connections mainLoop sock -- unimplemented -- メインループ mainLoop :: Socket -> IO () mainLoop sock = do conn <- accept sock -- accept a connection and handle it runConn conn -- run our server's logic mainLoop sock -- repeat -- and we'll change our `runConn` function to look like: runConn :: (Socket, SockAddr) -> IO () runConn (sock, _) = do hdl <- socketToHandle sock ReadWriteMode hSetBuffering hdl NoBuffering hPutStrLn hdl "Hello!" hClose hdl </code></pre> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/chat-server$ cabal build Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - chat-server-0.1.0.0 (exe:chat-server) (file app/Main.hs changed) Preprocessing executable 'chat-server' for chat-server-0.1.0.0.. Building executable 'chat-server' for chat-server-0.1.0.0.. [1 of 1] Compiling Main ( app/Main.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/chat-server/dist-newstyle/build/x86_64-linux/ghc-9.4.7/chat-server-0.1.0.0/x/chat-server/build/chat-server/chat-server-tmp/Main.o ) [Source file changed] app/Main.hs:14:34: error: Variable not in scope: iNADDR_ANY :: HostAddress | 14 | bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. | ^^^^^^^^^^ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ おまじないで 丸覚えしていくかあ」</p> <h1 id="step 4o0"><a href="#step+4o0">step 4o0</a></h1> <pre><code class="hs">-- in Main.hs module Main where import Network.Socket -- in the imports our Main.hs add: import System.IO -- add to our imports: import Control.Concurrent -- メイン main :: IO () main = do sock <- socket AF_INET Stream 0 -- create socket setSocketOption sock ReuseAddr 1 -- make socket immediately reusable - eases debugging. bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. listen sock 2 -- set a max of 2 queued connections mainLoop sock -- unimplemented -- メインループ mainLoop :: Socket -> IO () mainLoop sock = do conn <- accept sock -- accept a connection and handle it forkIO (runConn conn) -- run our server's logic. split off each connection into its own thread mainLoop sock -- repeat -- and we'll change our `runConn` function to look like: runConn :: (Socket, SockAddr) -> IO () runConn (sock, _) = do hdl <- socketToHandle sock ReadWriteMode hSetBuffering hdl NoBuffering hPutStrLn hdl "Hello!" hClose hdl </code></pre> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/chat-server$ cabal build Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - chat-server-0.1.0.0 (exe:chat-server) (file app/Main.hs changed) Preprocessing executable 'chat-server' for chat-server-0.1.0.0.. Building executable 'chat-server' for chat-server-0.1.0.0.. [1 of 1] Compiling Main ( app/Main.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/chat-server/dist-newstyle/build/x86_64-linux/ghc-9.4.7/chat-server-0.1.0.0/x/chat-server/build/chat-server/chat-server-tmp/Main.o ) [Source file changed] app/Main.hs:17:34: error: Variable not in scope: iNADDR_ANY :: HostAddress | 17 | bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. | </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 試しながら 覚えていくわけではないので なんも身につかん。座学」</p> <h1 id="step 5o0"><a href="#step+5o0">step 5o0</a></h1> <pre><code class="hs">-- in Main.hs module Main where import Network.Socket -- in the imports our Main.hs add: import System.IO -- add to our imports: import Control.Concurrent -- in Main.hs type Msg = String -- メイン main :: IO () main = do sock <- socket AF_INET Stream 0 -- create socket setSocketOption sock ReuseAddr 1 -- make socket immediately reusable - eases debugging. bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. listen sock 2 -- set a max of 2 queued connections chan <- newChan -- notice that newChan :: IO (Chan a) mainLoop sock chan -- pass it into the loop -- メインループ mainLoop :: Socket -> Chan Msg -> IO () -- See how Chan now uses Msg. mainLoop sock chan = do conn <- accept sock -- accept a connection and handle it forkIO (runConn conn chan) -- run our server's logic. split off each connection into its own thread. pass the channel to runConn mainLoop sock chan -- repeat -- and we'll change our `runConn` function to look like: runConn :: (Socket, SockAddr) -> IO () runConn (sock, _) = do hdl <- socketToHandle sock ReadWriteMode hSetBuffering hdl NoBuffering hPutStrLn hdl "Hello!" hClose hdl </code></pre> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/chat-server$ cabal build Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - chat-server-0.1.0.0 (exe:chat-server) (file app/Main.hs changed) Preprocessing executable 'chat-server' for chat-server-0.1.0.0.. Building executable 'chat-server' for chat-server-0.1.0.0.. [1 of 1] Compiling Main ( app/Main.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/chat-server/dist-newstyle/build/x86_64-linux/ghc-9.4.7/chat-server-0.1.0.0/x/chat-server/build/chat-server/chat-server-tmp/Main.o ) [Source file changed] app/Main.hs:20:34: error: Variable not in scope: iNADDR_ANY :: HostAddress | 20 | bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. | ^^^^^^^^^^ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんか <code>Chan</code> というのを使うようだが さっぱり 意味ワカラン」</p> <h1 id="step 6o0"><a href="#step+6o0">step 6o0</a></h1> <pre><code class="bash">app/Main.hs:16:1: error: parse error on input ‘import’ | 16 | import Control.Monad.Fix (fix) | ^^^^^^ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ うーん、エラー、依存性かな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 違うや、 <code>import</code> 文は <code>type</code> 文より先に書かないといけないみたいだ」</p> <pre><code class="hs">-- in Main.hs module Main where import Network.Socket -- in the imports our Main.hs add: import System.IO -- add to our imports: import Control.Concurrent -- at the top of Main.hs import Control.Monad.Fix (fix) -- in Main.hs type Msg = String -- メイン main :: IO () main = do sock <- socket AF_INET Stream 0 -- create socket setSocketOption sock ReuseAddr 1 -- make socket immediately reusable - eases debugging. bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. listen sock 2 -- set a max of 2 queued connections chan <- newChan -- notice that newChan :: IO (Chan a) mainLoop sock chan -- pass it into the loop -- メインループ mainLoop :: Socket -> Chan Msg -> IO () -- See how Chan now uses Msg. mainLoop sock chan = do conn <- accept sock -- accept a connection and handle it forkIO (runConn conn chan) -- run our server's logic. split off each connection into its own thread. pass the channel to runConn mainLoop sock chan -- repeat -- and we'll change our `runConn` function to look like: runConn :: (Socket, SockAddr) -> Chan Msg -> IO () runConn (sock, _) chan = do let broadcast msg = writeChan chan msg hdl <- socketToHandle sock ReadWriteMode hSetBuffering hdl NoBuffering commLine <- dupChan chan -- fork off a thread for reading from the duplicated channel forkIO $ fix $ \loop -> do line <- readChan commLine hPutStrLn hdl line loop -- read lines from the socket and echo them back to the user fix $ \loop -> do line <- fmap init (hGetLine hdl) broadcast line loop </code></pre> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/chat-server$ cabal build Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - chat-server-0.1.0.0 (exe:chat-server) (file app/Main.hs changed) Preprocessing executable 'chat-server' for chat-server-0.1.0.0.. Building executable 'chat-server' for chat-server-0.1.0.0.. [1 of 1] Compiling Main ( app/Main.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/chat-server/dist-newstyle/build/x86_64-linux/ghc-9.4.7/chat-server-0.1.0.0/x/chat-server/build/chat-server/chat-server-tmp/Main.o ) [Source file changed] app/Main.hs:23:34: error: Variable not in scope: iNADDR_ANY :: HostAddress | 23 | bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. | ^^^^^^^^^^ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ビルドの通らないコードを書かされるの 続く」</p> <h1 id="step 7o0"><a href="#step+7o0">step 7o0</a></h1> <pre><code class="hs">-- Main.hs, final code module Main where import Network.Socket import System.IO import Control.Exception import Control.Concurrent import Control.Monad (when) import Control.Monad.Fix (fix) -- メイン main :: IO () main = do sock <- socket AF_INET Stream 0 -- create socket setSocketOption sock ReuseAddr 1 -- make socket immediately reusable - eases debugging. bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. listen sock 2 -- set a max of 2 queued connections chan <- newChan -- notice that newChan :: IO (Chan a) _ <- forkIO $ fix $ \loop -> do (_, _) <- readChan chan loop mainLoop sock chan 0 -- pass it into the loop type Msg = (Int, String) -- メインループ mainLoop :: Socket -> Chan Msg -> Int -> IO () -- See how Chan now uses Msg. mainLoop sock chan msgNum = do conn <- accept sock -- accept a connection and handle it forkIO (runConn conn chan msgNum) -- run our server's logic. split off each connection into its own thread. pass the channel to runConn mainLoop sock chan $! msgNum + 1 -- repeat -- and we'll change our `runConn` function to look like: runConn :: (Socket, SockAddr) -> Chan Msg -> Int -> IO () runConn (sock, _) chan msgNum = do let broadcast msg = writeChan chan (msgNum, msg) hdl <- socketToHandle sock ReadWriteMode hSetBuffering hdl NoBuffering hPutStrLn hdl "Hi, what's your name?" name <- fmap init (hGetLine hdl) broadcast ("--> " ++ name ++ " entered chat.") hPutStrLn hdl ("Welcome, " ++ name ++ "!") commLine <- dupChan chan -- fork off a thread for reading from the duplicated channel reader <- forkIO $ fix $ \loop -> do (nextNum, line) <- readChan commLine when (msgNum /= nextNum) $ hPutStrLn hdl line loop handle (\(SomeException _) -> return ()) $ fix $ \loop -> do line <- fmap init (hGetLine hdl) case line of -- If an exception is caught, send a message and break the loop "quit" -> hPutStrLn hdl "Bye!" -- else, continue looping. _ -> broadcast (name ++ ": " ++ line) >> loop killThread reader -- kill after the loop ends broadcast ("<-- " ++ name ++ " left.") -- make a final broadcast hClose hdl -- close the handle </code></pre> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/chat-server$ cabal build Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - chat-server-0.1.0.0 (exe:chat-server) (file app/Main.hs changed) Preprocessing executable 'chat-server' for chat-server-0.1.0.0.. Building executable 'chat-server' for chat-server-0.1.0.0.. [1 of 1] Compiling Main ( app/Main.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/chat-server/dist-newstyle/build/x86_64-linux/ghc-9.4.7/chat-server-0.1.0.0/x/chat-server/build/chat-server/chat-server-tmp/Main.o ) [Source file changed] app/Main.hs:17:34: error: Variable not in scope: iNADDR_ANY :: HostAddress | 17 | bind sock (SockAddrInet 4242 iNADDR_ANY) -- listen on TCP port 4242. | </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ これが サンプルの完成形だが、エラーが出ている」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 わらう」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 どういうエラーなの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 さっぱりワカラン」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://hackage.haskell.org/package/network-2.2.1/docs/Network-Socket.html">Network.Socket</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>Network.Socket</code> にありそうなもんだけどな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 定数で 0 の意味らしいから <code>iNADDR_ANY</code> は 0 に置き換えたろ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 雑な仕事 わらう」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ビルドは通った」</p> <h2 id="接続"><a href="#%E6%8E%A5%E7%B6%9A">接続</a></h2> <pre><code class="bash">cabal run </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ これで サーバーは立ったのか?」</p> <pre><code class="bash">$ telnet localhost 4242 </code></pre> <p>Output:</p> <pre><code class="plaintext">Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Hi, what's your name? </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんか 応答が返ってきたぜ」</p> <pre><code class="plaintext">muzudho Welcome, muzudho! </code></pre> <pre><code class="plaintext">quit Bye! Connection closed by foreign host. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ じゃあ このプログラムを改造すれば クライアント・サーバー型の通信ができるんだ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 また来年だな」</p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18684 2023-12-24T14:44:58+09:00 2023-12-25T21:15:23+09:00 https://crieit.net/posts/Haskell-o-6587c55a0cd8c Haskellを練習しようぜ(^o^)?<その1o0> <h1 id="前の記事"><a href="#%E5%89%8D%E3%81%AE%E8%A8%98%E4%BA%8B">前の記事</a></h1> <p>📖 <a href="https://crieit.net/posts/Haskell-Ubuntu">Haskell を Ubuntu にインストールできねーの(^〜^)?</a></p> <h1 id="情報"><a href="#%E6%83%85%E5%A0%B1">情報</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/kifuwarabe-shogi-haskell">kifuwarabe-shogi-haskell</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↓ とほほ を見ながら ハスケルを自習しようぜ?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.tohoho-web.com/ex/haskell.html#list">とほほのHaskell入門</a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ コンソールで将棋盤を表示してみてくれだぜ」</p> <p>🗒 <code>view_shogiban.hs</code> :</p> <pre><code class="hs"><br /></code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ あれっ、ハスケルで 日本語入力できないぜ?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://mebee.info/2020/10/26/post-20987/">ubuntu20.04.1 vscodeで日本語入力ができない</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 snap でインストールした VSCode は、日本語入力ができないらしいわよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 アンインストールは つらい、なにかアップデートする方法はないか?」</p> <p><code>Japanese Language Pack for Visual Studio Code</code></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 試しに拡張を入れてみようぜ?」</p> <p><code>[Ctrl] + [Shift] + [P]</code> で <code>Configure Display Language</code> で日本語へ。</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 コマンドを使って設定もして、VSCodeも再起動」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ダメだ、何も変わらん。<br /> フロント・エンド・プロセッサーが反応してない」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://ch-random.net/post/458/">【新入生夏記事】Ubuntu の VSCode で 日本語入力 ができない問題</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↑ <code>Ubuntu Software</code> や <code>snap</code> は、土台がダメみたいよ」</p> <h1 id="Visual Studio Code をアンインストール"><a href="#Visual+Studio+Code+%E3%82%92%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Visual Studio Code をアンインストール</a></h1> <pre><code class="bash">sudo snap remove code </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ Visual Studio Code をアンインストールするぜ」</p> <h1 id="Visual Studio を再インストール"><a href="#Visual+Studio+%E3%82%92%E5%86%8D%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Visual Studio を再インストール</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://code.visualstudio.com/download">Download Visual Studio Code</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ Ubuntu なんで、 <code>.deb</code> を選ぶぜ。デビアンという意味かな」</p> <p><code>code_1.85.1-1702462158_amd64.deb</code></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ フォルダーなのか、圧縮ファイルなのか、なにかダウンロードしたが」</p> <pre><code class="bash">sudo apt install code_1.85.1-1702462158_amd64.deb </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ターミナルを開いて実行」</p> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Downloads$ sudo apt install code_1.85.1-1702462158_amd64.deb Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package code_1.85.1-1702462158_amd64.deb </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ うーん?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://askubuntu.com/questions/216287/unable-to-install-files-with-apt-get-unable-to-locate-package">Unable to install files with apt-get: "unable to locate package" [duplicate]</a></p> <pre><code class="bash">sudo apt-get update sudo apt install code_1.85.1-1702462158_amd64.deb </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 変わらんなあ」</p> <pre><code class="bash">sudo apt install ./code_1.85.1-1702462158_amd64.deb </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ カレント・ディレクトリの指定を忘れていた。これでインストールが始まった」</p> <pre><code class="bash">code </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ よし、振り出しに戻ったぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 うわっ、日本語版の GUI が出てきた、かっこ悪いから 英語版に戻そう」</p> <p><code>[Ctrl] + [Shift] + [P]</code> で <code>Configure Display Language</code> で英語へ。</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 よし、 Visual Studio Code は英語表示で、日本語入力できるようになったぜ」</p> <h1 id="将棋盤を表示しよう"><a href="#%E5%B0%86%E6%A3%8B%E7%9B%A4%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%82%88%E3%81%86">将棋盤を表示しよう</a></h1> <p>🗒 <code>view_shogiban.hs</code> :</p> <pre><code class="hs">{- ビュー / 将棋盤 -} main = putStrLn "+--+--+--+--+--+--+--+--+--+" </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ さまざまなことがわからないので、将棋盤の上辺を表示したいぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://wiki.haskell.org/Haskell_in_5_steps">Haskell in 5 steps</a></p> <pre><code class="bash"># コンパイル ghc -o view_shogiban view_shogiban.hs # 実行 ./view_shogiban </code></pre> <p>Output:</p> <pre><code class="plaintext">+--+--+--+--+--+--+--+--+--+ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ おー、表示されたぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 Haskell で複数行文字列って どうやってコーディングすんの?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/22918837/how-can-i-write-multiline-strings-in-haskell">How can I write multiline strings in Haskell?</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ラインフィードと デリミタでやるらしい」</p> <pre><code class="hs">{- ビュー / 将棋盤 -} main = putStrLn " 9 8 7 6 5 4 3 2 1\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 1 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 2 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 3 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 4 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 5 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 6 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 7 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 8 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n\ \ 9 | | | | | | | | | |\n\ \ +--+--+--+--+--+--+--+--+--+\n" </code></pre> <p>Output:</p> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban 9 8 7 6 5 4 3 2 1 +--+--+--+--+--+--+--+--+--+ 1 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ 2 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ 3 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ 4 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ 5 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ 6 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ 7 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ 8 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ 9 | | | | | | | | | | +--+--+--+--+--+--+--+--+--+ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ おー、こういう感じか」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 じゃー、ごっついの もっさり 作っていきますか」</p> <h1 id="フォントの設定"><a href="#%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A">フォントの設定</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 日本語と 半角文字の横幅の 桁が揃わない。<br /> VSCodeのフォントを 等幅フォントの mplus code にしたい。できるの?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://qiita.com/b2ox/items/2babce6e8c053fc4a0d6">VSCodeのフォントにMigu 1Mを使う</a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ↑ フォントの設定は できるみたいだが……」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ MPlus のフォントを Ubuntu へインストールできるかどうかか」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://mplusfonts.github.io/">M+Fonts</a><br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/coz-m/MPLUS_FONTS/tree/master/fonts/otf">M+Fonts / otf</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ otf をダウンロードすればいいのかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 Git Hub 上の <code>Mplus1Code-Regular.otf</code> リンクを コンコン クリックして進んでいったら インストールまで行けた 便利だな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 VSCode のメインメニューから <code>[File] - [Preferences] - [Settings]</code>。<br /> Font Family の先頭に <code>'M Plus 1 Code',</code> を追加したけど、どうか?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 Visual Studio Code を全部閉じて再起動。<br /> よしいけた」</p> <h1 id="将棋盤のレイアウトを考える"><a href="#%E5%B0%86%E6%A3%8B%E7%9B%A4%E3%81%AE%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%82%92%E8%80%83%E3%81%88%E3%82%8B">将棋盤のレイアウトを考える</a></h1> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban 飛 角 金 銀 桂 香 歩 [nnn move(s) / sente / 0 repeat(s)] +-----+-----+-----+-----+-----+-----+-----+ | 2 | 2 | 4 | 4 | 4 | 4 | 18 | +-----+-----+-----+-----+-----+-----+-----+ 一 二 三 四 五 六 七 八 九 +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 1 |[香> | |[歩> |[歩> |[歩> |[歩> | <歩]| | <香]| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 2 |[桂> |[角> |[歩> | | | | <歩]| <飛]| <桂]| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 3 |[銀> | |[歩> | | | | <歩]| | <銀]| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 4 |[金> | |[歩> | | | | <歩]| | <金]| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 5 |[玉> | |[歩> | | | | <歩]| | <玉]| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 6 |[金> | |[歩> | | | | <歩]| | <金]| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 7 |[銀> | |[歩> | | | | <歩]| | <銀]| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 8 |[桂> |[飛> |[歩> | | | | <歩]| <角]| <桂]| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 9 |[香> | |[歩> | | | | <歩]| | <香]| +-----+-----+-----+-----+-----+-----+-----+-----+----+ 歩 香 桂 銀 金 角 飛 +-----+-----+-----+-----+-----+-----+-----+ | 18 | 4 | 4 | 4 | 4 | 4 | 4 | +-----+-----+-----+-----+-----+-----+-----+ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ フーム どうすれば 見やすいかな?」</p> <pre><code class="plaintext">uzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban 飛 角 金 銀 桂 香 歩 [nnn move(s) / sente / 0 repeat(s)] +-----+-----+-----+-----+-----+-----+-----+ | 2 | 2 | 4 | 4 | 4 | 4 | 18 | +-----+-----+-----+-----+-----+-----+-----+ 一 二 三 四 五 六 七 八 九 +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 1 | 香> | | 歩> | | | | <歩 | | <香 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 2 | 桂> | 角> | 歩> | | | | <歩 | <飛 | <桂 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 3 | 銀> | | 歩> | | | | <歩 | | <銀 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 4 | 金> | | 歩> | | | | <歩 | | <金 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 5 | 玉> | | 歩> | | | | <歩 | | <玉 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 6 | 金> | | 歩> | | | | <歩 | | <金 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 7 | 銀> | | 歩> | | | | <歩 | | <銀 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 8 | 桂> | 飛> | 歩> | | | | <歩 | <角 | <桂 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 9 | 香> | | 歩> | | | | <歩 | | <香 | +-----+-----+-----+-----+-----+-----+-----+-----+----+ 歩 香 桂 銀 金 角 飛 +-----+-----+-----+-----+-----+-----+-----+ | 18 | 4 | 4 | 4 | 4 | 4 | 4 | +-----+-----+-----+-----+-----+-----+-----+ </code></pre> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban 飛 角 金 銀 桂 香 歩 [nnn move(s) / sente / 0 repeat(s)] +-----+-----+-----+-----+-----+-----+-----+ | 2 | 2 | 4 | 4 | 4 | 4 | 18 | +-----+-----+-----+-----+-----+-----+-----+ 一 二 三 四 五 六 七 八 九 +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 1 |香> | |歩> | | | | <歩| | <香| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 2 |桂> |角> |歩> | | | | <歩| <飛| <桂| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 3 |銀> | |歩> | | | | <歩| | <銀| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 4 |金> | |歩> | | | | <歩| | <金| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 5 |玉> | |歩> | | | | <歩| | <玉| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 6 |金> | |歩> | | | | <歩| | <金| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 7 |銀> | |歩> | | | | <歩| | <銀| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 8 |桂> |飛> |歩> | | | | <歩| <角| <桂| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 9 |香> | |歩> | | | | <歩| | <香| +-----+-----+-----+-----+-----+-----+-----+-----+----+ 歩 香 桂 銀 金 角 飛 +-----+-----+-----+-----+-----+-----+-----+ | 18 | 4 | 4 | 4 | 4 | 4 | 4 | +-----+-----+-----+-----+-----+-----+-----+ </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 入り組んだときに 見やすいかどうかが 重要じゃないの?」</p> <pre><code class="plaintext">uzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban WCSC33 決勝6回戦 ▲ dlshogi with H vs ▽ やねうら王 飛 角 金 銀 桂 香 歩 [199 move(s) / ▲2一金 / n repeat(s)] +-----+-----+-----+-----+-----+-----+-----+ | | | | 1 | | | | +-----+-----+-----+-----+-----+-----+-----+ 一 二 三 四 五 六 七 八 九 +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 1 |玉> |角> | <香| |角> | |と> | | | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 2 | <金| |歩> |桂> | | <金| | <飛| | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 3 | <全| | |歩> | | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 4 | | | | | | <歩| <金| | | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 5 | | | <銀| <桂|歩> | | <歩| | <玉| +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 6 | | | |歩> | |竜> | | <桂| | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 7 | | | | | | | <香| <歩|金> | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 8 | | <全| | | | |歩> | <銀| | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 9 | | | |歩> | | <歩| | | <香| +-----+-----+-----+-----+-----+-----+-----+-----+----+ 歩 香 桂 銀 金 角 飛 +-----+-----+-----+-----+-----+-----+-----+ | 7 | 1 | | | | | | +-----+-----+-----+-----+-----+-----+-----+ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 駒の漢字が 縦に揃ってないのも気になるな」</p> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban WCSC33 決勝6回戦 ▲ dlshogi with H vs ▽ やねうら王 飛 角 金 銀 桂 香 歩 [199 move(s) / ▲2一金 / n repeat(s)] +-----+-----+-----+-----+-----+-----+-----+ | | | | 1 | | | | +-----+-----+-----+-----+-----+-----+-----+ 一 二 三 四 五 六 七 八 九 +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 1 | 玉> : 角> : <香 : : 角> : : と> : : | + - - + - - + - - + - - + - - + - - + - - + - - + - - + 2 | <金 : : 歩> : 桂> : : <金 : : <飛 : | + - - + - - + - - + - - + - - + - - + - - + - - + - - + 3 | <全 : : : 歩> : : : : : | + - - + - - + - - + - - + - - + - - + - - + - - + - - + 4 | : : : : : <歩 : <金 : : | + - - + - - + - - + - - + - - + - - + - - + - - + - - + 5 | : : <銀 : <桂 : 歩> : : <歩 : : <玉 | + - - + - - + - - + - - + - - + - - + - - + - - + - - + 6 | : : : 歩> : : 竜> : : <桂 : | + - - + - - + - - + - - + - - + - - + - - + - - + - - + 7 | : : : : : : <香 : <歩 : 金> | + - - + - - + - - + - - + - - + - - + - - + - - + - - + 8 | : <全 : : : : : 歩> : <銀 : | + - - + - - + - - + - - + - - + - - + - - + - - + - - + 9 | : : : 歩> : : <歩 : : : <香 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 歩 香 桂 銀 金 角 飛 +-----+-----+-----+-----+-----+-----+-----+ | 7 | 1 | | | | | | +-----+-----+-----+-----+-----+-----+-----+ ``` ![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png) 「 ↑ 盤の方を点線にしてみたり」 ```plaintext muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban WCSC33 決勝6回戦 ▲ dlshogi with H vs ▽ やねうら王 飛 角 金 銀 桂 香 歩 [199 move(s) / ▲2一金 / n repeat(s)] +-----+-----+-----+-----+-----+-----+-----+ | | | | 1 | | | | +-----+-----+-----+-----+-----+-----+-----+ 一 二 三 四 五 六 七 八 九 +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 1 | 玉> ・ 角> ・ ・ ・ と> ・ ・ | + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + 2 | ・ 桂> ・ ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + 3 | ・ ・ ・ ・ ・ | + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + 4 | ・ ・ ・ ・ ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + 5 | ・ ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + 6 | ・ ・ ・ 歩> ・ ・ 竜> ・ ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + 7 | ・ ・ ・ ・ ・ ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + 8 | ・ ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + ・ + 9 | ・ ・ ・ 歩> ・ ・ +-----+-----+-----+-----+-----+-----+-----+-----+-----+ 歩 香 桂 銀 金 角 飛 +-----+-----+-----+-----+-----+-----+-----+ | 7 | 1 | | | | | | +-----+-----+-----+-----+-----+-----+-----+ ``` ![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png) 「 ↑ 半角の中点もあるが」 ![kifuwarabe-futsu.png](https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png) 「 将棋は罫線が多すぎでは? 囲碁みたいに 交点にしたらどうだぜ?」 ```plaintext muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban WCSC33 決勝6回戦 ▲ dlshogi with H vs ▽ やねうら王 飛 角 金 銀 桂 香 歩 [199 move(s) / ▲2一金 / n repeat(s)] +----+----+----+----+----+----+----+ | | | | 1 | | | | +----+----+----+----+----+----+----+ 一 二 三 四 五 六 七 八 九 +----+----+----+----+----+----+----+----+----+ 1 | 玉> 角> <香 ・ 角> ・ と> ・ ・ | + + 2 |<金 ・ 歩> 桂> ・ <金 ・ <飛 ・ | + + 3 |<全 ・ ・ 歩> ・ ・ ・ ・ ・ | + + 4 | ・ ・ ・ ・ ・ <歩 <金 ・ ・ | + + 5 | ・ ・ <銀 <桂 歩> ・ <歩 ・ <玉 | + + 6 | ・ ・ ・ 歩> ・ 竜> ・ <桂 ・ | + + 7 | ・ ・ ・ ・ ・ ・ <香 <歩 金>| + + 8 | ・ <全 ・ ・ ・ ・ 歩> <銀 ・ | + + 9 | ・ ・ ・ 歩> ・ <歩 ・ ・ <香 | +----+----+----+----+----+----+----+----+----+ 歩 香 桂 銀 金 角 飛 +----+----+----+----+----+----+----+ | 7 | 1 | | | | | | +----+----+----+----+----+----+----+ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 視認性が悪いのは どこからくるのかなあ」</p> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban WCSC33 決勝6回戦 ▲ dlshogi with H vs ▽ やねうら王 飛 角 金 銀 桂 香 歩 [199 move(s) / ▲2一金 / n repeat(s)] +------+------+------+------+------+------+------+ | | | | 1 | | | | +------+------+------+------+------+------+------+ 一 二 三 四 五 六 七 八 九 +------+------+------+------+------+------+------+------+------+ 1 | 玉 | 角 |<<香<<| | 角 | | と | | | +------+------+------+------+------+------+------+------+------+ 2 |<<金<<| | 歩 | 桂 | |<<金<<| |<<飛<<| | +------+------+------+------+------+------+------+------+------+ 3 |<<全<<| | | 歩 | | | | | | +------+------+------+------+------+------+------+------+------+ 4 | | | | | |<<歩<<|<<金<<| | | +------+------+------+------+------+------+------+------+------+ 5 | | |<<銀<<|<<桂<<| 歩 | |<<歩<<| |<<玉<<| +------+------+------+------+------+------+------+------+------+ 6 | | | | 歩 | | 竜 | |<<桂<<| | +------+------+------+------+------+------+------+------+------+ 7 | | | | | |<<香<<|<<歩<<| 金 | | +------+------+------+------+------+------+------+------+------+ 8 | |<<全<<| | | | 歩 |<<銀<<| | | +------+------+------+------+------+------+------+------+------+ 9 | | | | 歩 | |<<歩<<| | |<<香<<| +------+------+------+------+------+------+------+------+------+ 歩 香 桂 銀 金 角 飛 +------+------+------+------+------+------+------+ | 7 | 1 | | | | | | +------+------+------+------+------+------+------+ ``` ![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png) 「 ↑ 先手の駒の表示を うるさく してみたらどうだぜ?」 ![ohkina-hiyoko-futsu2.png](https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png) 「 もっと濃い網掛けはないの?」 ```plaintext muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban WCSC33 決勝6回戦 ▲ dlshogi with H vs ▽ やねうら王 飛 角 金 銀 桂 香 歩 [199 move(s) / ▲2一金 / n repeat(s)] +------+------+------+------+------+------+------+ | | | | 1 | | | | +------+------+------+------+------+------+------+ 一 二 三 四 五 六 七 八 九 +------+------+------+------+------+------+------+------+------+ 1 | 玉 >| 角 >| 香 | | 角 >| | と >| | | +------+------+------+------+------+------+------+------+------+ 2 | 金 | | 歩 >| 桂 >| | 金 | | 飛 | | +------+------+------+------+------+------+------+------+------+ 3 | 全 | | | 歩 >| | | | | | +------+------+------+------+------+------+------+------+------+ 4 | | | | | | 歩 | 金 | | | +------+------+------+------+------+------+------+------+------+ 5 | | | 銀 | 桂 | 歩 >| | 歩 | | 玉 | +------+------+------+------+------+------+------+------+------+ 6 | | | | 歩 >| | 竜 >| | 桂 | | +------+------+------+------+------+------+------+------+------+ 7 | | | | | | | 香 | 歩 | 金 >| +------+------+------+------+------+------+------+------+------+ 8 | | 全 | | | | 歩 >| 銀 | | | +------+------+------+------+------+------+------+------+------+ 9 | | | | 歩 >| | 歩 | | | 香 | +------+------+------+------+------+------+------+------+------+ 歩 香 桂 銀 金 角 飛 +------+------+------+------+------+------+------+ | 7 | 1 | | | | | | +------+------+------+------+------+------+------+ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ いろいろ やってみたが 視認性は 悪かったぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 だったら 縦でいいのでは?」</p> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu$ ./view_shogiban WCSC33 決勝6回戦 ▲ dlshogi with H vs ▽ やねうら王 9 8 7 6 5 4 3 2 1 [199 move(s) / ▲2一金 / n repeat(s)] +----+ +------+------+------+------+------+------+------+------+------+ 歩 | 7 | | | | | | | | 圭 | 金 | v玉 | 一 ▲玉 59 ▲香 99 77 13 ___ +----+ +------+------+------+------+------+------+------+------+------+ ▽玉 11 ▽香 *__ ___ ___ ___ 香 | 1 | | | 全 | | | | | | | v角 | 二 +----+ +------+------+------+------+------+------+------+------+------+ +----+ ▲飛 28 ___ ▲歩 ___ ___ ___ 桂 | | | | | | | 銀 | | | v歩 | 香 | 三 | | 飛 ▽飛 +66 ___ _46 _57 ___ +----+ +------+------+------+------+------+------+------+------+------+ +----+ _78 _87 _96 銀 | | | v歩 | | | v歩 | 桂 | | v歩 | v桂 | | 四 | | 角 ▲角 ___ ___ ___ ___ ___ ___ ___ ___ +----+ +------+------+------+------+------+------+------+------+------+ +----+ ▽角 12 15 ___ ___ ___ ___ ___ ___ 金 | | | | | | | v歩 | | | | v角 | 五 | | 金 ___ ___ ___ ___ ___ ___ +----+ +------+------+------+------+------+------+------+------+------+ +----+ ▲金 21 26 47 79 角 | | | 歩 | | | v竜 | | 歩 | | 金 | | 六 | 1 | 銀 ▽金 ___ ___ ___ ___ ▽歩 +17 _23 _34 +----+ +------+------+------+------+------+------+------+------+------+ +----+ ___ _55 _64 飛 | | | | 歩 | 香 | | 歩 | 金 | | | vと | 七 | | 桂 ▲銀 +82 53 88 *__ ___ ___ _94 +----+ +------+------+------+------+------+------+------+------+------+ +----+ ▽銀 ___ ___ ___ ___ *__ *__ *__ *__ *__ *__ | | 銀 | 歩 | 桂 | | | | 飛 | | 八 | | 香 *__ ___ ___ ___ ___ ___ +------+------+------+------+------+------+------+------+------+ +----+ ▲桂 +31 54 68 ___ ___ ___ ___ ___ ___ ___ | 香 | | 金 | | 玉 | | | | | 九 | | 歩 ▽桂 +24 ___ ___ ___ +------+------+------+------+------+------+------+------+------+ +----+ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 位置情報も表示するなら こうかな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 レイアウトはいったん これで確定して、モデルを作りましょう」</p> <h1 id="プロジェクト作成"><a href="#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E4%BD%9C%E6%88%90">プロジェクト作成</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ プロジェクト・フォルダー作ったほうがいいのか」</p> <pre><code class="bash">mkdir shogi-project cd shogi-project cabal init --interactive </code></pre> <pre><code class="plaintext"> 📁 shogi-project ├── 📁 app │ └── 🗒 Main.hs ├── 📁 src │ └── 🗒 MyLib.hs ├── 🗒 CHANGELOG.md └── 🗒 shogi-project.cabal </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ このあと どうすんのか?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 <code>Main.hs</code> に何か書いてないかだぜ?」</p> <p>🗒 <code>app/Main.hs</code> :</p> <pre><code class="hs">module Main where import qualified MyLib (someFunc) main :: IO () main = do putStrLn "Hello, Haskell!" MyLib.someFunc </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ おー、 <code>do-notation</code> だ。<br /> 最後の <code>MyLib.someFunc</code> が分からんが」</p> <p>🗒 <code>src/MyLib.hs</code> :</p> <pre><code class="hs">module MyLib (someFunc) where someFunc :: IO () someFunc = putStrLn "someFunc" </code></pre> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 <code>someFunc</code> と表示するだけのライブラリーでは?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 実行してみましょう!」</p> <pre><code class="bash">cabal build cabal run </code></pre> <p>Output:</p> <pre><code class="plaintext">Up to date Hello, Haskell! someFunc </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 全くそのとおりな結果だぜ」</p> <h2 id="print 文"><a href="#print+%E6%96%87">print 文</a></h2> <pre><code class="hs">module Main where import qualified MyLib (someFunc) main :: IO () main = do putStrLn "Hello, Haskell!" let x = 1 + 2 print x {- putStrLn x -} MyLib.someFunc </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>putStrLen</code> と <code>print</code> の違いも分からん つら」</p> <h1 id="インプットどうする?"><a href="#%E3%82%A4%E3%83%B3%E3%83%97%E3%83%83%E3%83%88%E3%81%A9%E3%81%86%E3%81%99%E3%82%8B%EF%BC%9F">インプットどうする?</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://qiita.com/karszawa/items/ec0c01c81c22ce060405">Haskellで競技プログラミング IO編</a><br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://minoki.github.io/ks-material/haskell/competitive.html">Haskellで競技プログラミング</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 競技プログラマが 詳しかったりするしな。読んだろ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.reddit.com/r/haskell/comments/i3f3ip/state_of_string_interpolation_in_haskell/">State of string interpolation in Haskell?</a><br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://blog.sarabande.jp/post/101471543023">Haskell: 文字列の連結、繰り返し、置き換え</a><br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/10755852/how-to-concat-two-io-strings-in-haskell">How to concat two (IO) Strings in Haskell?</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 競技プログラマも よくわかってないようだ もっと調べよう」</p> <pre><code class="hs">module Main where import qualified MyLib (someFunc) main :: IO () main = do y putStrLn $ "入力は" ++ y -- 文字列連結するときは頭に $ を付ける return () </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 自分が何をやっているか分からないが これで動く」</p> <pre><code class="hs">module Main where import qualified MyLib (someFunc) main :: IO () main = do line -- print はダブルクォーテーションがついてしまう。そもそもデバッグ用らしい {- if line == "usi" then putStrLn "usiok" else putStrLn "panic" -} case line of "usi" -> putStrLn "usiok" "isready" -> putStrLn "readyok" "usinewgame" -> putStrLn "" _ -> putStrLn "resign" </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ケース文も こんな感じだが、ループは どうやって作る?」</p> <pre><code class="hs">module Main where import qualified MyLib (someFunc) main :: IO () main = do line case line of "usi" -> putStrLn "usiok" "isready" -> putStrLn "readyok" "usinewgame" -> putStrLn "" 'p' : 'o' : 's' : 'i' : 't' : 'i' : 'o' : 'n' : ' ' : _ -> putStrLn "" 'g' : 'o' : ' ' : _ -> putStrLn "resign" _ -> putStrLn "" usi :: IO () usi = do return () </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ハスケルの Startswith 狂ってんな」</p> <h2 id="ループどうする?"><a href="#%E3%83%AB%E3%83%BC%E3%83%97%E3%81%A9%E3%81%86%E3%81%99%E3%82%8B%EF%BC%9F">ループどうする?</a></h2> <pre><code class="hs">module Main where import qualified MyLib (someFunc) main :: IO () main = do line usi line usi :: String -> IO () usi line = do case line of "usi" -> putStrLn "usiok" "isready" -> putStrLn "readyok" "usinewgame" -> putStrLn "" 'p' : 'o' : 's' : 'i' : 't' : 'i' : 'o' : 'n' : ' ' : _ -> putStrLn "" 'g' : 'o' : ' ' : _ -> putStrLn "resign" _ -> putStrLn "" -- loop line usi line </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ これでループする。<br /> アプリケーションの終了って どうやるんだ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 フォール・スルーすればいいのでは?」</p> <pre><code class="plaintext">module Main where import qualified MyLib (someFunc) main :: IO () main = do line usi line usi :: String -> IO () usi line = do case line of 'g' : 'o' : ' ' : _ -> do putStrLn "resign" "isready" -> do putStrLn "readyok" 'p' : 'o' : 's' : 'i' : 't' : 'i' : 'o' : 'n' : ' ' : _ -> do putStrLn "" "quit" -> do putStrLn "" -- 何もしないという処理は書けるか? "usi" -> do putStrLn "usiok" "usinewgame" -> do putStrLn "" _ -> do putStrLn "" if line == "quit" then return () else do -- loop line usi line </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ フォールスルーでアプリケーションを終了できるが、<br /> 何もしないという処理は どうやって書くんだぜ? Python の pass みたいなやつ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 何もしない処理なんか 書くなって ことじゃないの?」</p> <pre><code class="hs">module Main where import qualified MyLib (someFunc) main :: IO () main = do line usi line usi :: String -> IO () usi line = do if line == "quit" then return () -- 関数を終了し、アプリケーションを終了する else do case line of 'g' : 'o' : ' ' : _ -> do putStrLn "resign" "isready" -> do putStrLn "readyok" 'p' : 'o' : 's' : 'i' : 't' : 'i' : 'o' : 'n' : ' ' : _ -> do putStrLn "" "usi" -> do putStrLn "usiok" -- "usinewgame" -> putStr "" _ -> putStr "" -- 何もしないという処理が書けないので、何か出力する -- loop line usi line </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ じゃあこうだ」</p> <h1 id="プロジェクトの実行ファイル、どうやって作る?"><a href="#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%81%E3%81%A9%E3%81%86%E3%82%84%E3%81%A3%E3%81%A6%E4%BD%9C%E3%82%8B%EF%BC%9F">プロジェクトの実行ファイル、どうやって作る?</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 GHC では 実行ファイル作れたが、<br /> プロジェクトの場合は どうやる?」</p> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/shogi-project/dist-newstyle/build/x86_64-linux/ghc-9.4.7/shogi-project-0.1.0.0/x/shogi-project/build/shogi-project$ ./shogi-project </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ すごい長いファイルパスの下に 実行ファイルがあった」</p> <h1 id="将棋所がエンジン読み込まねー"><a href="#%E5%B0%86%E6%A3%8B%E6%89%80%E3%81%8C%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BE%E3%81%AD%E3%83%BC">将棋所がエンジン読み込まねー</a></h1> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/Shogidokoro/Engine$ ./Lesserkai.exe Cannot open assembly './Lesserkai.exe': File does not contain a valid CIL image. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ れさかい は C# で書いてんのか? <code>.NET Core</code> をインストールしてみるか」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/62225900/mono-app-exe-gives-error-file-does-not-contain-a-valid-cil-image">"mono app.exe" gives error "File does not contain a valid CIL image."</a></p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://dotnet.microsoft.com/en-us/download">Download .NET For Linux</a></p> <h1 id="将棋所がダメなら Shogi GUI だ"><a href="#%E5%B0%86%E6%A3%8B%E6%89%80%E3%81%8C%E3%83%80%E3%83%A1%E3%81%AA%E3%82%89+Shogi+GUI+%E3%81%A0">将棋所がダメなら Shogi GUI だ</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://mikunimaru.hatenablog.jp/entry/2018/02/23/013318">Shogi GUI</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 さらば 将棋所。 Shogi GUI へ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ダメだ Shogi GUI は文字化けしてる」</p> <h1 id="(📅 2023-12-25 ⏰ 18:59) 将棋所の再設定"><a href="#%28%F0%9F%93%85+2023-12-25+%E2%8F%B0+18%3A59%29+%E5%B0%86%E6%A3%8B%E6%89%80%E3%81%AE%E5%86%8D%E8%A8%AD%E5%AE%9A">(📅 2023-12-25 ⏰ 18:59) 将棋所の再設定</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="http://shogidokoro.starfree.jp/ubuntu.html">Ubuntu Linuxで動作させる場合の注意点</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 設定の見直し」</p> <pre><code class="bash">sudo apt install mono-complete </code></pre> <p>Output:</p> <pre><code class="bash">Reading package lists... Done Building dependency tree... Done Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: mono-complete : Depends: mono-runtime (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: mono-runtime-sgen (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: mono-llvm-support (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: libmono-2.0-1 (= 6.12.0.200-0xamarin2+ubuntu1604b1) but it is not going to be installed Depends: mono-utils (= 6.12.0.200-0xamarin2+ubuntu1604b1) but it is not going to be installed Depends: mono-devel (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: mono-mcs (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: mono-roslyn (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: mono-csharp-shell (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: mono-4.0-gac (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: libmono-cil-dev (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed Depends: ca-certificates-mono (= 6.12.0.200-0xamarin2+ubuntu1604b1) but 6.12.0.200-0xamarin2+ubuntu2004b1 is to be installed E: Unable to correct problems, you have held broken packages. </code></pre> <pre><code class="bash">sudo apt remove mono-complete </code></pre> <p>Output:</p> <pre><code class="bash">Reading package lists... Done Building dependency tree... Done Reading state information... Done Package 'mono-complete' is not installed, so not removed 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. </code></pre> <pre><code class="bash">muzudho@muzudho-MS-7B09:~$ sudo apt remove mono Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package mono </code></pre> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://askubuntu.com/questions/644938/how-to-completely-remove-mono">How to Completely remove mono?</a></p> <pre><code class="bash">sudo apt remove --purge --auto-remove mono-runtime </code></pre> <pre><code class="bash">sudo apt remove mono-complete </code></pre> <p>Output:</p> <pre><code class="plaintext">Reading package lists... Done Building dependency tree... Done Reading state information... Done Package 'mono-complete' is not installed, so not removed 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. </code></pre> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/Shogidokoro$ mono Shogidokoro.exe Command 'mono' not found, but can be installed with: sudo apt install mono-runtime </code></pre> <pre><code class="bash">muzudho@muzudho-MS-7B09:~$ sudo apt install mono-complete Reading package lists... Done Building dependency tree... Done Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: libgdiplus : Depends: libpng12-0 (>= 1.2.13-4) but it is not installable E: Unable to correct problems, you have held broken packages. </code></pre> <pre><code class="plaintext">libgdiplus : Depends: libpng12-0 (>= 1.2.13-4) but it is not installable </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんか 足りてネーの?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.mono-project.com/download/stable/#download-lin-ubuntu">moon / Downloads</a></p> <pre><code>sudo apt install ca-certificates gnupg sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list sudo apt update </code></pre> <pre><code class="bash">sudo apt install mono-devel </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ mono はインストールできたが」</p> <pre><code class="bash">sudo apt install mono-complete </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 今度はエラーは無かった」</p> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/Shogidokoro$ mono Shogidokoro.exe Gtk-Message: 19:50:18.028: Failed to load module "canberra-gtk-module" </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 今度は mono コマンドで将棋所が起動した」</p> <pre><code class="bash">sudo apt install 'fonts-takao-*' </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ takao フォントを入れる」</p> <pre><code class="bash">export TERM=xterm </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 将棋エンジンを読み込む前に この設定をしておくといいらしいが、効果なし」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://qiita.com/MuAuan/items/29811d90704e965e0a35">【Jetson_nano】将棋所で将棋AIで遊ぶ♬</a></p> <pre><code class="bash">export TERM=xterm mono Shogidokoro.exe </code></pre> <p>Output:</p> <pre><code class="plaintext">Gtk-Message: 19:57:43.757: Failed to load module "canberra-gtk-module" </code></pre> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://askubuntu.com/questions/342202/failed-to-load-module-canberra-gtk-module-but-already-installed">Failed to load module “canberra-gtk-module” .... but already installed</a></p> <pre><code class="bash">sudo apt install libcanberra-gtk-module libcanberra-gtk3-module </code></pre> <pre><code class="bash">export TERM=xterm mono Shogidokoro.exe </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ これでエラーなく将棋どころが起動した」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 れさかい も きふわらべも、動かない」</p> <h2 id="ハスケルが &quot;Up to date&quot; とエコーするのを止めさせられないか?"><a href="#%E3%83%8F%E3%82%B9%E3%82%B1%E3%83%AB%E3%81%8C+%26quot%3BUp+to+date%26quot%3B+%E3%81%A8%E3%82%A8%E3%82%B3%E3%83%BC%E3%81%99%E3%82%8B%E3%81%AE%E3%82%92%E6%AD%A2%E3%82%81%E3%81%95%E3%81%9B%E3%82%89%E3%82%8C%E3%81%AA%E3%81%84%E3%81%8B%EF%BC%9F">ハスケルが "Up to date" とエコーするのを止めさせられないか?</a></h2> <pre><code class="plaintext">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/shogi-project$ cabal run Up to date usi id name Kifuwarakell id author Muzudho usiok quit </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ハスケルが "Up to date" とエコーするのを止めさせられないか?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 <code>run</code> するから <code>Up to date</code> と鳴くんじゃないか?」</p> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/haskell-practice-on-ubuntu/shogi-project/dist-newstyle/build/x86_64-linux/ghc-9.4.7/shogi-project-0.1.0.0/x/shogi-project/build/shogi-project$ ./shogi-project usi id name Kifuwarakell id author Muzudho usiok quit </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 確かに」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 将棋所が頭に <code>./</code> を付けてコマンドを打鍵しますかね?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/29778382/cabal-doesnt-build-executable">Cabal Doesn't Build Executable</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ カバルは実行ファイルを作ってくれないようなので、スタックを調べるか」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/61956615/how-to-compile-an-executable-from-haskell-stack-build">How to compile an executable from Haskell Stack build?</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ スタックも <code>run</code> しないと 動かんらしい」</p> <h2 id="1ファイルで作成して GHC でコンパイルしたらどうか?"><a href="#1%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6+GHC+%E3%81%A7%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%97%E3%81%9F%E3%82%89%E3%81%A9%E3%81%86%E3%81%8B%EF%BC%9F">1ファイルで作成して GHC でコンパイルしたらどうか?</a></h2> <pre><code class="bash"># コンパイル ghc -o kifuwarakell.exe kifuwarakell.hs # 実行 ./kifuwarakell.exe </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 頭に <code>./</code> が付いたら、将棋所は読み込めないのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ パスを通せだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 Ubuntu で、すでにパスが通っているディレクトリーはどこだぜ?」</p> <pre><code class="bash">echo $PATH </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↑ コマンド打ちゃいいのよ」</p> <p>Output:</p> <pre><code class="plaintext">/home/muzudho/.cabal/bin:/home/muzudho/.ghcup/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>/usr/local/games</code> とかどうか?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 将棋はゲームだしな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 権限無いのか GUI でファイル移動できね」</p> <pre><code class="bash">cd ~ bkdir bin </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ここに <code>kifuwarakell.exe</code> を置く」</p> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/bin$ pwd /home/muzudho/bin </code></pre> <pre><code class="bash">export PATH="$PATH:/home/muzudho/bin" echo $PATH </code></pre> <p>Output:</p> <pre><code class="plaintext">/home/muzudho/.cabal/bin:/home/muzudho/.ghcup/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/muzudho/bin </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ これでパスは通した」</p> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/bin$ kifuwarakell.exe usi id name Kifuwarakell id author Muzudho usiok quit </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>Up to date</code> も出ないし、 <code>./</code> も要らないな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 それでも 将棋どころは きふわらべ をエンジン登録しない」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 将棋所が Ubuntu に対応してないんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 それはそう」</p> <pre><code class="bash">export PATH="$PATH:/home/muzudho/bin" export TERM=xterm mono Shogidokoro.exe </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ どうやっても ダメらしい。 将棋所は諦めて サーバー・プログラムを書こう」</p> <h2 id="ハスケルで通信プログラムは書けるの?"><a href="#%E3%83%8F%E3%82%B9%E3%82%B1%E3%83%AB%E3%81%A7%E9%80%9A%E4%BF%A1%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E6%9B%B8%E3%81%91%E3%82%8B%E3%81%AE%EF%BC%9F">ハスケルで通信プログラムは書けるの?</a></h2> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ハスケルで通信プログラムは書けるの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 何も分からない。 間に合わなかったら 去年のきふわらべで 出ればいいだろ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ハスケルに時間 取られてるの もったいない…… C# でいいんじゃないのか?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 エコー・サーバーのサンプル・プログラム無い?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://wiki.haskell.org/Implement_a_chat_server">Implement a chat server</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↑ チャット・サーバーなら すぐ見つかったけど」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ それを真似よう。記事を変えようぜ?」</p> <h2 id="次の関連記事"><a href="#%E6%AC%A1%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">次の関連記事</a></h2> <p>📖 <a href="https://crieit.net/posts/Haskell-o-6589722bdfef6">Haskellを練習しようぜ(^o^)?<その2o0></a></p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18683 2023-12-23T17:43:53+09:00 2023-12-23T17:43:53+09:00 https://crieit.net/posts/Haskell-o Haskell でコンピューター将棋を作ろうぜ(^o^)? <h1 id="前の記事"><a href="#%E5%89%8D%E3%81%AE%E8%A8%98%E4%BA%8B">前の記事</a></h1> <p>📖 <a href="https://crieit.net/posts/Haskell-Ubuntu">Haskell を Ubuntu にインストールできねーの(^〜^)?</a></p> <h1 id="情報"><a href="#%E6%83%85%E5%A0%B1">情報</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/kifuwarabe-shogi-haskell">kifuwarabe-shogi-haskell</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↓ コンピューター将棋では、Haskell を使ったのは、ながとダイアリーチームの Haskell将棋 というのがある」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="http://www2.computer-shogi.org/wcsc21/appeal/haskellshogi/hsShogiAppeal.htm">Haskell将棋</a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ホームページが リンク切れを起こしている」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 オープンソースにして どこか管理団体が維持しないと 滅びるのよ」</p> <h1 id="Step 1.0"><a href="#Step+1.0">Step 1.0</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 初手投了する将棋エンジンを作ろうぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ↓ リポジトリは作っておいたぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/kifuwarabe-shogi-haskell">kifuwarabe-shogi-haskell</a></p> <pre><code class="bash">gh repo clone muzudho/kifuwarabe-shogi-haskell </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ このコマンド どうやって使うんだっけ?」</p> <p>📂 <code>Home/Documents/git_hub</code></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↑ とりあえず ローカルの置き場を決めましょう」</p> <pre><code class="bash">cd ~/Documents/git_hub </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ターミナルで そこへ移動」</p> <pre><code class="bash">gh repo clone muzudho/kifuwarabe-shogi-haskell </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ git hub のコマンドは前回インストール済みなので、そのままコマンドを打鍵、<br /> おっ、なにかクローンされた」</p> <pre><code class="bash">code </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ あとは Visual Studio Code を使おう」</p> <pre><code class="bash">muzudho@muzudho-MS-7B09:~/Documents/git_hub/kifuwarabe-shogi-haskell$ git commit -a On branch main Your branch is up to date with 'origin/main'. Untracked files: (use "git add <file>..." to include in what will be committed) docs/ nothing added to commit but untracked files present (use "git add" to track) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ あれ? <code>git commit -a</code> コマンドが効かね?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 <code>docs</code> フォルダーを追加したからじゃないか?」</p> <pre><code class="bash">git add docs git commit -a # ここでメッセージを保存 git push </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ おっ、いけた」</p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18681 2023-12-18T21:10:13+09:00 2023-12-20T04:15:28+09:00 https://crieit.net/posts/c2a66847bc748064bfaa08b875e72c78 きふわらべのお父ん(囲碁36級、将棋5級)から見た囲碁・将棋の話し(^~^) <h1 id="盤のサイズ"><a href="#%E7%9B%A4%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA">盤のサイズ</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 チック・タック・トゥー(Tic Tac Toe;〇×ゲーム、3目並べ) は 3x3 だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d5bd6fea9439b26467538386c83471606581c5452d843.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d5bd6fea9439b26467538386c83471606581c5452d843.png?mw=700" alt="202312__shogi__20-0129--TicTacToe.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 先手勝ちだな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 だいたい 石を置くゲームは 盤がある面積より狭ければ 盤の狭さを使って後手勝ち、<br /> 盤がある面積より広くなれば 先手が最初に置いた1個が強くて 先手勝ちになりそうなものだが、<br /> チック・タック・トゥーは こんなに狭いのに 先手勝ちだぜ 面白いな」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 どうぶつしょうぎの盤サイズは 3×4 だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/6f38fa00429da9f46d67217d4164cb0a6581c26c64c3d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6f38fa00429da9f46d67217d4164cb0a6581c26c64c3d.png?mw=700" alt="202312__shogi__20-0116--DobutsuShogiBoard.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 こんなけ小さかったら すぐ飽きるんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 この手のゲームに言えることだが、相手が自分より少し弱かったら だいたい楽しめる」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 小さいゲームに言える傾向だが、一手のミスで局面が激変してしまうほど 一手の重要さがでかい。<br /> 見た目は可愛いが インファイトの組合い 殴り合いみたいな激しいゲーム」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 盤面が小さくて、大局観みたいなものが働かないが……」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 パスが無いから、自分の一手が 将来の自分を苦しめることになる。<br /> めっちゃ 読みを入れなければいけないゲームだぜ」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 コネクト・フォー(Connect Four;4目並べ) は 7x3 だぜ。<br /> 盤を立てて使う。重力があるので石は下に落ちて積もっていく」</p> <p><a href="https://crieit.now.sh/upload_images/bafb7b1910c1c1ffaf43ca2c4e4234db6581c8f59ba52.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/bafb7b1910c1c1ffaf43ca2c4e4234db6581c8f59ba52.png?mw=700" alt="202312__shogi__20-0144--ConnectFour.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 コネクト・フォーで遊ぶぐらいなら ぷよぷよ で遊びたいよな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 テトリスとか ドクターマリオを知っている わたしたちは あえてコネクト・フォーで遊ぼうとしないかも知れないが<br /> こういうゲームもあるということを知っとけだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 だいたい 自分が うっかり置いた石のせいで 負けてしまう。<br /> なんで こんな見た目が簡単なゲームで コンピューターに負けてしまうのかと 腹立って投げてしまう」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 あんたが うっかり置いたと思ってるだけで 相手の手のひらの上で 置かされているんじゃないの?」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 オセロの盤サイズは 8×8 だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/ecfbda8f2d3d549a295f0af5effa0c3e658017f16c39d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ecfbda8f2d3d549a295f0af5effa0c3e658017f16c39d.png?mw=700" alt="202312__shogi__18-1855--Othello.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 著作権を気にする人は リバーシ(Reversi)と ジャンル名で呼ぶらしいが……」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 挟んで ひっくり返すだけのゲームで ルールの覚えやすさから<br /> とりあえず旅行先に 持っていっとけば 誰かと遊べるゲームね」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 2023年に プリファードネットワークス社の中の人が 勤務時間の何%は自分の勉強に使っていいルールの中で研究して<br /> 両方がわざと負けるようなことをしない最善の棋譜が1つ見つかるという、 <strong>弱解決</strong> がされて 8×8のオセロは 引き分けだと再確認された。<br /> もともと 2019年には日本代表が 8x8のオセロは 引分けだろうと言われていたそうで、その証明にかかる時間を一気に縮めた形だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 6×6のオセロは 以前から後手必勝が見つかっていて、 盤面が9×9以上に大きくなったオセロでは 逆に先手が有利になるという噂もあるので<br /> 勝ち負けの結論が分からない中で オセロの発案者が ちょうどいいサイズの盤を選んでいたことは 不思議だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 角を取ったら 勝てると思い込んで 角を取ったのに負けたときは 腹立つぜ!」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 チェスの盤サイズも 8×8 だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/68a38d93bb66c6e794b586e26b88435865801881e9b52.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/68a38d93bb66c6e794b586e26b88435865801881e9b52.png?mw=700" alt="202312__shogi__18-1900--Chess.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 この市松模様の左下隅が黒、右下隅が白ってのも 決まってるそうよ」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 囲碁の9路盤(きゅうろばん)は 線を数えるので 9×9 だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/5b35fc0406733a54d5fb1dc16ffc6f1e658032aecc2e9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5b35fc0406733a54d5fb1dc16ffc6f1e658032aecc2e9.png?mw=700" alt="202312__shogi__18-1905--9roban.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 あれっ? 9路盤で オセロができる?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 できるできる」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 将棋盤は ますを数えるので 9x9 だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/483062661e080b310f5868b82ea05bc165801ae6d8756.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/483062661e080b310f5868b82ea05bc165801ae6d8756.png?mw=700" alt="202312__shogi__18-1908--shogiban.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 将棋盤の星って 何のために付いてんの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あとで 考察を書く」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 囲碁の13路盤」</p> <p><a href="https://crieit.now.sh/upload_images/080efacc9b1b3735a91b243ec873810e658028fbeb8fe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/080efacc9b1b3735a91b243ec873810e658028fbeb8fe.png?mw=700" alt="202312__shogi__18-2008--13roban.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 囲碁盤の星は 意味あるとこに 星があるわねえ」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 連珠は 15道盤(じゅうごどうばん)だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/ef27e16a11f0c6b9a297c7dce3361e1965802b1a0258a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ef27e16a11f0c6b9a297c7dce3361e1965802b1a0258a.png?mw=700" alt="202312__shogi__18-2018--15douban.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 15路盤と 何が違う?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 同じ」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 囲碁の19路盤」</p> <p><a href="https://crieit.now.sh/upload_images/98947c52b0d9ad6a6f682ea7bdda60916580306021e2c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/98947c52b0d9ad6a6f682ea7bdda60916580306021e2c.png?mw=700" alt="202312__shogi__18-2022--19roban.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 置き碁をするときは 星の上に 黒石を置くと ちょうどいいのよ」</p> <h2 id="星"><a href="#%E6%98%9F">星</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 このブログは わたしのブログなので わたしの考察を書くが」</p> <p><a href="https://crieit.now.sh/upload_images/690d8fc25f9c232f58b3a3a2cb0b20cc65801ff9e6379.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/690d8fc25f9c232f58b3a3a2cb0b20cc65801ff9e6379.png?mw=700" alt="202312__shogi__18-1929--chunin.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 もし将棋の駒に 仲人(ちゅうにん)という駒があれば……」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 なこうど じゃないのか……」</p> <p><a href="https://crieit.now.sh/upload_images/5cf4df7157b2b1c404a8eaf8123e0b1a6580224bbb3ed.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5cf4df7157b2b1c404a8eaf8123e0b1a6580224bbb3ed.png?mw=700" alt="202312__shogi__18-1934--nakoudo-hoshi.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 星を目印にして 置くぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 でも 無いじゃん」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 要らねーんじゃねーの」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 少なくとも 1587年には 星が付いてたそうだぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="http://blog.livedoor.jp/nifu_senkin-daily/archives/67539116.html">〔将棋〕 現存する最古の局面図「家忠日記」の棋譜をがんばって復元してみた</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 囲碁の19路盤」</p> <p><a href="https://crieit.now.sh/upload_images/98947c52b0d9ad6a6f682ea7bdda60916580306021e2c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/98947c52b0d9ad6a6f682ea7bdda60916580306021e2c.png?mw=700" alt="202312__shogi__18-2022--19roban.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ほんとに 19路 あるのかしら。 いち、に、さん……」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 4,10、16 のとこに星があるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 その数列が 覚えられなくない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 序数ではなくて 基数を使おうぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/f21b938345786092fccc3c2633bb874965803359b72b3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f21b938345786092fccc3c2633bb874965803359b72b3.png?mw=700" alt="202312__shogi__18-1905--9roban-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 9路盤の星は 2,4,6。 偶数だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/bcb7688703173aef4323c115b27ddec76580341c367a8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/bcb7688703173aef4323c115b27ddec76580341c367a8.png?mw=700" alt="202312__shogi__18-1908--shogiban-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 将棋盤は 3,6。 3の倍数だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/5d8384a0284bba280af0035291ec850e6580349c58f22.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5d8384a0284bba280af0035291ec850e6580349c58f22.png?mw=700" alt="202312__shogi__18-2008--13roban-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 13路盤も 3,6,9。 3の倍数だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/a1e67e9bd81ffbbb708a94d007e3e11865803526eafa0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a1e67e9bd81ffbbb708a94d007e3e11865803526eafa0.png?mw=700" alt="202312__shogi__18-2018--15douban-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 15道盤は 3,7,11。 素数だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 素数大好きなの わらう」</p> <p><a href="https://crieit.now.sh/upload_images/2e6ccd54a939c6dbcb08b0f97dc662bc658035ed09306.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2e6ccd54a939c6dbcb08b0f97dc662bc658035ed09306.png?mw=700" alt="202312__shogi__18-2022--19roban-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 19路盤は 3,9,15。 3の倍数だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 じゃあ だいたい 3つずつの間隔で 星 振ってんだ」</p> <h2 id="なぜ3の間隔で星を振る?"><a href="#%E3%81%AA%E3%81%9C%EF%BC%93%E3%81%AE%E9%96%93%E9%9A%94%E3%81%A7%E6%98%9F%E3%82%92%E6%8C%AF%E3%82%8B%EF%BC%9F">なぜ3の間隔で星を振る?</a></h2> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 なぜ 4でも 5でもなく 3の間隔で 星を振る?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 9路~19路あたりだと、4等分したときに 2, 3, 4 あたりの数が出てきやすいということだぜ。<br /> 盤の筋が奇数として、4分割するときのことを考えてみようぜ?」</p> <pre><code class="plaintext">5路盤 1 1 1 1 | | | +-+-+-+-+ | | | 7路盤 1 2 2 1 | | | +-+--+--+-+ | | | 9路盤 2 2 2 2 | | | +--+--+--+--+ | | | 10路盤(将棋盤、3等分) 3 3 3 | | +---+---+---+ | | 11路盤 2 3 3 2 | | | +--+---+---+--+ | | | 13路盤 3 3 3 3 | | | +---+---+---+---+ | | | 15路盤 3 4 4 3 | | | +---+----+----+---+ | | | 17路盤 4 4 4 4 | | | +----+----+----+----+ | | | 19路盤 4 5 5 4 | | | +----+-----+-----+----+ | | | </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 いい感じに 4等分しようとすると<br /> べつに 3 という数に 優位性は感じられないが……、19路盤で工夫だぜ」</p> <pre><code class="plaintext">19路盤 3 6 6 3 | | | +---+------+------+---+ | | | </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 19路盤で 6等分にしたんだな。<br /> これで 3 の倍数ばっかり出てくるように見えるようになった」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ 3間隔が多く思ったのは 9~19 といった小さな自然数を 4等分 するせいか」</p> <h1 id="星の使い道"><a href="#%E6%98%9F%E3%81%AE%E4%BD%BF%E3%81%84%E9%81%93">星の使い道</a></h1> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 3、9,15,<br /> 1を足したら 4,10、16……、星の位置を覚えられそうな気がしてきたわよ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 星は 盤の筋を 数えるのに使うのかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <strong>桂馬飛び</strong> の方向を見るにも 使える」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 将棋の話題を 忘れてなかったんだな」</p> <h2 id="星と桂馬飛びの関係"><a href="#%E6%98%9F%E3%81%A8%E6%A1%82%E9%A6%AC%E9%A3%9B%E3%81%B3%E3%81%AE%E9%96%A2%E4%BF%82">星と桂馬飛びの関係</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 桂馬飛びの性能を復習しよう」</p> <p><a href="https://crieit.now.sh/upload_images/0e7c99f7db7ced609ddccceed7b176c865803c225ca83.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0e7c99f7db7ced609ddccceed7b176c865803c225ca83.png?mw=700" alt="202312__shogi__18-1905--9roban-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 9路盤では、左下隅からスタートして、将棋でいう所の相手玉の位置まで<br /> 星を通って 桂馬飛びで行ける」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 囲碁にも将棋にも けいま はありますもんね」</p> <p><a href="https://crieit.now.sh/upload_images/dfdf5a55c4704890221631b890723bed65803cce5da47.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/dfdf5a55c4704890221631b890723bed65803cce5da47.png?mw=700" alt="202312__shogi__18-1908--shogiban-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 将棋では 筋違い桂は3筋あるが、筋違い桂は あんまり意識しないと思うが<br /> これも やっぱり 将棋盤の左下隅からスタートして、相手玉の位置まで 星の隣を通って 桂馬飛びで行ける」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 そうか」</p> <p><a href="https://crieit.now.sh/upload_images/b061f1f6df6ea0ba9025c9027808337c65803dcb0c405.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b061f1f6df6ea0ba9025c9027808337c65803dcb0c405.png?mw=700" alt="202312__shogi__18-2008--13roban-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 13路盤では、左下隅からスタートして、将棋でいう所の相手玉の位置まで<br /> 星の1つ隣を通って 桂馬飛びで行ける」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 けいま 飛びは 星の近くを通るのねえ」</p> <p><a href="https://crieit.now.sh/upload_images/d638b481180ca2aee2f9b2627ca95a0b65803ea41fbfd.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d638b481180ca2aee2f9b2627ca95a0b65803ea41fbfd.png?mw=700" alt="202312__shogi__18-2022--19roban-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 19路盤では、左下隅からスタートして、将棋でいう所の相手玉の位置まで<br /> こんどは 中段の星から 1つ離れたところを通って 上段真ん中の星から 1つ離れたところへ 桂馬飛びで行ける」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 説明が全部終わったら 起こしてくれだぜ Zzz」</p> <p><a href="https://crieit.now.sh/upload_images/7e3ae06e9199619c9fdb2f624dfa99076580406b13750.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7e3ae06e9199619c9fdb2f624dfa99076580406b13750.png?mw=700" alt="202312__shogi__18-2147--keima.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これは 桂馬という動きが、正方形の向かいの辺の半分地点まで飛ぶという動きだから、その比だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/33588f5a21669793aad40ecfad7d407265805ba6255e4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/33588f5a21669793aad40ecfad7d407265805ba6255e4.png?mw=700" alt="202312__shogi__18-2147--keima-o2o0-root5.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 なお 斜辺の長さは ルート5」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/ce6650aaf58b52842ea81fddc22add0d658042e2dbf4f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ce6650aaf58b52842ea81fddc22add0d658042e2dbf4f.png?mw=700" alt="202312__shogi__18-1905--9roban-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 9路盤の4つの星を結ぶと このような正方形ができるが……」</p> <p><a href="https://crieit.now.sh/upload_images/f33933ba85d31d213f8ccc7f239f404465804345d9b2d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f33933ba85d31d213f8ccc7f239f404465804345d9b2d.png?mw=700" alt="202312__shogi__18-1905--9roban-o4o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 桂馬飛びは ここを通る」</p> <p><a href="https://crieit.now.sh/upload_images/7ab1ba5ca7d9cf60728f8a5edef3ca0c658043eac96d4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7ab1ba5ca7d9cf60728f8a5edef3ca0c658043eac96d4.png?mw=700" alt="202312__shogi__18-1908--shogiban-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 将棋盤の4つの星を結ぶと このような正方形ができるが……」</p> <p><a href="https://crieit.now.sh/upload_images/9d7da236af492e86b3b46db9900b34d5658044485f645.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9d7da236af492e86b3b46db9900b34d5658044485f645.png?mw=700" alt="202312__shogi__18-1908--shogiban-o4o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 桂馬が このラインを飛ぶのは よく知ってることだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d25fb3238b55aa6e6f8ac795bbede8e4658044ba27206.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d25fb3238b55aa6e6f8ac795bbede8e4658044ba27206.png?mw=700" alt="202312__shogi__18-2008--13roban-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 13路盤の4つの星を結ぶと このような正方形ができるが……」</p> <p><a href="https://crieit.now.sh/upload_images/1daded10f65a4e7996f803b08d486ba6658045148f738.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1daded10f65a4e7996f803b08d486ba6658045148f738.png?mw=700" alt="202312__shogi__18-2008--13roban-o4o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 桂馬飛びは ここを通る」</p> <p><a href="https://crieit.now.sh/upload_images/558a3e5e8df55da5b2ed0f73584da9fd6580456b2586b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/558a3e5e8df55da5b2ed0f73584da9fd6580456b2586b.png?mw=700" alt="202312__shogi__18-2018--15douban-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 15道盤の4つの星を結ぶと このような正方形ができるが……」</p> <p><a href="https://crieit.now.sh/upload_images/af2cc29b152b118abca7331359a7807d658045c960f6e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/af2cc29b152b118abca7331359a7807d658045c960f6e.png?mw=700" alt="202312__shogi__18-2018--15douban-o4o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 桂馬飛びは ここを通る」</p> <p><a href="https://crieit.now.sh/upload_images/8db1d7d459359e4dd9a24d2e35c781996580463e4ed45.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8db1d7d459359e4dd9a24d2e35c781996580463e4ed45.png?mw=700" alt="202312__shogi__18-2022--19roban-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 19路盤の4つの星を結ぶと このような正方形ができるが……」</p> <p><a href="https://crieit.now.sh/upload_images/17cd4c89ea1f0e0b3a2810eaeb0a8b7b6580469eeaf72.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/17cd4c89ea1f0e0b3a2810eaeb0a8b7b6580469eeaf72.png?mw=700" alt="202312__shogi__18-2022--19roban-o4o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 桂馬飛びは ここを通る」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 上下左右のバランス良く 正方形を配置したら どこに星を置いても そうなるわねえ」</p> <p>*<br /> *<br /> *<br /> *</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 端っこから桂馬飛びすると、星の近くを通るものなの?」</p> <p><a href="https://crieit.now.sh/upload_images/ab54612b56221727cfed94e11ba0bfb36581d33d49a50.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ab54612b56221727cfed94e11ba0bfb36581d33d49a50.png?mw=700" alt="202312__shogi__20-0224--Keima-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 星が 盤を4つに等分割していれば 中段の星の上を通るはずなんだけどな」</p> <h1 id="ケイマの4つの筋"><a href="#%E3%82%B1%E3%82%A4%E3%83%9E%E3%81%AE%EF%BC%94%E3%81%A4%E3%81%AE%E7%AD%8B">ケイマの4つの筋</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 桂馬飛びは 4つの筋があるな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 何が?」</p> <p><a href="https://crieit.now.sh/upload_images/9c4a2006f947c6c7f950999bb9b57c3065804c459ec17.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9c4a2006f947c6c7f950999bb9b57c3065804c459ec17.png?mw=700" alt="202312__shogi__18-2240--keimaPattern-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 星の高さを 踏んでいくジャンプと」</p> <p><a href="https://crieit.now.sh/upload_images/80bfd07b92d852161ebf5ee7601b8fa265804caf766fb.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/80bfd07b92d852161ebf5ee7601b8fa265804caf766fb.png?mw=700" alt="202312__shogi__18-2240--keimaPattern-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 星の高さと 筋が違うジャンプだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 筋違い桂ね~」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 もう 囲碁の話しばっかりしてるが 筋違い桂なんか分かって<br /> 何が嬉しいんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/deb3c5ce5a43fc47477076cc6694d2f86580605af1e90.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/deb3c5ce5a43fc47477076cc6694d2f86580605af1e90.png?mw=700" alt="202312__shogi__19-0000--keimaPhase.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 囲碁でも 将棋でも 桂馬は 4つの筋があるんで」</p> <p><a href="https://crieit.now.sh/upload_images/446503c72fe35ec37af588f9d6a45a6d658061c60a047.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/446503c72fe35ec37af588f9d6a45a6d658061c60a047.png?mw=700" alt="202312__shogi__19-0011--keimaLine.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 直線が見えやすくなるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 要らん知識だ……、シチョウが見えたら役に立つのに……」</p> <p><a href="https://crieit.now.sh/upload_images/2c7d36594f7e09c41f74e0fbd1f27f186581d4f613468.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2c7d36594f7e09c41f74e0fbd1f27f186581d4f613468.png?mw=700" alt="202312__shogi__19-0011--keimaLine-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 左右反転して 角度を変えても同じ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 囲碁盤って どっちから見ても同じで 便利ねえ」</p> <p><a href="https://crieit.now.sh/upload_images/e36c845906a1ff5c64934d084259ef856581d6725fe60.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e36c845906a1ff5c64934d084259ef856581d6725fe60.png?mw=700" alt="202312__shogi__19-0011--keimaLine-o3o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 右へ飛ぶ、左へ飛ぶと ナナメに向かっても いけるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 八方桂だ」</p> <p><a href="https://crieit.now.sh/upload_images/69db7d9f7a36f0110cacb79e38b90b986581d80f4cec8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/69db7d9f7a36f0110cacb79e38b90b986581d80f4cec8.png?mw=700" alt="202312__shogi__19-0011--keimaLine-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 上下左右の場合は 中段で 1路 ずれるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 すっきりしねーな」</p> <p><a href="https://crieit.now.sh/upload_images/2dfd399020b1d7fb8b23861c76b9641c6581db585adc8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2dfd399020b1d7fb8b23861c76b9641c6581db585adc8.png?mw=700" alt="202312__shogi__20-0256--keima-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 桂馬飛びの筋違いは 品の字 を意識するといいぜ」</p> <p><a href="https://crieit.now.sh/upload_images/b87bbd8df352fe7eb8fcd13bca9b01736581dd0570868.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b87bbd8df352fe7eb8fcd13bca9b01736581dd0570868.png?mw=700" alt="202312__shogi__20-0256--keima-o2o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 でも 向きがあるわねぇ」</p> <h2 id="将棋の桂馬と利きの重ね"><a href="#%E5%B0%86%E6%A3%8B%E3%81%AE%E6%A1%82%E9%A6%AC%E3%81%A8%E5%88%A9%E3%81%8D%E3%81%AE%E9%87%8D%E3%81%AD">将棋の桂馬と利きの重ね</a></h2> <p><a href="https://crieit.now.sh/upload_images/45d40c7bae85e89a3f3cd1b0bcd1bf516581de5badb43.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/45d40c7bae85e89a3f3cd1b0bcd1bf516581de5badb43.png?mw=700" alt="202312__shogi__20-0316--shogiKeima.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 将棋の桂馬って 八方に飛べても良さそうなものなのに、 前方2つにしか飛べないのな」</p> <p><a href="https://crieit.now.sh/upload_images/bb5a9f6c68d1168b6e17fe262e0201d76581deda3a96b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/bb5a9f6c68d1168b6e17fe262e0201d76581deda3a96b.png?mw=700" alt="202312__shogi__20-0316--shogiKeima-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 つまり 横に飛べると 将棋のルールとして まずい 何かが 有ったんだろな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 チェスは 八方桂で 成立してるわよ?<br /> なんで 将棋では 成立しないの?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 『将棋の桂馬はなぜ横に飛べないのか?』と ChatGPT に尋ねても 結局 集合知の人工知能は答えを知ってないから<br /> ゲームバランスが崩れるから、みたいな あたりさわりのない答えが返ってくるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/45c3bf7f0a566863bbb1be2a7d4111e26581e1d6e838c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/45c3bf7f0a566863bbb1be2a7d4111e26581e1d6e838c.png?mw=700" alt="202312__shogi__20-0316--shogiKeima-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 考えられるのは 桂馬4枚で利きを重ねると まず受からないということかだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ゲームバランスが崩れるのよ。 ChatGPT ちゃんが合ってるのよ」</p> <p><a href="https://crieit.now.sh/upload_images/8e0b3614ac8e88afb620bcc5c3d81f406581e327d80bf.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8e0b3614ac8e88afb620bcc5c3d81f406581e327d80bf.png?mw=700" alt="202312__shogi__20-0316--shogiKeima-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 桂馬って 利きを重ねると強いのに、平手初期局面から2枚の桂馬の利きが重なるの この1点しかないの、<br /> なんでなの? これじゃ 二桂のコンビが活躍する場面 少なくない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 桂馬って 交換して 持ち駒になって ナンボ というところもあるし……」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 角側の桂香の2匹は 相手の駒台に乗ってることが多いよな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <strong>攻め駒に桂を1枚含めるの</strong>、桂をタダで取られるよりは 攻めに使って 相手の守りの駒1枚と交換しろ、ということなのかもしらん」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 歩 ぐらいとしか 交換できなくない?」</p> <p><つづく><br /> .</p> むずでょ tag:crieit.net,2005:PublicArticle/18680 2023-12-17T12:59:33+09:00 2023-12-18T08:34:23+09:00 https://crieit.net/posts/e5dd65c792621e3c14aca580ee46518c スイス式トーナメントって何だぜ(^~^)? <h1 id="前の関連記事"><a href="#%E5%89%8D%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">前の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/a9a0a6dc37120e004def2d042466bcde">イロ・レーティングって何だぜ(^~^)?<その2></a></p> <h1 id="情報"><a href="#%E6%83%85%E5%A0%B1">情報</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/league-matching">Git Hub</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 スイス式トーナメントのマッチングを実装しようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 柿木さんか 瀧澤さんか 山田さんか カツ丼が ソースコードを持っているのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ソースコード読んでも あんたら 分かんないでしょ」</p> <h1 id="リーグ(League;総当たり)"><a href="#%E3%83%AA%E3%83%BC%E3%82%B0%EF%BC%88League%EF%BC%9B%E7%B7%8F%E5%BD%93%E3%81%9F%E3%82%8A%EF%BC%89">リーグ(League;総当たり)</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 スイス・システム・トーナメント(Swiss-system-tournament;スイス式トーナメント)は、<br /> リーグ(League;総当たり)できないときに 使われる。<br /> リーグできない理由は、人数多いとか、時間無いとか、様々だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ まず リーグのマッチングのアルゴリズムを実装してくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/6858f7cf5200141efcf6beeebd4c0521657e74b1269f3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6858f7cf5200141efcf6beeebd4c0521657e74b1269f3.png?mw=700" alt="202312__shogi__17-1301--League-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 y が 1 ~4 の人たち、ここでは偶数の人数としよう、<br /> 全員が 次の人を選んだら……」</p> <p><a href="https://crieit.now.sh/upload_images/eb19b90aa73c0f0787a94ae73cca5773657e763649b9f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/eb19b90aa73c0f0787a94ae73cca5773657e763649b9f.png?mw=700" alt="202312__shogi__17-1301--League-o2o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ペアリングは成立しないので、<br /> 偶数番の人には 正負の符号を反転してもらう必要があるな」</p> <p><a href="https://crieit.now.sh/upload_images/d3d0ed0f2fccda3de841b1e4887fa267657e76ba83c81.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d3d0ed0f2fccda3de841b1e4887fa267657e76ba83c81.png?mw=700" alt="202312__shogi__17-1301--League-o2o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 奇数と偶数で 挙動が変わるアルゴリズムなのかしらねえ?」</p> <h2 id="リーグ 2ラウンド目"><a href="#%E3%83%AA%E3%83%BC%E3%82%B0%E3%80%80%EF%BC%92%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E7%9B%AE">リーグ 2ラウンド目</a></h2> <p><a href="https://crieit.now.sh/upload_images/11a59634f20036f9d2f07ed023bb89a5657e7a60e41f4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/11a59634f20036f9d2f07ed023bb89a5657e7a60e41f4.png?mw=700" alt="202312__shogi__17-1301--League-o2o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 1 の代わりに 2 にしても うまく働いたな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 序数 めんどくさいので 基数 にしたらどう?」</p> <p><a href="https://crieit.now.sh/upload_images/4d97f5bb58a61141e4539aca59feb682657e7a2e83bf2.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4d97f5bb58a61141e4539aca59feb682657e7a2e83bf2.png?mw=700" alt="202312__shogi__17-1301--League-o2o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 モジュロ(modulo;法)を使う時は 序数を使った方がいいかだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 3ラウンド目も うまくいくのかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/293f31eae5927901d31e9b7b4156d433657e7b9f2e73c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/293f31eae5927901d31e9b7b4156d433657e7b9f2e73c.png?mw=700" alt="202312__shogi__17-1301--League-o2o5o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 うまく行ったが?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 永遠に上手くいく証明はできるの?」</p> <pre><code class="plaintext">ラウンド番号を序数 r とする 参加人数を yy とする。yy は偶数とする 参加者番号は基数 y とする リーグでの対戦相手番号は (y+yy+r)%yy if 自分の参加者番号が偶数 (y+yy-r)%yy if 自分の参加者番号が奇数 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 この定義の証明か。何も思い浮かばんな」</p> <p><a href="https://crieit.now.sh/upload_images/15cd15dd6443eccb9f74241f6de5ea60657e86fc2f2a3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/15cd15dd6443eccb9f74241f6de5ea60657e86fc2f2a3.png?mw=700" alt="202312__shogi__17-1404--League.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 yy が 8 のとき、 r=2 で ぐちゃぐちゃだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 画面端でループしてるけど、<br /> 蛇の頭が ただ伸びてるだけですもんね」</p> <h2 id="ふつうに考えて 線対称なのでは?"><a href="#%E3%81%B5%E3%81%A4%E3%81%86%E3%81%AB%E8%80%83%E3%81%88%E3%81%A6%E3%80%80%E7%B7%9A%E5%AF%BE%E7%A7%B0%E3%81%AA%E3%81%AE%E3%81%A7%E3%81%AF%EF%BC%9F">ふつうに考えて 線対称なのでは?</a></h2> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 対角線を軸とした、線対称になる式にしないといけないのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 まったくだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/b3d88a8295011054f82b885640ec91b1657e8cd93a550.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b3d88a8295011054f82b885640ec91b1657e8cd93a550.png?mw=700" alt="202312__shogi__17-1449--PositiveNegative.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 0番目の+6と、 6番目の-6 は線対称になるのは 分かるし、<br /> プラス方向に進むか、マイナス方向に進むかは 対角線の位置で分かる」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 じゃあ 奇数、偶数じゃなくて 対角線を使って 分けりゃいいんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d300b1cbfe3b602ef835e4e187170f44657e9223dc50f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d300b1cbfe3b602ef835e4e187170f44657e9223dc50f.png?mw=700" alt="202312__shogi__17-1509--League.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 対角線で分かれているのは確かだが、<br /> xについても、yについても、排他的でないといけないぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 色分けしてくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/7effbfd590332df145667b40ec134262657e93c952208.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7effbfd590332df145667b40ec134262657e93c952208.png?mw=700" alt="202312__shogi__17-1517--Coloring.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こうだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 これだけ 分かってって あと何が分からないんだぜ?」</p> <h2 id="2つのグループに分けることができる"><a href="#%EF%BC%92%E3%81%A4%E3%81%AE%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AB%E5%88%86%E3%81%91%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B">2つのグループに分けることができる</a></h2> <p><a href="https://crieit.now.sh/upload_images/ada2c098749b3447e1a2a37dbea7e84a657e95dad5126.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ada2c098749b3447e1a2a37dbea7e84a657e95dad5126.png?mw=700" alt="202312__shogi__17-1525--ColoringGroup.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 上のグループと、下のグループは 法則が別かな? 左右反転」</p> <p><a href="https://crieit.now.sh/upload_images/2fcd5803341324aa78017fbe9a7ccc57657e9764b8c1d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2fcd5803341324aa78017fbe9a7ccc57657e9764b8c1d.png?mw=700" alt="202312__shogi__17-1533--Window.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 ウィンドウのようなものも あるんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 認識しづらいな…… もっと良い補助線があるんじゃないか?」</p> <p><a href="https://crieit.now.sh/upload_images/016203d9824d1ff9b39a5cb6b74fc6dc657e9c81cd371.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/016203d9824d1ff9b39a5cb6b74fc6dc657e9c81cd371.png?mw=700" alt="202312__shogi__17-1559--Rotate.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 複利計算みたいだな……」</p> <h2 id="セル・オートマトンで何とかならないか?"><a href="#%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3%E3%81%A7%E4%BD%95%E3%81%A8%E3%81%8B%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%E3%81%8B%EF%BC%9F">セル・オートマトンで何とかならないか?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 分岐があるような計算 困難なんで<br /> 分岐が無くせないか まず考えてみよう」</p> <p><a href="https://crieit.now.sh/upload_images/a363fc71f552f1373308826cb6d71c50657e9e1273500.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a363fc71f552f1373308826cb6d71c50657e9e1273500.png?mw=700" alt="202312__shogi__17-1604--CellAutomaton.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 対角線のセルに 1 が入っているとしよう」</p> <p><a href="https://crieit.now.sh/upload_images/15cebc3c4490aa1b9bc4cd5b4686c2b5657e9ea0f40c3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/15cebc3c4490aa1b9bc4cd5b4686c2b5657e9ea0f40c3.png?mw=700" alt="202312__shogi__17-1604--CellAutomaton-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <code>1 + 1 = 2</code> までは すぐ行けるが……」</p> <p><a href="https://crieit.now.sh/upload_images/8bbc9f4f812b3ce1c13ef7677d8f13c2657e9f8a1dd61.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8bbc9f4f812b3ce1c13ef7677d8f13c2657e9f8a1dd61.png?mw=700" alt="202312__shogi__17-1604--CellAutomaton-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 足すというより、自然数の蛇が伸びているとしよう」</p> <p><a href="https://crieit.now.sh/upload_images/807e829d19016f7442fc423acac0640e657e9ffcb3edf.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/807e829d19016f7442fc423acac0640e657e9ffcb3edf.png?mw=700" alt="202312__shogi__17-1604--CellAutomaton-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 行き止まりに入った 4 が居るな」</p> <p><a href="https://crieit.now.sh/upload_images/e91c081b4838aad83887477cf1a9fbb6657ea0ad68430.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e91c081b4838aad83887477cf1a9fbb6657ea0ad68430.png?mw=700" alt="202312__shogi__17-1604--CellAutomaton-o5o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 対角線に +4 した 5 を使って リスタートしたらどうだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/7b76de6ddc8c37a757c098216a6bf7b4657ea126ecd80.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7b76de6ddc8c37a757c098216a6bf7b4657ea126ecd80.png?mw=700" alt="202312__shogi__17-1604--CellAutomaton-o6o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 なんか 数列ができてきたな」</p> <p><a href="https://crieit.now.sh/upload_images/d12cf4821a5463ce1b7b54b99021d575657ea1d3e51a5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d12cf4821a5463ce1b7b54b99021d575657ea1d3e51a5.png?mw=700" alt="202312__shogi__17-1604--CellAutomaton-o7o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 もう少し」</p> <p><a href="https://crieit.now.sh/upload_images/05d0a94fa879e5c7c7ea2f5f9f936d46657ea24215aed.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/05d0a94fa879e5c7c7ea2f5f9f936d46657ea24215aed.png?mw=700" alt="202312__shogi__17-1604--CellAutomaton-o8o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 乱数生成器みたいだ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 この数を 簡単に生成できないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 今やった やり方を 短くできそうだな」</p> <p><a href="https://crieit.now.sh/upload_images/fe128190c454418996d0e7be6a4e3966657ea49944ee4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/fe128190c454418996d0e7be6a4e3966657ea49944ee4.png?mw=700" alt="202312__shogi__17-1631--Copy.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 最大数を足して複写だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 その手順のステップ数を セルに振ってくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/48921be2fdbe1c917a470c7dfe8172ed657ea5f73e8ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/48921be2fdbe1c917a470c7dfe8172ed657ea5f73e8ba.png?mw=700" alt="202312__shogi__17-1637--Stepping.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これで分かるだろ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 関数作れないの? 行番号と 列番号で ステップ数が出てくる Excel の関数みたいなやつ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 思い浮かばなかったので、アルゴリズムでやりたい」</p> <h1 id="アルゴリズムを考える"><a href="#%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%82%92%E8%80%83%E3%81%88%E3%82%8B">アルゴリズムを考える</a></h1> <p><a href="https://crieit.now.sh/upload_images/cf0b076c8ddd9792b4b4743e8b14bf3e657eda4113785.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/cf0b076c8ddd9792b4b4743e8b14bf3e657eda4113785.png?mw=700" alt="202312__shogi__17-2019--Algorithm-o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 0ラウンド目」</p> <p><a href="https://crieit.now.sh/upload_images/48ad593f7452cfaf96e8f01719150b26657ee29ef4211.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/48ad593f7452cfaf96e8f01719150b26657ee29ef4211.png?mw=700" alt="202312__shogi__17-2019--Algorithm-1round-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 1ラウンド目」</p> <p><a href="https://crieit.now.sh/upload_images/6ce488a2fd03e13a95c439ee0ea97501657ee429b6093.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6ce488a2fd03e13a95c439ee0ea97501657ee429b6093.png?mw=700" alt="202312__shogi__17-2019--Algorithm-2round-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 2ラウンド目」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あとは 繰り返しだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 16元数みたいだ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 実装してみましょう」</p> <h2 id="テーブル・サイズの変更"><a href="#%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%83%BB%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AE%E5%A4%89%E6%9B%B4">テーブル・サイズの変更</a></h2> <p><a href="https://crieit.now.sh/upload_images/ab0fd028591ed76de4137abe266cc05b657ee553e242a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ab0fd028591ed76de4137abe266cc05b657ee553e242a.png?mw=700" alt="202312__shogi__17-2118--SizeUp.png" /></a></p> <pre><code class="plaintext">Source Target ------ ----------- 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 テーブルサイズを大きくすると レイアウトが崩れるから、<br /> 4倍のテーブルは 新しく作るようにしないといけないな。<br /> コピー中に 元の表の5倍 メモリサイズ食う」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ずれずに コピーするには どうやるんだぜ?」</p> <pre><code class="plaintext">Source Target ------ ------------ 0, 1, 0, 1, 2, 3, 2, 3, 4, 5, 6, 7, 8, 9,10,11, 12,13,14,15, </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 現状、配列のインデックスなわけだが……」</p> <pre><code class="plaintext">Source Target ------------- ----------------------------------- (0,0), (0,1), ( 0, 0), ( 0, 1), ( 0, 2), ( 0, 3), (1,0), (1,1), ( 1, 0), ( 1, 1), ( 1, 2), ( 1, 3), ( 2, 0), ( 2, 1), ( 2, 2), ( 2, 3), ( 3, 0), ( 3, 1), ( 3, 2), ( 3, 3), </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <code>(x, y)</code> の座標形式に変換してから、同じとこへコピーする感じだな」</p> <pre><code class="plaintext">x = index % edge_size y = math.floor(index / edge_size) index = y * edge_size + x </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 x, y, index の変換は上記の通りだぜ」</p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18678 2023-12-17T01:06:28+09:00 2023-12-17T01:06:28+09:00 https://crieit.net/posts/26bd4c03396d91773dc9fdb6e4402621 なぜプログラミングに失敗し続けるか解説(^~^) <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 メモっておく」</p> <p><a href="https://crieit.now.sh/upload_images/274de14a0c0219b7c6d09fff2c0dd282657dc3bbc4fb7.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/274de14a0c0219b7c6d09fff2c0dd282657dc3bbc4fb7.png?mw=700" alt="202312__shogi__17-0029--ProgramingFailure.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 最初は 気分よく プログラミングを進めていくんだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 順調だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/df90f90256842d9f7c4e540f32d35058657dc53018f1a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/df90f90256842d9f7c4e540f32d35058657dc53018f1a.png?mw=700" alt="202312__shogi__17-0037--ProgramingFailure-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <code>step 1</code> のコードでは さすがに 不便になってきて、<br /> <code>step 1</code> を上書きするように <code>step 4</code> を作るんだぜ。<br /> これが 崩壊の始まりだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 順調に <code>step 1</code>、 <code>step 2</code>、 <code>step 3</code> の調子で <code>step 4</code> へ進まないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 進まない。図で説明できる」</p> <p><a href="https://crieit.now.sh/upload_images/ca99cda7a52cbf2f138139e3eef679a6657dc916d6a79.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ca99cda7a52cbf2f138139e3eef679a6657dc916d6a79.png?mw=700" alt="202312__shogi__17-0055--ProgramingFailure-o3o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <code>step 4</code> は、 <code>step 1</code> の代わりのものだが、<br /> この <code>step 4</code> は <code>step 2</code> 、 <code>step 3</code> に詳しくなった自分が書くので、<br /> <code>step 1</code> を書いていた頃の自分には 理解できないぐらい 難しい内容をしている」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ このプログラム 数時間前のお父んには 読めないじゃないか」</p> <p><a href="https://crieit.now.sh/upload_images/eb126aea795d7fc0af1c7cd5d1ca2921657dcaaf35e5a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/eb126aea795d7fc0af1c7cd5d1ca2921657dcaaf35e5a.png?mw=700" alt="202312__shogi__17-0104--ProgramingFailure-o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こういう改造をするときは <code>epoch_1</code> 、 <code>epoch_2</code> のように分けて<br /> 前の epoch のソースも残しておいた方がいいな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 上書きで どんどん 消していきますもんね」</p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18673 2023-12-11T21:14:39+09:00 2023-12-17T13:00:30+09:00 https://crieit.net/posts/a9a0a6dc37120e004def2d042466bcde イロ・レーティングって何だぜ(^~^)?<その2> <h1 id="前の関連記事"><a href="#%E5%89%8D%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">前の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/4e1c338b0343829a093a90a4e716e472">イロ・レーティングって何だぜ(^~^)?<その1></a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 イロ・レーティングを実装しようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 まずは プレイヤーを 2人 に固定しようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 勝負は 乱数を使ったジャンケンで、 ラウンド数を入力できるようにしましょう」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 リポジトリは作っておいたぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/elo-rating-system">elo-rating-system</a></p> <p>📄 <code>step_1_0.py</code>:</p> <pre><code class="py">import random # # python step_1_0.py # # 0, 1, 2 のいずれかを返す def gyanken(): return random.randint(0, 2) if __name__ == "__main__": print("Please input round number(1-100):") round = int(input()) counts = [0,0,0] for i in range(0, round): result = gyanken() counts[result] += 1 if result == 0: print("aiko") elif result == 1: print("A win") elif result == 2: print("B win") else: print("Error") print(f"aiko: {counts[0]}, A win: {counts[1]}, B win: {counts[2]}") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これが ジャンケン だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 レーティングを付けてみましょう」</p> <h2 id="引き分けはどう計算する?"><a href="#%E5%BC%95%E3%81%8D%E5%88%86%E3%81%91%E3%81%AF%E3%81%A9%E3%81%86%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%EF%BC%9F">引き分けはどう計算する?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 引分けのとき、レーティングの移動は どう計算すんの?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 Wikipedia では、 チェスでは 引き分けは 0.5勝、0.5敗 としているという説明があるだけで、計算方法は書いてないぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/イロレーティング">イロレーティング</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ チェスのウィキを見ればいいんだ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 0.5 勝 マイナス 0.5 敗 は 0 だから、レーティングは 0 動くらしい」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 動かないのか」</p> <h2 id="レーティング差が 0 の2者のとき、対局後のレーティングはどう動く?"><a href="#%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E5%B7%AE%E3%81%8C%E3%80%80%EF%BC%90%E3%80%80%E3%81%AE%EF%BC%92%E8%80%85%E3%81%AE%E3%81%A8%E3%81%8D%E3%80%81%E5%AF%BE%E5%B1%80%E5%BE%8C%E3%81%AE%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AF%E3%81%A9%E3%81%86%E5%8B%95%E3%81%8F%EF%BC%9F">レーティング差が 0 の2者のとき、対局後のレーティングはどう動く?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 レーティング差が 0 の2者のとき、対局後のレーティングはどう動くんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 A 側の勝率が50%で、 B 側の勝率が50%で、K が 32 のときは 32 * 0.5 で 16 動くのよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 そうか 分かったぜ」</p> <p>📄 <code>step_1_1_0.py</code>:</p> <pre><code class="py"># # python step_1_1_0.py # import random games = [0,0,0] # 0, 1, 2 のいずれかを返す def on_gyanken_1(): return random.randint(0, 2) def main( on_gyanken, on_result, on_end): print("Please input round number(1-100):") round = int(input()) for i in range(0, round): result_1 = on_gyanken() games[result_1] += 1 on_result(result_1) on_end() if __name__ == "__main__": def on_result_1(result): if result == 0: print("aiko") elif result == 1: print("A win") elif result == 2: print("B win") else: print("Error") def on_end_1(): print(f"aiko: {games[0]}, A win: {games[1]}, B win: {games[2]}") main(on_gyanken=on_gyanken_1, on_result=on_result_1, on_end=on_end_1) </code></pre> <p>📄 <code>step_2_0.py</code>:</p> <pre><code class="py"># # python step_1_1_0.py # import math from step_1_1_0 import on_gyanken_1, games, main # R0 = 2000 ratings = [0, 2000, 2000] # Constant K K = 32 # Rating calculate def get_x_by_y(y): if y==0: return 1 else: return 400 * math.log10(y) # Rating calculate def get_y_by_x(x): return x ** (x / 400) # Win rate def get_win_rate_for_upper_rating(win_games): return win_games / (win_games + 1) # Win rate def get_win_rate_for_lower_rating(win_games): return 1 / (win_games + 1) if __name__ == "__main__": def on_result_1(result): # レーティング差 ab = ratings[1] - ratings[2] ba = ratings[2] - ratings[1] y = abs(ba) print(f"y: {y}") x = get_x_by_y(y) # 勝率 win_rate_for_lower_rating = 1 / (x+1) #win_rate_for_upper_rating = x / (x+1) if result == 0: # レーティングは動きません print(f"aiko > ratings A {ratings[1]}, B {ratings[2]}") elif result == 1: offset = K * win_rate_for_lower_rating ratings[1] += offset ratings[2] -= offset print(f"A win > ratings A {ratings[1]}, B {ratings[2]}") elif result == 2: offset = K * win_rate_for_lower_rating ratings[2] += offset ratings[1] -= offset print(f"B win > ratings A {ratings[1]}, B {ratings[2]}") else: print("Error") def on_end_1(): print(f"games: aiko: {games[0]}, A win: {games[1]}, B win: {games[2]}") print(f"ratings: aiko: {ratings[0]}, A win: {ratings[1]}, B win: {ratings[2]}") main(on_gyanken=on_gyanken_1, on_result=on_result_1, on_end=on_end_1) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 うーむ 分からん」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 端数は 切り捨てた方がいいのかな?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 また 明日考えようぜ?」</p> <h1 id="(📅 2023-12-12 tue) コード書いた"><a href="#%28%F0%9F%93%85+2023-12-12+tue%29+%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B8%E3%81%84%E3%81%9F">(📅 2023-12-12 tue) コード書いた</a></h1> <p>📄 <code>step_2_0.py</code>:</p> <pre><code class="py"># # python step_2_0.py # import math from step_1_1_0 import on_gyanken_1, games, main # R0 = 2000 ratings = [0, 2000, 2000] # Constant K K = 32 # 1勝するために必要な対局数(暗記表の x )を取得 # 実数でも算出できるが、(1.0 以上の数になるよう数式を調整している前提で)整数にして返す def get_games_by_rating_difference( rating_difference): # 暗記表の y # ゼロなら if rating_difference==0: return 1 # 負数なら elif rating_difference <0: # 負数を指定できないので、符号をひっくり返して、あとで戻す return -math.floor(400 * math.log10(-rating_difference)) # マイナス符号の付ける位置で結果が変わってくるので注意 #return math.floor(-400 * math.log10(-rating_difference)) # 正の数なら else: return math.floor(400 * math.log10(rating_difference)) # レーティング差(暗記表の y )を取得 def get_rating_difference_by_games( games): # 暗記表の x : 実数 return math.floor(10 ** (games / 400)) # Win rate : 実数 def get_win_rate_for_upper_rating(win_games): return win_games / (win_games + 1) # Win rate : 実数 def get_win_rate_for_lower_rating(win_games): return 1 / (win_games + 1) if __name__ == "__main__": def on_result_1(result): # あいこ if result == 0: print("""\ +------+ | aiko | +------+\ """) # レーティングは動きません print(f"* ratings: A {ratings[1]}, B {ratings[2]}") # A が勝った elif result == 1: print("""\ +-------+ | A win | +-------+\ """) # b から見た a とのレーティング差 difference_b_to_a = ratings[1] - ratings[2] print(f"* b から見た a とのレーティング差: {difference_b_to_a}") # b から見た a に1勝するために必要な対局数 games_b_to_a = get_games_by_rating_difference(difference_b_to_a) print(f"* b から見た a に1勝するために必要な対局数: {games_b_to_a}") # b から見た a への勝率 if 0 <= difference_b_to_a: Wba = get_win_rate_for_upper_rating(games_b_to_a) else: Wba = get_win_rate_for_lower_rating(games_b_to_a) print(f"* b から見た a への勝率(Wba): {Wba}") offset = math.floor(K * Wba) ratings[1] += offset ratings[2] -= offset print(f"* K: {K}, offset: {offset}, ratings: A {ratings[1]}, B {ratings[2]}") # B が勝った elif result == 2: print("""\ +-------+ | B win | +-------+\ """) # a から見た b とのレーティング差 difference_a_to_b = ratings[2] - ratings[1] print(f"* a から見た b とのレーティング差: {difference_a_to_b}") # a から見た b に1勝するために必要な対局数 games_a_to_b = get_games_by_rating_difference(difference_a_to_b) print(f"* a から見た b に1勝するために必要な対局数: {games_a_to_b}") # a から見た b への勝率 if 0 <= difference_a_to_b: Wab = get_win_rate_for_upper_rating(games_a_to_b) else: Wab = get_win_rate_for_lower_rating(games_a_to_b) print(f"* a から見た b への勝率(Wab): {Wab}") offset = math.floor(K * Wab) ratings[2] += offset ratings[1] -= offset print(f"* K: {K}, offset: {offset}, ratings: A {ratings[1]}, B {ratings[2]}") else: print("Error") def on_end_1(): print(f"""\ +--------+ | result | +--------+ * games: aiko: {games[0]:4}, A win: {games[1]:4}, B win: {games[2]:4} * ratings: aiko: {ratings[0]:4}, A win: {ratings[1]:4}, B win: {ratings[2]:4}\ """) print("""\ +-------+ | start | +-------+\ """) # レーティングは動きません print(f"* ratings: A {ratings[1]}, B {ratings[2]}") main(on_gyanken=on_gyanken_1, on_result=on_result_1, on_end=on_end_1) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 なるべく 整数に変換してみたぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 プレイヤー人数を 増やそうぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 マッチングは どうすんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ランダム・マッチングで いいんじゃないの?」</p> <h2 id="ファイルへ保存"><a href="#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%B8%E4%BF%9D%E5%AD%98">ファイルへ保存</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 その前に 大会の結果を ファイルに保存するようにしようぜ?」</p> <pre><code class="py"> # ファイルへ保存 with open('data/step_2_0.csv', mode='w') as f: f.write(f"""\ player, win, rating ------, ----, ------ aiko, {games[0]:4}, {ratings[0]:6} A, {games[1]:4}, {ratings[1]:6} B, {games[2]:4}, {ratings[2]:6} """) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こんな感じかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 それは 100局の集計にはなるけど、<br /> 大会を 100回 記録するには?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 集計に 足し込むか、ファイルを100個作ればいいのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 集計ではなく、ゲームの記録を並べるべきでは?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あっ、そうか……」</p> <pre><code class="csv">player_1_name, player_1_rating_before_game, player_2_name, player_2_rating_before_game, win_player, moving_rating A, 2000, B, 2000, 2, 16 A, 1984, B, 2016, 2, 31 A, 1953, B, 2047, 2, 31 A, 1922, B, 2078, 1, -1 A, 1921, B, 2079, 0, 0 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 レーティングが大きい方が勝ったら、なんで もっと大きくレーティングが移動するんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 途中の式を書きなさい」</p> <pre><code class="py"># 1勝するために必要な対局数(暗記表の x )を取得 # 実数でも算出できるが、(1.0 以上の数になるよう数式を調整している前提で)整数にして返す def get_games_by_rating_difference( rating_difference): # 暗記表の y return math.floor(10 ** (rating_difference / 400)) ## ゼロなら #if rating_difference==0: # return 1 # ## 負数なら #elif rating_difference <0: # # 負数を指定できないので、符号をひっくり返して、あとで戻す # return -math.floor(400 * math.log10(-rating_difference)) # # マイナス符号の付ける位置で結果が変わってくるので注意 # #return math.floor(-400 * math.log10(-rating_difference)) # ## 正の数なら #else: # return math.floor(400 * math.log10(rating_difference)) # レーティング差(暗記表の y )を取得 def get_rating_difference_by_games( games): # 暗記表の x : 実数 #return math.floor(10 ** (games / 400)) return math.floor(400 * math.log10(games)) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 関数と 逆関数が 逆だったぜ」</p> <pre><code class="csv">player_1_name, player_1_rating_before_game, player_2_name, player_2_rating_before_game, win_player, moving_rating A, 2000, B, 2000, 0, 0 A, 2000, B, 2000, 1, 16 A, 2016, B, 1984, 1, 16 A, 2032, B, 1968, 1, 16 A, 2048, B, 1952, 1, 16 A, 2064, B, 1936, 1, 21 A, 2085, B, 1915, 1, 21 A, 2106, B, 1894, 1, 24 A, 2130, B, 1870, 1, 25 A, 2155, B, 1845, 2, 32 A, 2123, B, 1877, 0, 0 A, 2123, B, 1877, 1, 25 A, 2148, B, 1852, 2, 32 A, 2116, B, 1884, 2, 32 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 レーティング差が広がったら、移動するレーティング量も増えてしまうの、なんでだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 途中の式を書きなさい」</p> <pre><code class="csv">player_1_name, player_1_rating_before_game, player_2_name, player_2_rating_before_game, win_player, moving_rating A, 2000, B, 2000, 1, 16 A, 2016, B, 1984, 2, 32 A, 1984, B, 2016, 1, 32 A, 2016, B, 1984, 0, 0 A, 2016, B, 1984, 1, 16 A, 2032, B, 1968, 1, 16 A, 2048, B, 1952, 0, 0 A, 2048, B, 1952, 0, 0 A, 2048, B, 1952, 2, 32 A, 2016, B, 1984, 2, 32 A, 1984, B, 2016, 2, 16 A, 1968, B, 2032, 2, 16 A, 1952, B, 2048, 1, 32 A, 1984, B, 2016, 0, 0 A, 1984, B, 2016, 2, 16 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 コードを掃除してたら 勝手に直った……」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 これだけあれば、<br /> プレイヤーを3人に増やして ランダム・マッチングも行けるだろう」</p> <pre><code class="plaintext">add C 2000 remove C </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 プレイヤーの新規追加、削除も トランザクション・データとして残しておけば<br /> データの読取が楽じゃない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>command</code> 列でも増やすかあ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 対局の記録は、対局だけでいいのではないか?」</p> <h1 id="📅 (2023-12-16 sat ⏰ 14:29) 多プレイヤー対応へ"><a href="#%F0%9F%93%85+%282023-12-16+sat+%E2%8F%B0+14%3A29%29+%E5%A4%9A%E3%83%97%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%E5%AF%BE%E5%BF%9C%E3%81%B8">📅 (2023-12-16 sat ⏰ 14:29) 多プレイヤー対応へ</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 イロ・レーティングって プレイヤーが2サイドなことを前提としてるよな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お父んのプログラム読みにくいな なんでだろな?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 大会と、レーティング計算が 別れてないのよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 分けた方が 見やすいか……」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あれっ? プレイヤーのデータベースも要るような……」</p> <pre><code class="plaintext">id display_name rating -------- ------------ ------ player_1 Alice 2000 player_2 Bob 2000 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こんな感じのデータベースが要るんじゃないか?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 とりあえず 連想配列で作ってみようぜ?」</p> <h2 id="6人でジャンケン大会"><a href="#%EF%BC%96%E4%BA%BA%E3%81%A7%E3%82%B8%E3%83%A3%E3%83%B3%E3%82%B1%E3%83%B3%E5%A4%A7%E4%BC%9A">6人でジャンケン大会</a></h2> <pre><code class="plaintext">+-------------------+ | tournament result | +-------------------+ * name: Alice , rating: 2102 * name: Francisca , rating: 2073 * name: Bob , rating: 2013 * name: Charley , rating: 1969 * name: Eric , rating: 1922 * name: Dingo , rating: 1921 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ランダム・マッチングで 100ラウンド、<br /> ジャンケンでも 確率的というだけで これだけ ばらけるしな。<br /> ガウス分布になってくだろ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 プレイヤーにちからの差がないと<br /> レーティングの機能は 働かないのかもしれないわねぇ」</p> <h2 id="戦闘力を付けてみた"><a href="#%E6%88%A6%E9%97%98%E5%8A%9B%E3%82%92%E4%BB%98%E3%81%91%E3%81%A6%E3%81%BF%E3%81%9F">戦闘力を付けてみた</a></h2> <pre><code class="plaintext">+-------------------+ | tournament result | +-------------------+ * name: Alice , rating: 2379 * name: Bob , rating: 2287 * name: Charley , rating: 2087 * name: Dingo , rating: 1989 * name: Eric , rating: 1804 * name: Francisca , rating: 1454 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 強さに差があると その順番には並んでるな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 レーティングが 400 以上離れているやつは 対局しないようにする必要があるんじゃないか?」</p> <pre><code class="plaintext">+-------------------+ | tournament result | +-------------------+ * name: Alice , rating: 2436 * name: Bob , rating: 2282 * name: Charley , rating: 2195 * name: Dingo , rating: 1954 * name: Eric , rating: 1672 * name: Francisca , rating: 1461 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 レーティングが 400 以上離れているやつは なるべく対局しないようにしてみたぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 レーティングが ほとんど動かないような対局が減るから、<br /> レーティングが よく動くようになったんじゃないの?」</p> <h1 id="次の関連記事"><a href="#%E6%AC%A1%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">次の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/e5dd65c792621e3c14aca580ee46518c">スイス式トーナメントって何だぜ(^~^)?</a></p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18670 2023-12-05T21:08:50+09:00 2023-12-11T23:37:40+09:00 https://crieit.net/posts/4e1c338b0343829a093a90a4e716e472 イロ・レーティングって何だぜ(^~^)?<その1> <h1 id="前の関連記事"><a href="#%E5%89%8D%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">前の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/9b2ad234687e455fd78bfb9d979723f2">【廃案】きふわらべ式、将棋の先手勝率70%の時代に向けて、将棋のルールを変えない大会ルールの代案</a></p> <h1 id="画像"><a href="#%E7%94%BB%E5%83%8F">画像</a></h1> <p><a href="https://crieit.now.sh/upload_images/537abfbb8eccacee44ae3b4448ef2cdd6575a249d48f0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/537abfbb8eccacee44ae3b4448ef2cdd6575a249d48f0.png?mw=700" alt="202312__shogi__10-1732--Logarithm-o2o8o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/c2374a3a0785fa9477e0a1a2355103a96575824d505d9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c2374a3a0785fa9477e0a1a2355103a96575824d505d9.png?mw=700" alt="202312__shogi__10-1631--BugFixAbout1980.png" /></a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 イロ・レーティングって何だぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 ググれだぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://en.wikipedia.org/wiki/Elo_rating_system">Elo rating system</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 さっぱり 分からんなあ」</p> <pre><code class="plaintext">             W R = 400 log10 ────── + R0              L </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 数式は こうだそうよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 簡単だなあ」</p> <h1 id="y軸の切片b"><a href="#%EF%BD%99%E8%BB%B8%E3%81%AE%E5%88%87%E7%89%87%EF%BD%82">y軸の切片b</a></h1> <pre><code class="plaintext">R = (ナンチャラ) + R0 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <code>R0</code> というのは 平均的なプレイヤーのレーティングだそうだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/c2bdbedd85e61f79ca31f15095c2f5ca656f1143cd896.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c2bdbedd85e61f79ca31f15095c2f5ca656f1143cd896.png?mw=700" alt="202312__chess__05-2059--EroRatingSystem-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 グラフで言うと x=0 のときのy軸上の点 <code>R0</code> だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/fb1b63bdf3dc32c3fc0bdf240904065c656f1244c9fc8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/fb1b63bdf3dc32c3fc0bdf240904065c656f1244c9fc8.png?mw=700" alt="202312__chess__05-2059--EroRatingSystem-o2o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 だから 大会の平均は <code>y=R0</code> だろうと 横線1本引いたわけだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 <code>R0</code> って どうやって決めるんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 経験で いい感じに決めるそうだぜ、 1500 とか」</p> <h1 id="分数x"><a href="#%E5%88%86%E6%95%B0%EF%BD%98">分数x</a></h1> <pre><code class="plaintext">              W R = (ナンチャラ) × ───── + (ナンチャラ)               L </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 W は ウィン(Win;勝った数)、Lは ローズ(Lose;負けた数)だぜ。<br /> <code>W / L</code> というのは、1回負けたときに いくつ勝っているか という 勝ちと 負けの比だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 なんで <code>勝った数 / 対局数</code> の <strong>勝率</strong> にしないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <strong>比</strong> が欲しいだけなら 分母を <code>(勝った数 + 負けた数)</code> にする意味もないからだろ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 <strong>1つ負けた辺りの勝ち数</strong> って 日本語で何て言うんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>距離 / 時間</code> を <code>速度</code> と呼ぶのに なら(倣)うと、 <strong>勝ち速度</strong> で どうだぜ?」</p> <h2 id="例"><a href="#%E4%BE%8B">例</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 一応 計算しておくと、1つ負けるまでに 1つ勝つ人の 勝ち速度は 1 だぜ。<br /> 以下同様に」</p> <pre><code class="plaintext"> 1つ負けるまでに  1つ勝つ人の 勝ち速度は 1  1つ負けるまでに  2つ勝つ人の 勝ち速度は 2 10個負けるまでに 25個勝つ人の 勝ち速度は 2.5 30個負けるまでに 90個勝つ人の 勝ち速度は 3 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 簡単だな」</p> <p><a href="https://crieit.now.sh/upload_images/14e6693ce53942fc554c76f2937cd31f656f1bf9a9d57.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/14e6693ce53942fc554c76f2937cd31f656f1bf9a9d57.png?mw=700" alt="202312__chess__05-2142--WinSpeed-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 グラフにすると<br /> 勝ち速度が 1 なら オレンジ色の線、<br /> 勝ち速度が 3 なら 紫色の線だな」</p> <h2 id="対数 400 log10 ナンチャラ"><a href="#%E5%AF%BE%E6%95%B0%E3%80%80400+log10+%E3%83%8A%E3%83%B3%E3%83%81%E3%83%A3%E3%83%A9">対数 400 log10 ナンチャラ</a></h2> <pre><code class="plaintext">R = 400 log10 x + b </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 10を底とする x の対数の400倍に b を足したものが イロ・レーティングだな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 くわしく」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 10を底とする x の対数は、お金のゼロが並んでいるところの桁数に似ている」</p> <pre><code class="plaintext">log10     10 = 1 log10    100 = 2 log10   1000 = 3 log10  10000 = 4 log10 100000 = 5 </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 便利ねえ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ 勝ち速度の桁の ゼロの数 を数えているのかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 雰囲気は そうだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 しかし、 勝ち速度って 1 とか 2.5 とか 3 とか、 アマチュアなら 1桁台の 小さな数字だろ。<br /> 10連勝でもし続けなければ 勝ち速度の桁は ずっと 1 にも満たないだろ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 まあ だから 400 を掛けてるんだな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 その 400 という数字は どこから出てきた?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 計算結果が 使いやすい数になるのが 400 なんだろ。<br /> だったら 計算してみろだぜ」</p> <pre><code class="plaintext">           1倍 log10    1 =   0 log10    2 =   0.3010… log10    3 =   0.4771… log10    4 =   0.6020… log10    5 =   0.6989… log10    6 =   0.7781… log10    7 =   0.8450… log10    8 =   0.9030… log10    9 =   0.9542… log10   10 =   1 log10   11 =   1.0413… log10   12 =   1.0791… log10   13 =   1.1139… log10   20 =   1.3010… log10   30 =   1.4771… log10   40 =   1.6020… log10   50 =   1.6989… log10   60 =   1.7781… log10   70 =   1.8450… log10   80 =   1.9030… log10   90 =   1.9542… log10  100 =   2 log10  110 =   2.0413… log10  120 =   2.0791… log10  130 =   2.1139… log10  200 =   2.3010… log10  300 =   2.4771… log10  400 =   2.6020… log10  500 =   2.6989… log10  600 =   2.7781… log10  700 =   2.8450… log10  800 =   2.9030… log10  900 =   2.9542… log10 1000 =   3 log10 1100 =   3.0413… log10 1200 =   3.0791… log10 1300 =   3.1139… </code></pre> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 対数の小数部って なんか くるくる回ってるな……」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 早よ 400倍しろだぜ」</p> <pre><code class="plaintext">           1倍          200倍    300倍     400倍     500倍     600倍    700倍     800倍     900倍 log10    1 =   0      , log10    2 =   0.3010…,    60.2…,   90.3…,  120.4…,  150.5…,  180.6…   210.7…,  240.8…,  270.9… log10    3 =   0.4771…,    95.4…,  143.1…,  190.8…,  238.5…,  286.2…,  333.9…,  381.6…,  429.4… log10    4 =   0.6020…,   120.4…,  180.6…,  240.8…,  301.0…,  361.2…,  421.4…,  481.6…,  541.8… log10    5 =   0.6989…,   139.7…,  209.6…,  279.5…,  349.4…,  419.3…,  489.2…,  559.1…,  629.0… log10    6 =   0.7781…,   155.6…,  233.4…,  311.2…,  389.0…,  466.8…,  544.7…,  622.5…,  700.3… log10    7 =   0.8450…,   169.0…,  253.5…,  338.0…,  422.5…,  507.0…,  591.5…,  676.0…,  760.5… log10    8 =   0.9030…,   180.6…,  270.9…,  361.2…,  451.5…,  541.8…,  632.1…,  722.4…,  812.7… log10    9 =   0.9542…,   190.8…,  286.2…,  381.6…,  477.1…,  572.5…,  667.9…,  763.3…,  858.8… log10   10 =   1 </code></pre> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 この中で 何倍がいいか 好きな数を選べと言われたら……フーム、別に 100倍でいいのでは……」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 しんすう(真数)を <code>勝ち数/負け数</code> にしなさいよ」</p> <pre><code class="plaintext">勝ち負け比     勝ち速度   1倍         200倍    300倍     400倍    500倍     600倍    700倍     800倍    900倍 10%,  log10  1/9 =  ー0.9542…,  ー190.8…, ー286.2…, ー381.6…, ー477.1…, ー572.5…, ー667.9…, ー763.3…, ー858.8… 20%,  log10  2/8 =  ー0.6020…,  ー120.4…, ー180.6…, ー240.8…, ー301.0…, ー361.2…  ー421.4…, ー481.6…, ー541.8… 30%,  log10  3/7 =  ー0.3679…,  ー 73.5…, ー110.3…, ー147.1…, ー183.9…, ー220.7…, ー257.5…, ー294.3…, ー331.1… 40%,  log10  4/6 =  ー0.1760…,  ー 35.2…, ー 52.8…, ー 70.4…, ー 88.0…, ー105.6…, ー123.2…, ー140.8…, ー158.4… 50%,  log10  5/5 =   0      ,     0   ,    0   ,    0   ,    0   ,    0   ,    0   ,    0   ,    0 60%,  log10  6/4 =   0.1760…,    35.2…,   52.8…,   70.4…,   88.0…,  105.6…,  123.2…,  140.8…,  158.4… 70%,  log10  7/3 =   0.3679…,    73.5…,  110.3…,  147.1…,  183.9…,  220.7…,  257.5…,  294.3…,  331.1… 80%,  log10  8/2 =   0.6020…,   120.4…,  180.6…,  240.8…,  301.0…,  361.2…,  421.4…,  481.6…,  541.8… 90%,  log10  9/1 =   0.9542…,   190.8…,  286.2…,  381.6…,  477.1…,  572.5…,  667.9…,  763.3…,  858.8… </code></pre> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 なんか 上下対称になったな……、しかし 別に 400 に優位性を感じないが……」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 じゃあ なんで 400 にしたのよ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ああ、分かった。度数法だぜ」</p> <pre><code class="plaintext">   何勝何敗     1倍       200倍    300倍     400倍    500倍     600倍    700倍     800倍     900倍 log10  1/ 1 =   0      ,   0    ,   0   ,    0   ,   0   ,    0   ,   0   ,    0   ,    0 log10 11/10 =   0.0413…,   8.278…,  12.41…,  16.55…,  20.69…,  24.83…,  28.97…,  33.11…,  37.25… log10 12/10 =   0.0791…,  15.83…,   23.75…,  31.67…,  39.59…,  47.50…   55.42…,  63.34…,  71.26… log10 13/10 =   0.1139…,  22.78…,   34.18…,  45.57…,  56.97…,  68.36…,  79.76…,  91.15…, 102.54… log10 14/10 =   0.1461…,  29.22…,   43.83…,  58.45…,  73.06…,  87.67…, 102.28…, 116.90…, 131.51… log10 15/10 =   0.1760…,  35.21…,   52.82…,  70.43…,  88.04…, 105.6…,  123.2…,  140.8…,  158.4… log10 17/10 =   0.2304…,  46.08…,   69.13…,  92.17…, 115.2…,  138.2…,  161.3…,  184.3…,  207.4… log10 18/10 =   0.2552…,  51.05…,   76.58…, 102.1…,  127.6…,  153.1…,  178.6…,  204.2…,  229.7… log10 20/10 =   0.3010…,  60.20…,   90.30…, 120.4…,  150.5…,  180.6…,  210.7…,  240.8…,  270.9… log10 22/10 =   0.3424…,  68.48…,  102.7…,  136.9…,  171.2…,  205.4…,  239.6…,  273.9…,  308.1… log10 24/10 =   0.3802…,  76.04…,  114.0…,  152.0…,  190.1…,  228.1…,  266.1…,  304.1…,  342.1… log10 26/10 =   0.4149…,  82.99…,  124.4…,  165.9…,  207.4…,  248.9…,  290.4…,  331.9…,  373.4… log10 28/10 =   0.4471…,  89.43…,  134.1…,  178.8…,  223.5…,  268.2…,  313.0…,  357.7…,  402.4… log10 31/10 =   0.4913…,  98.27…,  147.4…,  196.5…,  245.6…,  294.8…,  343.9…,  393.0…,  442.2… </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こういうことだろ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 400倍の列だけ 抜き出してくれだぜ」</p> <pre><code class="plaintext">   何勝何敗     1倍       400倍    およそ 度数法で log10  1/ 1 =   0      ,   0   ,     0° log10 11/10 =   0.0413…,  16.55…,    15° log10 12/10 =   0.0791…,  31.67…,    30° log10 13/10 =   0.1139…,  45.57…,    45° log10 14/10 =   0.1461…,  58.45…,    60° log10 15/10 =   0.1760…,  70.43…,    75° log10 17/10 =   0.2304…,  92.17…,    90° log10 18/10 =   0.2552…,  102.1…,   105° log10 20/10 =   0.3010…,  120.4…,   120° log10 22/10 =   0.3424…,  136.9…,   135° log10 24/10 =   0.3802…,  152.0…,   150° log10 26/10 =   0.4149…,  165.9…,   165° log10 28/10 =   0.4471…,  178.8…,   180° log10 31/10 =   0.4913…,  196.5…,   195° log10 33/10 =   0.5185…,  207.4…,   210° log10 34/10 =   0.5314…,  212.5…,   210° log10 36/10 =   0.5563…,  222.5…,   225° log10 37/10 =   0.5682…,  227.2…,   225° log10 40/10 =   0.6020…,  240.8…,   240° log10 43/10 =   0.6334…,  253.3…,   255° log10 47/10 =   0.6720…,  268.8…,   270° log10 51/10 =   0.7075…,  283.0…,   285° log10 56/10 =   0.7481…,  299.2…,   300° log10 61/10 =   0.7853…,  314.1…,   315° log10 67/10 =   0.8260…,  330.4…,   330° log10 73/10 =   0.8633…,  345.3…,   345° log10 79/10 =   0.8976…,  359.0…,   360° log10 87/10 =   0.9395…,  375.8…,   375° log10 94/10 =   0.9731…,  389.2…,   390° log10 103/10 =   1.012…,   405.1…,   405° </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 まあまあ 15° ずつで キリのいい数字が来るだろ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 来てるのかなあ?」</p> <h1 id="図示"><a href="#%E5%9B%B3%E7%A4%BA">図示</a></h1> <p><a href="https://crieit.now.sh/upload_images/09488350b2077681de7ac67b06b2bcdf656f49639bed5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/09488350b2077681de7ac67b06b2bcdf656f49639bed5.png?mw=700" alt="202312__shogi__06-0042--EloRatingDegrees.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こうなんだが、細かすぎるのも 嬉しくないよな」</p> <p><a href="https://crieit.now.sh/upload_images/35fd7b13330ace8ea7c669c96436e6b4656f52f5d60e6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/35fd7b13330ace8ea7c669c96436e6b4656f52f5d60e6.png?mw=700" alt="202312__shogi__06-0102--EloRatingDegrees-Chart-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こうかな?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 その 0~100 の数字が 分けわかんなくない?」</p> <p><a href="https://crieit.now.sh/upload_images/62877539e2fe8d614b4d685aa6397bd5656f5c7a24722.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/62877539e2fe8d614b4d685aa6397bd5656f5c7a24722.png?mw=700" alt="202312__shogi__06-0102--EloRatingDegrees-Chart-o2o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 じゃあ これで」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 それだと <strong>勝率70%</strong> が分かんないぜ」</p> <h2 id="勝率70%って何?"><a href="#%E5%8B%9D%E7%8E%87%EF%BC%97%EF%BC%90%EF%BC%85%E3%81%A3%E3%81%A6%E4%BD%95%EF%BC%9F">勝率70%って何?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <strong>勝率70%</strong> って、10局やったら7回勝つということかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 やっぱ <strong>勝った数/(勝った数+負けた数)</strong> の方が 分かりやすかったんじゃない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <strong>m回やったら1回勝てる</strong> 、<br /> <strong>100回やったら n回勝てる</strong> 、<br /> 人は どっちの記法の方が分かりやすいんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 両方併記したらどうだぜ?」</p> <h2 id="その前に整理"><a href="#%E3%81%9D%E3%81%AE%E5%89%8D%E3%81%AB%E6%95%B4%E7%90%86">その前に整理</a></h2> <p><a href="https://crieit.now.sh/upload_images/b896f5c84078f82d0e7981123d4b113a6571bda394d5d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b896f5c84078f82d0e7981123d4b113a6571bda394d5d.png?mw=700" alt="202312__shogi__07-2127--EloRatingDegreesCjart.png" /></a></p> <pre><code>y = 400 log10 x </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 えーと、計算で求めて」</p> <p><a href="https://crieit.now.sh/upload_images/f33694bf4715e0dfb2d05ff99710158765707827b4384.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f33694bf4715e0dfb2d05ff99710158765707827b4384.png?mw=700" alt="202312__shogi__06-1934--EloRatingDegreesCjart-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 その前に 整理しておくぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 めっちゃ不便な地下鉄の路線図みたいね」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 その表を勝率に変えてくれだぜ」</p> <h2 id="勝率"><a href="#%E5%8B%9D%E7%8E%87">勝率</a></h2> <p><a href="https://crieit.now.sh/upload_images/648312c00143f6be2bd03cdae2ef01be657084b3ababc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/648312c00143f6be2bd03cdae2ef01be657084b3ababc.png?mw=700" alt="202312__shogi__06-2237--EloRatingDegreesCjart-WinRate-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 はあ、疲れた」</p> <h2 id="暗記方法を思案"><a href="#%E6%9A%97%E8%A8%98%E6%96%B9%E6%B3%95%E3%82%92%E6%80%9D%E6%A1%88">暗記方法を思案</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ、暗記方法を考えようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 じゃあ ラジアンを 度数法に変えるのが 400 なの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 180 を 円周率で割ったら およそ 57.3 だしなあ。 400 なんか どこで見つけたんだろうなあ?」</p> <h2 id="定数K"><a href="#%E5%AE%9A%E6%95%B0%EF%BC%AB">定数K</a></h2> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 イロ・レーティングが 0 なら 勝率50% ねえ。<br /> 120 なら 勝率33% ぐらい」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 だいぶ ずれるな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 イロ・レーティングが 190 ぐらいなら 勝率25%、<br /> 240 ぐらいで 勝率20%、<br /> 270 ぐらいで 勝率16.6666% ぐらい、<br /> 315 ぐらいで 勝率14% ぐらい、<br /> 345 ぐらいで 勝率12% ぐらい、<br /> 390 ぐらいで 勝率10% ぐらいよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ずれるなあ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お母んの見てる早見表、定数Kが 16 になってないかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 あちゃ~」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 定数Kなんて どうとでも設定できるしなあ」</p> <h1 id="1辺の長さが45の正九角形"><a href="#%EF%BC%91%E8%BE%BA%E3%81%AE%E9%95%B7%E3%81%95%E3%81%8C%EF%BC%94%EF%BC%95%E3%81%AE%E6%AD%A3%E4%B9%9D%E8%A7%92%E5%BD%A2">1辺の長さが45の正九角形</a></h1> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 1辺の長さが50の正八角形にした方が楽じゃない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 正9角形の方がいいかも。1辺の長さは45」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 攻めるなあ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 次回はそれで」</p> <h1 id="(📅 2023-12-07 thu) 正九角形"><a href="#%28%F0%9F%93%85+2023-12-07+thu%29+%E6%AD%A3%E4%B9%9D%E8%A7%92%E5%BD%A2">(📅 2023-12-07 thu) 正九角形</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 正九角形か~ それも4重の」</p> <p><a href="https://crieit.now.sh/upload_images/01873db2199d00f528ab43363ca4de6e6571d6a0b65a0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01873db2199d00f528ab43363ca4de6e6571d6a0b65a0.png?mw=700" alt="202312__shogi__07-1954--EloRatingDegreesCjart-Nonagon-o2o4o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 五重にしたった」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 どうやって暗記すんの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 レーティング差の下2桁を <code>00</code> にして、4で割る。その数字が 3 なら、頭は <code>.000</code> になるかな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 肝心の 有効部の数は 何なんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 さっきの 3 を 5倍して、 レーティング差の下2桁から 引く」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 早見表が欲しいわねえ」</p> <h2 id="暗記の早見表"><a href="#%E6%9A%97%E8%A8%98%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8">暗記の早見表</a></h2> <p><a href="https://crieit.now.sh/upload_images/d3244cb5d7b75009dcbef1769e58f9ce6571ec207bda5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d3244cb5d7b75009dcbef1769e58f9ce6571ec207bda5.png?mw=700" alt="202312__shogi__07-2336--EloRatingDegreesChart-Nonagon-o2o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こうかな」</p> <p><a href="https://crieit.now.sh/upload_images/24da2be563568c3e9654679179c905ce6571f3ca9adac.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/24da2be563568c3e9654679179c905ce6571f3ca9adac.png?mw=700" alt="202312__shogi__08-0110--LogarithmSpiral.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 暗記表の暗記方法も 付けておこう」</p> <h1 id="(📅 2023-12-08 fri) 95"><a href="#%28%F0%9F%93%85+2023-12-08+fri%29+%EF%BC%99%EF%BC%95">(📅 2023-12-08 fri) 95</a></h1> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 位相が 95 だったら どうすんの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 45の倍数で 末尾が 95 になる例を調べるか」</p> <pre><code> 0 45 90 135 180 225 270 315 360 405 450 495 540 585 630 675 720 765 810 855 900 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 面白。一周するぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 9の倍数と、その半分で できているな」</p> <pre><code>度  有効部 0, 1 45, 0.75 90, 0.6 135, 0.5 180, 0.33 225, 0.25 270, 0.2 315, 0.17 360, 0.14 405, 0.1 ※以下、類推 450, 0.75 ? 495, 0.6 ? 540, 0.5 ? 585, 0.33 ? 630, 0.25 ? 675, 0.2 ? 720, 0.17 ? 765, 0.14 ? 810, 0.1 ? 855 ? 900 0.1 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ダメか、数が合わないぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 調べるしかなくない?」</p> <p><a href="https://crieit.now.sh/upload_images/d593a36e6c16ed10fec31dcd13169fd0657327e00bde4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d593a36e6c16ed10fec31dcd13169fd0657327e00bde4.png?mw=700" alt="202312__shogi__08-2208--EloRatingDegreesChart-o4o1o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 15°ずつ調査だ! あっ! 時計の形になってる!」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 どこが 時計の形になってるんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/4c052272c87bd29e80467a37a208c1db657330dcabd8f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4c052272c87bd29e80467a37a208c1db657330dcabd8f.png?mw=700" alt="202312__shogi__08-2322--EloRatingClockChart.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ここがだぜ!」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 暗記しにくく なってない?」</p> <p><a href="https://crieit.now.sh/upload_images/e7012b17138ee88c502bdfed704c96c36573546628035.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e7012b17138ee88c502bdfed704c96c36573546628035.png?mw=700" alt="202312__shogi__09-0126--LogarithmSpiral.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 改訂!」</p> <p><a href="https://crieit.now.sh/upload_images/275fe0fcd8bae0dd1fae65031eec84a6657359923d152.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/275fe0fcd8bae0dd1fae65031eec84a6657359923d152.png?mw=700" alt="202312__shogi__09-0238--EloRatingSystem.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 暗記方法も見直したぜ」</p> <h1 id="(📅 2023-12-09 sat) 400倍する理由"><a href="#%28%F0%9F%93%85+2023-12-09+sat%29+%EF%BC%94%EF%BC%90%EF%BC%90%E5%80%8D%E3%81%99%E3%82%8B%E7%90%86%E7%94%B1">(📅 2023-12-09 sat) 400倍する理由</a></h1> <p><a href="https://crieit.now.sh/upload_images/c2374a3a0785fa9477e0a1a2355103a96575824d505d9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c2374a3a0785fa9477e0a1a2355103a96575824d505d9.png?mw=700" alt="202312__shogi__10-1631--BugFixAbout1980.png" /></a><br /> <a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 400倍しておくと、yが15ずつ増えていくとき、xは 有効桁数の整数が被らず並ぶのかあ。<br /> 自然数とマッピングしたんだな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 なんのこっちゃ」</p> <h2 id="備考: 真数ゼロの位置"><a href="#%E5%82%99%E8%80%83%EF%BC%9A%E3%80%80%E7%9C%9F%E6%95%B0%E3%82%BC%E3%83%AD%E3%81%AE%E4%BD%8D%E7%BD%AE">備考: 真数ゼロの位置</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 時計の 12時~4時、4時~8時、8時~12時で 3パターンあるのは<br /> 400単位ではなく 405単位 だからだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 なんで 1周 1215 じゃなくて 1200 なの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 15ずつ増やしていくと たまたま 1200 が途中で来たんだぜ。<br /> 上図で 真数ゼロ を 12時の方に入れたが、<br /> 真数ゼロを 11時の方に入れれば 同じことだぜ」</p> <h2 id="備考: 405"><a href="#%E5%82%99%E8%80%83%EF%BC%9A%E3%80%80405">備考: 405</a></h2> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 405 というのは お父んが 15 単位にしたからか。 <code>15 * 27 = 405</code>」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 5、10、15 の3段階あるから、<br /> 0~400 で一周するはずの対数が<br /> 405、810、1215 の 3段階要るようになってしまったんだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 400 じゃなく、 405 を掛けたら どんな数列だったんだろな?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 15 単位にならない」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 そうか~」</p> <h1 id="(📅 2023-12-10 mon) R0 が仮に 2000 とか、1500 という理由は?"><a href="#%28%F0%9F%93%85+2023-12-10+mon%29%E3%80%80R0+%E3%81%8C%E4%BB%AE%E3%81%AB+2000+%E3%81%A8%E3%81%8B%E3%80%811500+%E3%81%A8%E3%81%84%E3%81%86%E7%90%86%E7%94%B1%E3%81%AF%EF%BC%9F">(📅 2023-12-10 mon) R0 が仮に 2000 とか、1500 という理由は?</a></h1> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 イロは R0 を完全任意だが仮決めで 2000 としたみたいで、慣習的には 1500 が使われることが多いそうだけど、<br /> この数の優位性は何なの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 レーティング 2000 なら x は 100_000 (十万) で 8時。キリがいいぜ。<br /> 数が好きなら 2000 はキリ番だから選ぶだろうなんだぜ。<br /> <code>y = 2000</code> の優位性はキリがいいからだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 慣習的には 1500、 3時か~ <code>x = 5600</code> の優位性って何だろな~。<br /> 慣習的なものは 分からんぜ」</p> <h2 id="備考: 対数の法則"><a href="#%E5%82%99%E8%80%83%EF%BC%9A%E3%80%80%E5%AF%BE%E6%95%B0%E3%81%AE%E6%B3%95%E5%89%87">備考: 対数の法則</a></h2> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 この対数螺旋に なんか 法則ねーの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 4時間で 10倍だぜ」</p> <h2 id="備考: yが105増えると、xはだいたい2倍前後"><a href="#%E5%82%99%E8%80%83%EF%BC%9A%E3%80%80%EF%BD%99%E3%81%8C%EF%BC%91%EF%BC%90%EF%BC%95%E5%A2%97%E3%81%88%E3%82%8B%E3%81%A8%E3%80%81%EF%BD%98%E3%81%AF%E3%81%A0%E3%81%84%E3%81%9F%E3%81%84%EF%BC%92%E5%80%8D%E5%89%8D%E5%BE%8C">備考: yが105増えると、xはだいたい2倍前後</a></h2> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 他には?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 yが105増えると、つまり、1時間で xはだいたい2倍前後だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ほんとか?」</p> <pre><code>             yが105増えた y x       y x 倍率 ---- ----- ---- ---------- ------------- 000 1.0 105 1.8 1.8 015 1.1 120 2.0 1.8 030 1.2 135 2.2 1.8 045 1.3 150 2.4 1.8 060 1.4 165 2.6 1.9 075 1.5 180 2.8 1.9 090 1.7 195 3.1 1.8 105 1.8 210 3.4 1.9 120 2.0 225 3.7 1.9 135 2.2 240 4.0 1.8 150 2.4 255 4.3 1.8 165 2.6 270 4.7 1.8 180 2.8 285 5.2 1.9 195 3.1 300 5.6 1.8 210 3.4 315 6.1 1.8 225 3.7 330 6.7 1.8 240 4.0 345 7.3 1.8 255 4.3 360 7.9 1.8 270 4.7 375 8.7 1.9 285 5.2 390 9.5 1.8 300 5.6 405 10 1.8 ★レーティング1500もここ 315 6.1 420 11 1.8 330 6.7 435 12 1.8 345 7.3 450 13 1.8 360 7.9 465 15 1.9 375 8.7 480 16 1.8 390 9.5 495 17 1.8 405 10 510 19 1.9 420 11 525 21 1.9 435 12 540 22 1.8 450 13 555 24 1.8 465 15 570 27 1.8 480 16 585 29 1.8 495 17 600 32 1.9 510 19 615 33 1.7 525 21 630 38 1.8 540 22 645 41 1.9 555 24 650 45 1.9 570 27 675 49 1.8 585 29 690 53 1.8 600 32 705 58 1.8 615 33 720 63 1.9 630 38 735 69 1.8 645 41 750 75 1.8 650 45 765 82 1.8 675 49 780 89 1.8 690 53 795 97 1.8 705 58 810 11_0 1.9 720 63 825 12_0 1.9 735 69 840 13_0 1.9 750 75 855 14_0 1.9 765 82 870 15_0 1.8 780 89 885 16_0 1.8 795 97 900 18_0 1.9 810 11_0 915 19_0 1.7 825 12_0 930 21_0 1.8 840 13_0 945 23_0 1.8 855 14_0 960 25_0 1.8 870 15_0 975 27_0 1.8 885 16_0 990 30_0 1.9 900 18_0 1005 33_0 1.8 915 19_0 1020 35_0 1.8 930 21_0 1035 39_0 1.9 945 23_0 1050 42_0 1.8 960 25_0 1065 46_0 1.8 975 27_0 1080 50_0 1.9 990 30_0 1095 55_0 1.8 1005 33_0 1110 60_0 1.8 1020 35_0 1125 65_0 1.9 1035 39_0 1140 70_0 1.8 1050 42_0 1155 77_0 1.8 1065 46_0 1170 84_0 1.8 1080 50_0 1185 92_0 1.8 1095 55_0 1200 10_00 1.8 1110 60_0 1215 11_00 1.8 1125 65_0 1230 12_00 1.8 1140 70_0 1245 13_00 1.9 1155 77_0 1260 14_00 1.8 1170 84_0 1275 15_00 1.8 1185 92_0 1290 17_00 1.8 </code></pre> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 1.7 ~ 1.9 倍だな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 そんなもんか。2倍いかないんだな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 慣習的に使われる 1500 の優位性って、何もなくない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 105 を足した 1605 のレーティングが <code>10000</code> だぜ」</p> <h2 id="備考: 2時間で3倍、 3時間で6倍ぐらい"><a href="#%E5%82%99%E8%80%83%EF%BC%9A%E3%80%80%EF%BC%92%E6%99%82%E9%96%93%E3%81%A7%EF%BC%93%E5%80%8D%E3%80%81%E3%80%80%EF%BC%93%E6%99%82%E9%96%93%E3%81%A7%EF%BC%96%E5%80%8D%E3%81%90%E3%82%89%E3%81%84">備考: 2時間で3倍、 3時間で6倍ぐらい</a></h2> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 1時間で、2倍。<br /> 4時間で 10倍。 他には?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 2時間で 3倍、<br /> 3時間で6倍 ぐらいだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ 5時間で19倍、 6時間で 32倍、  7時間で 58倍か?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 気づいたか」</p> <p><a href="https://crieit.now.sh/upload_images/537abfbb8eccacee44ae3b4448ef2cdd6575a249d48f0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/537abfbb8eccacee44ae3b4448ef2cdd6575a249d48f0.png?mw=700" alt="202312__shogi__10-1732--Logarithm-o2o8o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 表ができたな」</p> <h1 id="(📅 2023-12-10 mon ⏰ 20:33) 対局結果による点数移動"><a href="#%28%F0%9F%93%85+2023-12-10+mon+%E2%8F%B0+20%3A33%29+%E5%AF%BE%E5%B1%80%E7%B5%90%E6%9E%9C%E3%81%AB%E3%82%88%E3%82%8B%E7%82%B9%E6%95%B0%E7%A7%BB%E5%8B%95">(📅 2023-12-10 mon ⏰ 20:33) 対局結果による点数移動</a></h1> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 勝ったり 負けたりすると どんなけ点が移動するの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ウィキペディアの例によると」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://ja.wikipedia.org/wiki/イロレーティング">イロレーティング</a></p> <pre><code>R'A = RA + K * WBA R'B = RB - K * WBA </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 勝った方が A とするとき、<br /> B の元の勝率が A のレーティングに足され、<br /> B のレーティングからは引かれるようだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 例を見せてくれだぜ」</p> <pre><code> Rating ------ A 1750 B 1600 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 A のレーティングが 1750、 B のレーティングが 1600 とするとき、<br /> レーティングの差は 150。<br /> Aから見た勝率 WAB は暗記から ざっと 2時で 75%、<br /> Bから見た勝率 WBA は暗記から ざっと 25% だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 勝率が移動するって どういうことなの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 K定数というのがあって、 32 や 16 を使うらしいが、 仮に 32 だとしよう」</p> <pre><code>R'A = 1750 + 32 * 0.25 = 1750 + 8 = 1758 R'B = 1600 - 32 * 0.25 = 1600 - 8 = 1592 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 動いたな」</p> <h2 id="32 や 16 の優位性は?"><a href="#32+%E3%82%84+16+%E3%81%AE%E5%84%AA%E4%BD%8D%E6%80%A7%E3%81%AF%EF%BC%9F">32 や 16 の優位性は?</a></h2> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 32 や 16 が他の数より優れているのかだぜ? もし優れているのなら、それは なぜだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 レーティングが変動するためには、<br /> まあ 0未満の小数でもいいけど、<br /> 人の扱いやすさとしては 自然数の 1 以上であってほしいと仮定しようぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 対局は レーティング差が 400 以内で行われると 仮定しましょう」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 暗記で、レーティング差が 400 のときは、<br /> レーティング上位者が勝つ確率 90%、<br /> レーティング下位者が勝つ確率  9% だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 両者 足して 100% にならない お父んの暗記表 わらう。<br /> ゼロサムが崩れてるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 概算だしな」</p> <pre><code> Rating ------ A 2000 B 1600 Constant ---- K 32 R'A = RA + K * WBA = 1600 + 32 * 0.09 = 1600 + 2.88 = 1602.88 R'B = RB - K * WBA = 1600 - 32 * 0.09 = 1600 - 2.88 = 1597.12 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>2.88</code> かあ。 自然数にマッピングするという観点からは <code>1</code> でもいいのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 16 なら 1.44 よ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 K は 11 じゃダメなのかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 さあ?」</p> <h1 id="実装"><a href="#%E5%AE%9F%E8%A3%85">実装</a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 イロ・レーティングを実装してくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 式は あるわけだし、 あとは ジャンケンでもしてればいいのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👇 記事を変えて やりましょう」</p> <p>📖 <a href="https://crieit.net/posts/a9a0a6dc37120e004def2d042466bcde">イロ・レーティングって何だぜ(^~^)?<その2></a></p> <h2 id="暗記表の計算式は?"><a href="#%E6%9A%97%E8%A8%98%E8%A1%A8%E3%81%AE%E8%A8%88%E7%AE%97%E5%BC%8F%E3%81%AF%EF%BC%9F">暗記表の計算式は?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 おっと、 暗記していては プログラムに落とし込めないぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 数式があるだろ」</p> <pre><code class="plaintext">y = 400 * log10 x </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 x は どんな式なの?」</p> <pre><code class="plaintext"> y = 400 * log10 x 400 * log10 x = y log10 x = y / 400 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>log10</code> って どうやって 移項するんだったかな……」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 ググれだぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12271940507">x=-log y これを移項してy=の式にすることってできますか。</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 対数の逆は 指数か……?」</p> <pre><code class="plaintext"> y = 400 * log10 x 400 * log10 x = y log10 x = y / 400 x = 10 ^ (y / 400) ← ?? </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こうか?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 計算機によると、違うそうだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 両辺に <code>1 / log10 1</code> を掛けたらどうなの?」</p> <pre><code class="plaintext"> y = 400 * log10 x 400 * log10 x = y log10 x = y / 400 log10 x * (1 / log10 1) = y / 400 * (1 / log10 1) ← ?? x = y / 400 * (1 / log10 1) ← ?? x = (y / 400) / log10 1 ← ?? `` ![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png) 「 👆 こうか?」 ![kifuwarabe-futsu.png](https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png) 「 計算機によると、違うそうだぜ」 ![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png) 「 その計算機に 答えを聞いてくれだぜ」 ![kifuwarabe-futsu.png](https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png) 「 👇 WolframAlpha によると、 400x だそうだぜ」 📖 [400 * x = 400 * log10 x](https://www.wolframalpha.com/input?i=400+*+x+=+400+*+log10+x&assumption={"FunClash",+"log"}+-%3E+{"Log10"}&lang=ja) ![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png) 「 そうは ならんやろ」 ![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png) 「 `400 * log10 10` は 400、 `400 * log 100` は 800、 じゃあ、 `400 なら 10`、 `800 なら 100` なのは なんでだぜ?」 ![ohkina-hiyoko-futsu2.png](https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png) 「 40 で割ったり、 8 で割ったんじゃないの?」 ![kifuwarabe-futsu.png](https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png) 「 👇 指数の逆関数が 対数なのだから、 対数の逆関数は 指数になるんじゃないのかなあ?」 📖 [【標準】指数関数の逆関数](https://math.nakaken88.com/textbook/standard-inverse-function-exponential-function/) ```plaintext y = 400 * log10 x 400 * log10 x = y log10 x = y / 400 x = 10 ^ (y / 400) ← ?? </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 この式は さっき やったぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 計算機によると、違うそうだぜ」</p> <pre><code class="plaintext"> y = 400 * log10 x 400 * log10 x = y log10 x = y / 400 x = 10 ^ log10(y / 400) ← ?? </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 じゃあ これでどうか?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 計算機によると、違うそうだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 その計算機に 答えを聞いてくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 WolframAlpha によると、 <code>10 ^ (x/400)</code> だそうだぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://ja.wolframalpha.com/input?i=逆関数&assumption={"C",+"逆関数"}+-%3E+{"Calculator",+"dflt"}&assumption={"F",+"InverseFunction",+"invfunction"}+-%3E"400+*+log10%28x%29"">10 ^ (x/400)</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 検算してみたが、合ってないぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お父んの 入力方法が おかしいのでは? こうだろ」</p> <p>(カタカタカタカタ)</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あっ、有効桁数が2桁になった!」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ <code>y = 10 ^ (x / 400)</code> だぜ!」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 Python で実装してみましょう」</p> <h1 id="次の関連記事"><a href="#%E6%AC%A1%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">次の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/a9a0a6dc37120e004def2d042466bcde">イロ・レーティングって何だぜ(^~^)?<その2></a></p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18669 2023-12-05T00:51:07+09:00 2023-12-05T21:10:43+09:00 https://crieit.net/posts/9b2ad234687e455fd78bfb9d979723f2 【廃案】きふわらべ式、将棋の先手勝率70%の時代に向けて、将棋のルールを変えない大会ルールの代案 <h1 id="前の関連記事"><a href="#%E5%89%8D%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">前の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/35bb78372fdb17061111e859632f839f">【将棋】千日手は後手何勝分か(^~^)?</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 メーリングリストに送ったら スレッド違いということで その返信で 取り下げになった、<br /> <strong>先手勝率が70%になったゲームで 先手の有利さを解消する案</strong> の残骸を 置いておくぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お父んは 国語ができないからな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 この誰も読んでないブログを使って Crieit のダラ管理人のサーバー代で 記事を保管しましょう」</p> <h2 id="欠点と課題"><a href="#%E6%AC%A0%E7%82%B9%E3%81%A8%E8%AA%B2%E9%A1%8C">欠点と課題</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 また 大会で使えないから 使いどころがない」</p> <ul> <li>きふわらべ式は、(先手勝率が70%に偏らないような、先手勝率が50%前後の)弱い将棋エンジン同士の対局だと、後手を持った方が有利になってしまう欠点がある</li> <li>きふわらべ式は、(先手勝率が70%になるような)強い将棋エンジンと、(先手勝率が50%前後の)弱い将棋エンジンが、混合して対局できるルールである必要がある。特にスイス式に組み込めるようにすることが課題</li> </ul> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 わらう」</p> <h2 id="きふわらべ式の概要"><a href="#%E3%81%8D%E3%81%B5%E3%82%8F%E3%82%89%E3%81%B9%E5%BC%8F%E3%81%AE%E6%A6%82%E8%A6%81">きふわらべ式の概要</a></h2> <ul> <li><strong>1局の勝利の期待値を 0.5 に調整する</strong></li> </ul> <p><a href="https://crieit.now.sh/upload_images/113ff0446f420ea8846acfec02f119af656df18f0d08f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/113ff0446f420ea8846acfec02f119af656df18f0d08f.png?mw=700" alt="202312__shogi__01-1924--KomiDashi.png" /></a></p> <pre><code class="plaintext">先手勝率を x とする。      先手が勝ったときの     先手の勝ち星は y、     後手の勝ち星は 1-y とする。      後手が勝ったときの     先手の勝ち星は 0、     後手の勝ち星は 1 とする。           1 y = ────      2x </code></pre> <h3 id="計算例"><a href="#%E8%A8%88%E7%AE%97%E4%BE%8B">計算例</a></h3> <pre><code class="plaintext">                               5           0 先手勝率 50%の場合、 先手が勝った時には、先手に勝ち点 ───── 、後手に勝ち点 ───── を与える                                5           5                                5           1 先手勝率 60%の場合、 先手が勝った時には、先手に勝ち点 ───── 、後手に勝ち点 ───── を与える                                6           6                                5           2 先手勝率 70%の場合、 先手が勝った時には、先手に勝ち点 ───── 、後手に勝ち点 ───── を与える                                7           7                                5           3 先手勝率 80%の場合、 先手が勝った時には、先手に勝ち点 ───── 、後手に勝ち点 ───── を与える                                8           8                                5           4 先手勝率 90%の場合、 先手が勝った時には、先手に勝ち点 ───── 、後手に勝ち点 ───── を与える                                9           9                                5           5 先手勝率100%の場合、 先手が勝った時には、先手に勝ち点 ───── 、後手に勝ち点 ───── を与える                                10          10 </code></pre> <ul> <li>先手と後手の有利さが 50% vs 50% の場合、先手が勝つと 先手の1勝ち点、後手の0勝ち点となり 従来通りとなる</li> <li>もし将棋が強解決して、先手勝率が100%だった場合、先手が勝つと 先手0.5勝ち点、後手0.5勝ち点 となり、勝負無しと同じことになる</li> </ul> <h3 id="数式の説明"><a href="#%E6%95%B0%E5%BC%8F%E3%81%AE%E8%AA%AC%E6%98%8E">数式の説明</a></h3> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 小学6年生で習う、 <strong>反比例</strong> で できている。<br /> <code>x</code> は、 <code>x</code> が大きくなるほど大きくなる <strong>比例</strong> だが、<br /> <code>1/x</code> は、 <code>x</code> が大きくなるほど数字が小さくなる <strong>反比例</strong> だな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 まず、将棋が強解決して、先手勝率100% になったとき、先手に 0.5 点しか入らないように調整する。<br /> 先手勝率100% というのは 実数で書くと <code>1.0</code> だな。<br /> 0.5 というのは分数で書くと <code>1/2</code> だな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 次に、将棋が 先手も 後手も 勝率が 50%、50% のケースを想定する。<br /> この場合、先手が勝ったら 1勝 が入って欲しい。<br /> 1勝というのは 実数で書くと <code>1.0</code> だな。<br /> 1.0 というのは分数で書くと <code>1/1</code> だな。<br /> じゃあ、 <code>1/2</code> を <code>1/1</code> に調整するには、分母に <code>0.5</code> を掛ければいいな。<br /> <code>1/(2 * 0.5)</code>」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ <code>0.5</code> を 試しに <code>x</code> に置き換えてみようぜ?<br /> <code>1/(2 * x)</code>」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 先手勝率 70% なら <code>1/(2 * 0.7)</code> で いけてるな」</p> <h1 id="筆算でシミュレーションしてみよう"><a href="#%E7%AD%86%E7%AE%97%E3%81%A7%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86">筆算でシミュレーションしてみよう</a></h1> <p>ベースケース(<strong>従来の番勝負の例</strong>):</p> <ul> <li>先手、後手の勝率は 50% vs 50% だろうと想定されている</li> <li>先後を互いに交代する</li> <li>5番勝負は 先に3勝した方の勝ち</li> <li>7番勝負は 先に4勝した方の勝ち</li> </ul> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 新しい方法が、従来の方法を兼ねてたら 嬉しいだろ。<br /> 従来の方法が ベースケース(基本的なケース)となるように定義してみよう。<br /> きふわらべ式が、先手勝率 50% のとき、ベースケースと同じになるか 筆算して確認してみよう」</p> <h2 id="先手勝率50%のケース(ベースケース)"><a href="#%E5%85%88%E6%89%8B%E5%8B%9D%E7%8E%87%EF%BC%95%EF%BC%90%EF%BC%85%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%88%E3%83%99%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%89">先手勝率50%のケース(ベースケース)</a></h2> <h3 id="例1: 先手番だけが勝つケース(最長のケース)"><a href="#%E4%BE%8B%EF%BC%91%EF%BC%9A%E3%80%80%E5%85%88%E6%89%8B%E7%95%AA%E3%81%A0%E3%81%91%E3%81%8C%E5%8B%9D%E3%81%A4%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%88%E6%9C%80%E9%95%B7%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%89">例1: 先手番だけが勝つケース(最長のケース)</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手勝  5/5  後手負  0/5   ※先手に 5/5 勝ち点、後手 0/5 勝ち点。 1.0点先取性なら1番で終わり。対局者Aの1点勝ち .................................. 2  後手負  5/5  先手勝  5/5   ※先手に 0/5 勝ち点加算、後手 5/5 勝ち点加算。 3  先手勝 10/5  後手負  5/5   ※2.0点先取性なら3番で終わり。対局者Aの2点勝ち .................................. 4  後手負 10/5  先手勝 10/5 5  先手勝 15/5  後手負 10/5   ※3.0点先取性なら5番で終わり。対局者Aの3点勝ち .................................. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ベースケースと同じだな」</p> <h3 id="例2: 後手番だけが勝つケース(最短のケース)"><a href="#%E4%BE%8B%EF%BC%92%EF%BC%9A%E3%80%80%E5%BE%8C%E6%89%8B%E7%95%AA%E3%81%A0%E3%81%91%E3%81%8C%E5%8B%9D%E3%81%A4%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%88%E6%9C%80%E7%9F%AD%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%89">例2: 後手番だけが勝つケース(最短のケース)</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手負  0/5  後手勝  5/5   ※先手に 0/5 勝ち点、後手 5/5 勝ち点。1.0点先取性なら1番で終わり。対局者Bの1点勝ち .................................. 2  後手勝  5/5  先手負  5/5 3  先手負  5/5  後手勝 10/5   ※2.0点先取性なら3番で終わり。対局者Bの2点勝ち .................................. 4  後手勝 10/5  先手負 10/5 5  先手負 10/5  後手勝 15/5   ※3.0点先取性なら5番で終わり。対局者Bの3点勝ち .................................. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ベースケースと同じだな」</p> <h2 id="先手勝率60%のケース"><a href="#%E5%85%88%E6%89%8B%E5%8B%9D%E7%8E%87%EF%BC%96%EF%BC%90%EF%BC%85%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9">先手勝率60%のケース</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 先手勝率60% の特殊なケースを シミュレーションしてみようぜ?」</p> <h3 id="例3: 先手番だけが勝つケース(最長のケース)"><a href="#%E4%BE%8B%EF%BC%93%EF%BC%9A%E3%80%80%E5%85%88%E6%89%8B%E7%95%AA%E3%81%A0%E3%81%91%E3%81%8C%E5%8B%9D%E3%81%A4%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%88%E6%9C%80%E9%95%B7%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%89">例3: 先手番だけが勝つケース(最長のケース)</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手勝  5/6  後手負  1/6   ※先手に 5/6 勝ち点、後手 1/6 勝ち点 2  後手負  6/6  先手勝  6/6 3  先手勝 11/6  後手負  7/6   ※1.0点先取性なら3番で終わり。対局者Aの1点勝ち .................................. 4  後手負 12/6  先手勝 12/6 5  先手勝 17/6  後手負 13/6   ※2.0点先取性なら5番で終わり。対局者Aの2点勝ち .................................. 6  後手負 18/6  先手勝 18/6   ※勝ち点が同じなので、もう1対局行う 7  先手勝 23/6  後手負 19/6   ※3.0点先取性なら7番で終わり。対局者Aの3点勝ち .................................. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ベースケースに比べて、番勝負が2番 伸びたな」</p> <h3 id="例4: 後手番だけが勝つケース(最短のケース)"><a href="#%E4%BE%8B%EF%BC%94%EF%BC%9A%E3%80%80%E5%BE%8C%E6%89%8B%E7%95%AA%E3%81%A0%E3%81%91%E3%81%8C%E5%8B%9D%E3%81%A4%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%88%E6%9C%80%E7%9F%AD%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%89">例4: 後手番だけが勝つケース(最短のケース)</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手負  0/6  後手勝  6/6   ※先手に 0/6 勝ち点、後手 6/6 勝ち点。1.0点先取性なら1番で終わり。対局者Bの1点勝ち .................................. 2  後手勝  6/6  先手負  6/6 3  先手負  6/6  後手勝 12/6   ※2.0点先取性なら3番で終わり。対局者Bの2点勝ち .................................. 4  後手勝 12/6  先手負 12/6 5  先手負 12/6  後手勝 18/6   ※3.0点先取性なら5番で終わり。対局者Bの3点勝ち .................................. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 後手番だけが勝つケースは、常にベースケースと同じになるな」</p> <h3 id="例5: 対局者Aが1つ後手勝ちするケース"><a href="#%E4%BE%8B%EF%BC%95%EF%BC%9A%E3%80%80%E5%AF%BE%E5%B1%80%E8%80%85%EF%BC%A1%E3%81%8C%EF%BC%91%E3%81%A4%E5%BE%8C%E6%89%8B%E5%8B%9D%E3%81%A1%E3%81%99%E3%82%8B%E3%82%B1%E3%83%BC%E3%82%B9">例5: 対局者Aが1つ後手勝ちするケース</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手勝  5/6  後手負  1/6 2  後手勝 11/6  先手負  1/6   ※後手に 6/6 勝ち点加算、先手 0 勝ち点加算。1.0点先取性なら2番で終わり。対局者Aの1点勝ち .................................. 3  先手勝 16/6  後手負  2/6   ※2.0点先取性なら3番で終わり。対局者Aの2点勝ち(後手勝ちがあると前後は先手番なので3連勝しやすい) .................................. 4  後手負 17/6  先手勝  7/6 5  先手勝 22/6  後手負  8/6   ※3.0点先取性なら5番で終わり。対局者Aの3点勝ち .................................. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 番勝負の最初に先手を持った方が、<br /> 後手番で1つ勝ったところで、ベースケースより早く終わることは無さそうだな」</p> <h3 id="例6: 対局者Bが1つ後手勝ちするケース(サドンデス)"><a href="#%E4%BE%8B%EF%BC%96%EF%BC%9A%E3%80%80%E5%AF%BE%E5%B1%80%E8%80%85%EF%BC%A2%E3%81%8C%EF%BC%91%E3%81%A4%E5%BE%8C%E6%89%8B%E5%8B%9D%E3%81%A1%E3%81%99%E3%82%8B%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%88%E3%82%B5%E3%83%89%E3%83%B3%E3%83%87%E3%82%B9%EF%BC%89">例6: 対局者Bが1つ後手勝ちするケース(サドンデス)</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手負  0/6  後手勝  6/6   ※先手に 0/6 勝ち点、後手に 6/6 勝ち点。1.0点先取性なら1番で終わり。対局者Bの1点勝ち .................................. 2  後手負  1/6  先手勝 11/6   ※2.0点先取性なら3番で終わり。対局者Bのみなし2点勝ち。このあと対局者Aが先手で勝っても、対局者Bに点数が入ってくるから   .................................. 3  先手勝  6/6  後手負 12/6 4  後手負  7/6  先手勝 17/6   ※3.0点先取性なら4番で終わり。対局者Bのみなし3点勝ち。このあと対局者Aが先手で勝っても、対局者Bに点数が入ってくるから   .................................. ×  先手勝 12/6  後手負 18/6   ※この対局を行わなくても、対局者Bの勝ちが決まっているので、この対局は行われない </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 最初に後手を持った方が 番勝負の最初に1つ勝つと、<br /> 相手がすぐに後手番で取り返さなければ、<br /> その差がずっと利いていて、ベースケースより早く終わることが有るようだな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 クソ・ルールだろ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 <strong>最初に後手番を持った方がいきなり勝つ</strong> という事象には、 <strong>確率的には</strong> 、優遇がかかるのよ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 確率的って何なんだぜ?<br /> 対局に負けたタイミングで番勝負に勝つことはない、みたいなルールにしたら どうだぜ?」</p> <h3 id="例7: (参考記録)対局に負けたタイミングで番勝負に勝つことはないルールにしたら?"><a href="#%E4%BE%8B%EF%BC%97%EF%BC%9A%E3%80%80%EF%BC%88%E5%8F%82%E8%80%83%E8%A8%98%E9%8C%B2%EF%BC%89%E5%AF%BE%E5%B1%80%E3%81%AB%E8%B2%A0%E3%81%91%E3%81%9F%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A7%E7%95%AA%E5%8B%9D%E8%B2%A0%E3%81%AB%E5%8B%9D%E3%81%A4%E3%81%93%E3%81%A8%E3%81%AF%E3%81%AA%E3%81%84%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%AB%E3%81%97%E3%81%9F%E3%82%89%EF%BC%9F">例7: (参考記録)対局に負けたタイミングで番勝負に勝つことはないルールにしたら?</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手負  0/6  後手勝  6/6   ※先手に 0/6 勝ち点、後手に 6/6 勝ち点。1.0点先取性なら1番で終わり。対局者Bの1点勝ち .................................. 2  後手負  1/6  先手勝 11/6 3  先手勝  6/6  後手負 12/6   ※(修正ルール)後手にも勝ち点が入ってくるが、対局に負けたタイミングで番勝負に勝つことはない 4  後手負  7/6  先手勝 17/6   ※2.0点先取性なら4番で終わり。対局者Bの2点勝ち .................................. 5  先手勝 12/6  後手負 18/6   ※(修正ルール)後手にも勝ち点が入ってくるが、対局に負けたタイミングで番勝負に勝つことはない 6  後手負 13/6  先手勝 22/6   ※3.0点先取性なら6番で終わり。対局者Bの3点勝ち </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 対局者Bは、結局、4つ勝つ必要があり、<br /> 後手番で1つ勝ったという事象に対して、メリットがないことになるな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 そうなのか~。<br /> じゃあ 番勝負の1局目の勝敗は すごい重要になるな?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 <strong>先手有利</strong> を消すには、それぐらいの強い調整が必要になるのよ」</p> <h3 id="例8: (参考記録)対局者Bが1つ後手勝ちしたあと、対局者Aがすぐに後手で勝つケース"><a href="#%E4%BE%8B%EF%BC%98%EF%BC%9A%E3%80%80%EF%BC%88%E5%8F%82%E8%80%83%E8%A8%98%E9%8C%B2%EF%BC%89%E5%AF%BE%E5%B1%80%E8%80%85%EF%BC%A2%E3%81%8C%EF%BC%91%E3%81%A4%E5%BE%8C%E6%89%8B%E5%8B%9D%E3%81%A1%E3%81%97%E3%81%9F%E3%81%82%E3%81%A8%E3%80%81%E5%AF%BE%E5%B1%80%E8%80%85%EF%BC%A1%E3%81%8C%E3%81%99%E3%81%90%E3%81%AB%E5%BE%8C%E6%89%8B%E3%81%A7%E5%8B%9D%E3%81%A4%E3%82%B1%E3%83%BC%E3%82%B9">例8: (参考記録)対局者Bが1つ後手勝ちしたあと、対局者Aがすぐに後手で勝つケース</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手負  0/6  後手勝  6/6   ※1.0点先取性なら1番で終わり。対局者Bの1点勝ち .................................. 2  後手勝  6/6  先手負 6/6   ※振り出しに戻った 3  先手勝 11/6  後手負 7/6   ※続けて先手番が取れるので、後手番で勝つと、そのあとずっとメリットを取れる 4  後手負  12/6  先手勝 12/6 5  先手勝 17/6  後手負 13/6   ※2.0点先取性なら5番で終わり。対局者Aの2点勝ち .................................. 6  後手負  18/6  先手勝 18/6 7  先手勝 23/6  後手負 19/6   ※3.0点先取性なら7番で終わり。対局者Aの3点勝ち </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 後手で勝つと、そのあと続けて先手番がやってくるので、ずっと有利になる。<br /> その有利なときに 負けると、有利は相手に行く。<br /> なんにしろ 最後に後手番で勝った方には <strong>ずっと大げさなアドバンテージ</strong> がもらえる。<br /> 最後に先手番で負けた方には <strong>ずっと大げさなディスアドバンテージ</strong> が付けられる」</p> <h2 id="先手勝率70%のケース"><a href="#%E5%85%88%E6%89%8B%E5%8B%9D%E7%8E%87%EF%BC%97%EF%BC%90%EF%BC%85%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9">先手勝率70%のケース</a></h2> <h3 id="例9: 先手番だけが勝つケース(最長のケース)"><a href="#%E4%BE%8B%EF%BC%99%EF%BC%9A%E3%80%80%E5%85%88%E6%89%8B%E7%95%AA%E3%81%A0%E3%81%91%E3%81%8C%E5%8B%9D%E3%81%A4%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%88%E6%9C%80%E9%95%B7%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%89">例9: 先手番だけが勝つケース(最長のケース)</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手勝  5/7  後手負  2/7   ※先手に 5/7 勝ち点、後手 2/7 勝ち点 2  後手負  7/7  先手勝  7/7 3  先手勝 12/7  後手負  9/7   ※1.0点先取性なら3番で終わり。対局者Aの1点勝ち .................................. 4  後手負 14/7  先手勝 14/7 5  先手勝 16/7  後手負 19/7   ※2.0点先取性なら5番で終わり。対局者Aの2点勝ち .................................. 6  後手負 21/7  先手勝 21/7   ※勝ち点が同じなので、もう1対局行う 7  先手勝 26/7  後手負 23/7   ※3.0点先取性なら7番で終わり。対局者Aの3点勝ち .................................. </code></pre> <h3 id="例9: 後手番だけが勝つケース(最短のケース)"><a href="#%E4%BE%8B%EF%BC%99%EF%BC%9A%E3%80%80%E5%BE%8C%E6%89%8B%E7%95%AA%E3%81%A0%E3%81%91%E3%81%8C%E5%8B%9D%E3%81%A4%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%88%E6%9C%80%E7%9F%AD%E3%81%AE%E3%82%B1%E3%83%BC%E3%82%B9%EF%BC%89">例9: 後手番だけが勝つケース(最短のケース)</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手負  0/7  後手勝  7/7   ※先手に 0 勝ち点、後手 7/7 勝ち点。1.0点先取性なら1番で終わり。対局者Bの1点勝ち .................................. 2  後手勝  7/7  先手負  7/7 3  先手負  7/7  後手勝 14/7   ※2.0点先取性なら3番で終わり。対局者Bの2点勝ち .................................. 4  後手勝 14/7  先手負 14/7 5  先手負 14/7  後手勝 21/7   ※3.0点先取性なら5番で終わり。対局者Bの3点勝ち .................................. </code></pre> <h3 id="例10: 対局者Aが1つ後手勝ちするケース"><a href="#%E4%BE%8B%EF%BC%91%EF%BC%90%EF%BC%9A%E3%80%80%E5%AF%BE%E5%B1%80%E8%80%85%EF%BC%A1%E3%81%8C%EF%BC%91%E3%81%A4%E5%BE%8C%E6%89%8B%E5%8B%9D%E3%81%A1%E3%81%99%E3%82%8B%E3%82%B1%E3%83%BC%E3%82%B9">例10: 対局者Aが1つ後手勝ちするケース</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手勝  5/7  後手負  2/7 2  後手勝 12/7  先手負  2/7   ※後手に 7/7 勝ち点、先手 0 勝ち点。1.0点先取性なら2番で終わり。対局者Aの1点勝ち .................................. 3  先手勝 17/7  後手負  4/7   ※2.0点先取性なら3番で終わり。対局者Aの2点勝ち .................................. 4  後手負 19/7  先手勝  9/7 5  先手勝 21/7  後手負 11/7   ※3.0点先取性なら5番で終わり。対局者Aの3点勝ち .................................. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 後手で1つ勝つことは、先手で1つ勝つことより ちゃんと メリットがあるな」</p> <h3 id="例11: 対局者Bが1つ後手勝ちするケース"><a href="#%E4%BE%8B%EF%BC%91%EF%BC%91%EF%BC%9A%E3%80%80%E5%AF%BE%E5%B1%80%E8%80%85%EF%BC%A2%E3%81%8C%EF%BC%91%E3%81%A4%E5%BE%8C%E6%89%8B%E5%8B%9D%E3%81%A1%E3%81%99%E3%82%8B%E3%82%B1%E3%83%BC%E3%82%B9">例11: 対局者Bが1つ後手勝ちするケース</a></h3> <pre><code class="plaintext">番  対局者A     対局者B ー  ーーーーーー  ーーーーーー 1  先手負  0/7  後手勝  7/7   ※後手に 7/7 勝ち点、先手 0 勝ち点。1.0点先取性なら1番で終わり。対局者Bの1点勝ち .................................. 2  後手負  9/7  先手勝 12/7 3  先手勝 14/7  後手負 14/7 4  後手負 16/7  先手勝 19/7   ※2.0点先取性なら4番で終わり。対局者Bの2点勝ち .................................. 5  先手勝 21/7  後手負 21/7 6  後手負 23/7  先手勝 26/7   ※3.0点先取性なら6番で終わり。対局者Bの3点勝ち .................................. </code></pre> <h1 id="きふわらべには、きふわらべ式は要らない"><a href="#%E3%81%8D%E3%81%B5%E3%82%8F%E3%82%89%E3%81%B9%E3%81%AB%E3%81%AF%E3%80%81%E3%81%8D%E3%81%B5%E3%82%8F%E3%82%89%E3%81%B9%E5%BC%8F%E3%81%AF%E8%A6%81%E3%82%89%E3%81%AA%E3%81%84">きふわらべには、きふわらべ式は要らない</a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 先手勝率70%ではない わたしには きふわらべ式は 要らんなあ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 先手勝率50% ~ 先手勝率70% の将棋エンジンが 混合できる計算式は<br /> まだ思案中だぜ」</p> <h1 id="次の関連記事"><a href="#%E6%AC%A1%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">次の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/4e1c338b0343829a093a90a4e716e472">イロ・レーティングって何だぜ(^~^)?</a></p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18666 2023-11-29T20:54:08+09:00 2023-11-29T23:19:55+09:00 https://crieit.net/posts/e8cd3678eda149c3f069dcef4642ee03 素因数分解を思い出そうぜ(^~^)? <h1 id="きふわらべRPG で素因数分解を使う"><a href="#%E3%81%8D%E3%81%B5%E3%82%8F%E3%82%89%E3%81%B9RPG+%E3%81%A7%E7%B4%A0%E5%9B%A0%E6%95%B0%E5%88%86%E8%A7%A3%E3%82%92%E4%BD%BF%E3%81%86">きふわらべRPG で素因数分解を使う</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 きふわらべRPGで 素因数分解したいんで、素因数分解を思い出そうぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 1人でやってくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 合成数を 素数だけで 割り切ればいいのよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 割るしかないの?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://terakoya.ameba.jp/a000001447/">素因数分解とは?やり方を5つのステップでわかりやすく解説【例題・応用問題付き】</a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👇 <strong>ポラードのロー法</strong> というのがあるらしいぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://manabitimes.jp/math/1192">素因数分解の高速なアルゴリズム(ロー法)</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 分からん。割ることにする」</p> <h1 id="RPGの戦闘シーンのダメージ計算で使う"><a href="#%EF%BC%B2%EF%BC%B0%EF%BC%A7%E3%81%AE%E6%88%A6%E9%97%98%E3%82%B7%E3%83%BC%E3%83%B3%E3%81%AE%E3%83%80%E3%83%A1%E3%83%BC%E3%82%B8%E8%A8%88%E7%AE%97%E3%81%A7%E4%BD%BF%E3%81%86">RPGの戦闘シーンのダメージ計算で使う</a></h1> <pre><code class="plaintext">ある正の整数 n があるとする。 とりあえず n は 1~100 ぐらいを考えておく。 n を 2, 3, 5, 7 の素数で素因数分解する。 答えがいくつかあるとき、大きな数を多く使ったものを 1つ 選ぶことにする。 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 じゃあ 試しに <code>n=30</code> ならどうだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 5×5かける……、5×3×2=30、 5×3×2 しかなくない?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 どういうアルゴリズムだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 だから 割るのよ」</p> <h1 id="愚直に書くと"><a href="#%E6%84%9A%E7%9B%B4%E3%81%AB%E6%9B%B8%E3%81%8F%E3%81%A8">愚直に書くと</a></h1> <pre><code class="py"># 素因数分解の練習 print("""\ ある正の整数 n があるとする。 とりあえず n は 1~100 ぐらいを考えておく。 n を 2, 3, 5, 7 の素数で素因数分解する。 答えがいくつかあるとき、大きな数を多く使ったものを 1つ 選ぶことにする。 """) print("Please input number:") n = int(input()) def factorize(n): for a in reversed(range(1,101)): aa = 7 ** a # n 以下の小さな合成数 7a なら、とりあえず n から、それを引く if aa <= n: remain = n - aa print(f"(7x{a}) remain:{remain}") # 割り切れた if remain == 0: return [a, 0, 0, 0] # 余った数で続きをやる for b in reversed(range(1,101)): bb = aa * 5 ** b if bb <= n: remain = n - bb print(f"\t(7x{a} x 5x{b}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, 0, 0] # 余った数で続きをやる for c in reversed(range(1,101)): cc = bb * 3 ** c if cc <= n: remain = n - cc print(f"\t\t(7x{a} x 5x{b} x 3x{c}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, 0] # 余った数で続きをやる for d in reversed(range(1,101)): dd = cc * 2 ** d if dd <= n: remain = n - dd print(f"\t\t\t(7x{a} x 5x{b} x 3x{c} x 2x{d}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, d] for b in reversed(range(1,101)): bb = 5 ** b if bb <= n: remain = n - bb print(f"(5x{b}) remain:{remain}") # 割り切れた if remain == 0: return [0, b, 0, 0] # 余った数で続きをやる for c in reversed(range(1,101)): cc = bb * 3 ** c if cc <= n: remain = n - cc print(f"\t(5x{b} x 3x{c}) remain:{remain}") # 割り切れた if remain == 0: return [0, b, c, 0] # 余った数で続きをやる for d in reversed(range(1,101)): dd = cc * 2 ** d if dd <= n: remain = n - dd print(f"\t\t(5x{b} x 3x{c} x 2x{d}) remain:{remain}") # 割り切れた if remain == 0: return [0, b, c, d] for c in reversed(range(1,101)): cc = 3 ** c if cc <= n: remain = n - cc print(f"(3x{c}) remain:{remain}") # 割り切れた if remain == 0: return [0, 0, c, 0] # 余った数で続きをやる for d in reversed(range(1,101)): dd = cc * 2 ** d if dd <= n: remain = n - dd print(f"\t(3x{c} x 2x{d}) remain:{remain}") # 割り切れた if remain == 0: return [0, 0, c, d] for d in reversed(range(1,101)): dd = 2 ** d if dd <= n: remain = n - dd print(f"(2x{d}) remain:{remain}") # 割り切れた if remain == 0: return [0, 0, 0, d] print(f"Anser:{factorize(n)}") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 愚直に書くと こうか」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ややこしいから 一般化しなくてよくない?」</p> <h1 id="n = 1~100 まで見てみよう"><a href="#n+%3D+1%EF%BD%9E100+%E3%81%BE%E3%81%A7%E8%A6%8B%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86">n = 1~100 まで見てみよう</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👇 n を 1 から 100 まで入れてみようぜ?」</p> <pre><code class="plaintext">N=1 Answer=None N=2 Answer=[0, 0, 0, 1] N=3 Answer=[0, 0, 1, 0] N=4 Answer=[0, 0, 0, 2] N=5 Answer=[0, 1, 0, 0] N=6 Answer=[0, 0, 1, 1] N=7 Answer=[1, 0, 0, 0] N=8 Answer=[0, 0, 0, 3] N=9 Answer=[0, 0, 2, 0] N=10 Answer=None N=11 Answer=None N=12 Answer=[0, 0, 1, 2] N=13 Answer=None N=14 Answer=None N=15 Answer=[0, 1, 1, 0] N=16 Answer=[0, 0, 0, 4] N=17 Answer=None N=18 Answer=[0, 0, 2, 1] N=19 Answer=None N=20 Answer=None N=21 Answer=None N=22 Answer=None N=23 Answer=None N=24 Answer=[0, 0, 1, 3] N=25 Answer=[0, 2, 0, 0] N=26 Answer=None N=27 Answer=[0, 0, 3, 0] N=28 Answer=None N=29 Answer=None N=30 Answer=[0, 1, 1, 1] N=31 Answer=None N=32 Answer=[0, 0, 0, 5] N=33 Answer=None N=34 Answer=None N=35 Answer=[1, 1, 0, 0] N=36 Answer=[0, 0, 2, 2] N=37 Answer=None N=38 Answer=None N=39 Answer=None N=40 Answer=None N=41 Answer=None N=42 Answer=None N=43 Answer=None N=44 Answer=None N=45 Answer=[0, 1, 2, 0] N=46 Answer=None N=47 Answer=None N=48 Answer=[0, 0, 1, 4] N=49 Answer=[2, 0, 0, 0] N=50 Answer=None N=51 Answer=None N=52 Answer=None N=53 Answer=None N=54 Answer=[0, 0, 3, 1] N=55 Answer=None N=56 Answer=None N=57 Answer=None N=58 Answer=None N=59 Answer=None N=60 Answer=[0, 1, 1, 2] N=61 Answer=None N=62 Answer=None N=63 Answer=None N=64 Answer=[0, 0, 0, 6] N=65 Answer=None N=66 Answer=None N=67 Answer=None N=68 Answer=None N=69 Answer=None N=70 Answer=None N=71 Answer=None N=72 Answer=[0, 0, 2, 3] N=73 Answer=None N=74 Answer=None N=75 Answer=[0, 2, 1, 0] N=76 Answer=None N=77 Answer=None N=78 Answer=None N=79 Answer=None N=80 Answer=None N=81 Answer=[0, 0, 4, 0] N=82 Answer=None N=83 Answer=None N=84 Answer=None N=85 Answer=None N=86 Answer=None N=87 Answer=None N=88 Answer=None N=89 Answer=None N=90 Answer=[0, 1, 2, 1] N=91 Answer=None N=92 Answer=None N=93 Answer=None N=94 Answer=None N=95 Answer=None N=96 Answer=[0, 0, 1, 5] N=97 Answer=None N=98 Answer=None N=99 Answer=None N=100 Answer=None </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 20 は <code>5*2*2</code> だろ。ミスってんのかな?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お父んのループ、3の倍数が0のケースを 表現できてないんだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 なるほど」</p> <h1 id="0乗は1"><a href="#0%E4%B9%97%E3%81%AF1">0乗は1</a></h1> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 0乗は1 だから、ループで 0 まで回せばいいんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 それだぜ」</p> <pre><code class="py"># 素因数分解の練習 # # cd math/prime_factorization # python step1.py def factorize(n, debug=True): for a in reversed(range(0,101)): aa = 7 ** a # n 以下の小さな合成数 7a なら、とりあえず n から、それを引く if aa <= n: remain = n - aa if debug: print(f"(7x{a}) remain:{remain}") # 割り切れた if remain == 0: return [a, 0, 0, 0] # 余った数で続きをやる for b in reversed(range(0,101)): bb = aa * 5 ** b if bb <= n: remain = n - bb if debug: print(f"\t(7x{a} x 5x{b}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, 0, 0] # 余った数で続きをやる for c in reversed(range(0,101)): cc = bb * 3 ** c if cc <= n: remain = n - cc if debug: print(f"\t\t(7x{a} x 5x{b} x 3x{c}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, 0] # 余った数で続きをやる for d in reversed(range(0,101)): dd = cc * 2 ** d if dd <= n: remain = n - dd if debug: print(f"\t\t\t(7x{a} x 5x{b} x 3x{c} x 2x{d}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, d] if __name__ == "__main__": print("""\ ある正の整数 n があるとする。 とりあえず n は 1~100 ぐらいを考えておく。 n を 2, 3, 5, 7 の素数で素因数分解する。 答えがいくつかあるとき、大きな数を多く使ったものを 1つ 選ぶことにする。 """) print("Please input number:") n = int(input()) print(f"Anser:{factorize(n)}") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 コードが一気に短くなったな」</p> <h1 id="次の問い"><a href="#%E6%AC%A1%E3%81%AE%E5%95%8F%E3%81%84">次の問い</a></h1> <pre><code class="plaintext">N=1 Answer=[0, 0, 0, 0] N=2 Answer=[0, 0, 0, 1] N=3 Answer=[0, 0, 1, 0] N=4 Answer=[0, 0, 0, 2] N=5 Answer=[0, 1, 0, 0] N=6 Answer=[0, 0, 1, 1] N=7 Answer=[1, 0, 0, 0] N=8 Answer=[0, 0, 0, 3] N=9 Answer=[0, 0, 2, 0] N=10 Answer=[0, 1, 0, 1] N=11 Answer=None N=12 Answer=[0, 0, 1, 2] N=13 Answer=None N=14 Answer=[1, 0, 0, 1] N=15 Answer=[0, 1, 1, 0] N=16 Answer=[0, 0, 0, 4] N=17 Answer=None N=18 Answer=[0, 0, 2, 1] N=19 Answer=None N=20 Answer=[0, 1, 0, 2] N=21 Answer=[1, 0, 1, 0] N=22 Answer=None N=23 Answer=None N=24 Answer=[0, 0, 1, 3] N=25 Answer=[0, 2, 0, 0] N=26 Answer=None N=27 Answer=[0, 0, 3, 0] N=28 Answer=[1, 0, 0, 2] N=29 Answer=None N=30 Answer=[0, 1, 1, 1] N=31 Answer=None N=32 Answer=[0, 0, 0, 5] N=33 Answer=None N=34 Answer=None N=35 Answer=[1, 1, 0, 0] N=36 Answer=[0, 0, 2, 2] N=37 Answer=None N=38 Answer=None N=39 Answer=None N=40 Answer=[0, 1, 0, 3] N=41 Answer=None N=42 Answer=[1, 0, 1, 1] N=43 Answer=None N=44 Answer=None N=45 Answer=[0, 1, 2, 0] N=46 Answer=None N=47 Answer=None N=48 Answer=[0, 0, 1, 4] N=49 Answer=[2, 0, 0, 0] N=50 Answer=[0, 2, 0, 1] N=51 Answer=None N=52 Answer=None N=53 Answer=None N=54 Answer=[0, 0, 3, 1] N=55 Answer=None N=56 Answer=[1, 0, 0, 3] N=57 Answer=None N=58 Answer=None N=59 Answer=None N=60 Answer=[0, 1, 1, 2] N=61 Answer=None N=62 Answer=None N=63 Answer=[1, 0, 2, 0] N=64 Answer=[0, 0, 0, 6] N=65 Answer=None N=66 Answer=None N=67 Answer=None N=68 Answer=None N=69 Answer=None N=70 Answer=[1, 1, 0, 1] N=71 Answer=None N=72 Answer=[0, 0, 2, 3] N=73 Answer=None N=74 Answer=None N=75 Answer=[0, 2, 1, 0] N=76 Answer=None N=77 Answer=None N=78 Answer=None N=79 Answer=None N=80 Answer=[0, 1, 0, 4] N=81 Answer=[0, 0, 4, 0] N=82 Answer=None N=83 Answer=None N=84 Answer=[1, 0, 1, 2] N=85 Answer=None N=86 Answer=None N=87 Answer=None N=88 Answer=None N=89 Answer=None N=90 Answer=[0, 1, 2, 1] N=91 Answer=None N=92 Answer=None N=93 Answer=None N=94 Answer=None N=95 Answer=None N=96 Answer=[0, 0, 1, 5] N=97 Answer=None N=98 Answer=[2, 0, 0, 1] N=99 Answer=None N=100 Answer=[0, 2, 0, 2] </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 上図を見ると、 <code>[0, 0, 0, 5]</code> は <code>[0, 1, 1, 1]</code> より n が 2個分強いんだが、<br /> 素因数分解を使わずに<br /> <code>[0, 0, 0, 5]</code> は <code>[0, 1, 1, 1]</code> より n が 2個分強いということを<br /> 計算する方法って ある?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 <code>5*3*2+2 = 2^5</code> だから、素因数から n を計算することはできるけど、」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 そんな計算したくないわね。無いということにして 早く楽したいわね……」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 もっと よく見たいので n = 101 ~ 1000 まで 見てみようぜ?」</p> <pre><code class="plaintext">N=101 Answer=None N=102 Answer=None N=103 Answer=None N=104 Answer=None N=105 Answer=[1, 1, 1, 0] N=106 Answer=None N=107 Answer=None N=108 Answer=[0, 0, 3, 2] N=109 Answer=None N=110 Answer=None N=111 Answer=None N=112 Answer=[1, 0, 0, 4] N=113 Answer=None N=114 Answer=None N=115 Answer=None N=116 Answer=None N=117 Answer=None N=118 Answer=None N=119 Answer=None N=120 Answer=[0, 1, 1, 3] N=121 Answer=None N=122 Answer=None N=123 Answer=None N=124 Answer=None N=125 Answer=[0, 3, 0, 0] N=126 Answer=[1, 0, 2, 1] N=127 Answer=None N=128 Answer=[0, 0, 0, 7] N=129 Answer=None N=130 Answer=None N=131 Answer=None N=132 Answer=None N=133 Answer=None N=134 Answer=None N=135 Answer=[0, 1, 3, 0] N=136 Answer=None N=137 Answer=None N=138 Answer=None N=139 Answer=None N=140 Answer=[1, 1, 0, 2] N=141 Answer=None N=142 Answer=None N=143 Answer=None N=144 Answer=[0, 0, 2, 4] N=145 Answer=None N=146 Answer=None N=147 Answer=[2, 0, 1, 0] N=148 Answer=None N=149 Answer=None N=150 Answer=[0, 2, 1, 1] N=151 Answer=None N=152 Answer=None N=153 Answer=None N=154 Answer=None N=155 Answer=None N=156 Answer=None N=157 Answer=None N=158 Answer=None N=159 Answer=None N=160 Answer=[0, 1, 0, 5] N=161 Answer=None N=162 Answer=[0, 0, 4, 1] N=163 Answer=None N=164 Answer=None N=165 Answer=None N=166 Answer=None N=167 Answer=None N=168 Answer=[1, 0, 1, 3] N=169 Answer=None N=170 Answer=None N=171 Answer=None N=172 Answer=None N=173 Answer=None N=174 Answer=None N=175 Answer=[1, 2, 0, 0] N=176 Answer=None N=177 Answer=None N=178 Answer=None N=179 Answer=None N=180 Answer=[0, 1, 2, 2] N=181 Answer=None N=182 Answer=None N=183 Answer=None N=184 Answer=None N=185 Answer=None N=186 Answer=None N=187 Answer=None N=188 Answer=None N=189 Answer=[1, 0, 3, 0] N=190 Answer=None N=191 Answer=None N=192 Answer=[0, 0, 1, 6] N=193 Answer=None N=194 Answer=None N=195 Answer=None N=196 Answer=[2, 0, 0, 2] N=197 Answer=None N=198 Answer=None N=199 Answer=None N=200 Answer=[0, 2, 0, 3] N=201 Answer=None N=202 Answer=None N=203 Answer=None N=204 Answer=None N=205 Answer=None N=206 Answer=None N=207 Answer=None N=208 Answer=None N=209 Answer=None N=210 Answer=[1, 1, 1, 1] N=211 Answer=None N=212 Answer=None N=213 Answer=None N=214 Answer=None N=215 Answer=None N=216 Answer=[0, 0, 3, 3] N=217 Answer=None N=218 Answer=None N=219 Answer=None N=220 Answer=None N=221 Answer=None N=222 Answer=None N=223 Answer=None N=224 Answer=[1, 0, 0, 5] N=225 Answer=[0, 2, 2, 0] N=226 Answer=None N=227 Answer=None N=228 Answer=None N=229 Answer=None N=230 Answer=None N=231 Answer=None N=232 Answer=None N=233 Answer=None N=234 Answer=None N=235 Answer=None N=236 Answer=None N=237 Answer=None N=238 Answer=None N=239 Answer=None N=240 Answer=[0, 1, 1, 4] N=241 Answer=None N=242 Answer=None N=243 Answer=[0, 0, 5, 0] N=244 Answer=None N=245 Answer=[2, 1, 0, 0] N=246 Answer=None N=247 Answer=None N=248 Answer=None N=249 Answer=None N=250 Answer=[0, 3, 0, 1] N=251 Answer=None N=252 Answer=[1, 0, 2, 2] N=253 Answer=None N=254 Answer=None N=255 Answer=None N=256 Answer=[0, 0, 0, 8] N=257 Answer=None N=258 Answer=None N=259 Answer=None N=260 Answer=None N=261 Answer=None N=262 Answer=None N=263 Answer=None N=264 Answer=None N=265 Answer=None N=266 Answer=None N=267 Answer=None N=268 Answer=None N=269 Answer=None N=270 Answer=[0, 1, 3, 1] N=271 Answer=None N=272 Answer=None N=273 Answer=None N=274 Answer=None N=275 Answer=None N=276 Answer=None N=277 Answer=None N=278 Answer=None N=279 Answer=None N=280 Answer=[1, 1, 0, 3] N=281 Answer=None N=282 Answer=None N=283 Answer=None N=284 Answer=None N=285 Answer=None N=286 Answer=None N=287 Answer=None N=288 Answer=[0, 0, 2, 5] N=289 Answer=None N=290 Answer=None N=291 Answer=None N=292 Answer=None N=293 Answer=None N=294 Answer=[2, 0, 1, 1] N=295 Answer=None N=296 Answer=None N=297 Answer=None N=298 Answer=None N=299 Answer=None N=300 Answer=[0, 2, 1, 2] N=301 Answer=None N=302 Answer=None N=303 Answer=None N=304 Answer=None N=305 Answer=None N=306 Answer=None N=307 Answer=None N=308 Answer=None N=309 Answer=None N=310 Answer=None N=311 Answer=None N=312 Answer=None N=313 Answer=None N=314 Answer=None N=315 Answer=[1, 1, 2, 0] N=316 Answer=None N=317 Answer=None N=318 Answer=None N=319 Answer=None N=320 Answer=[0, 1, 0, 6] N=321 Answer=None N=322 Answer=None N=323 Answer=None N=324 Answer=[0, 0, 4, 2] N=325 Answer=None N=326 Answer=None N=327 Answer=None N=328 Answer=None N=329 Answer=None N=330 Answer=None N=331 Answer=None N=332 Answer=None N=333 Answer=None N=334 Answer=None N=335 Answer=None N=336 Answer=[1, 0, 1, 4] N=337 Answer=None N=338 Answer=None N=339 Answer=None N=340 Answer=None N=341 Answer=None N=342 Answer=None N=343 Answer=[3, 0, 0, 0] N=344 Answer=None N=345 Answer=None N=346 Answer=None N=347 Answer=None N=348 Answer=None N=349 Answer=None N=350 Answer=[1, 2, 0, 1] N=351 Answer=None N=352 Answer=None N=353 Answer=None N=354 Answer=None N=355 Answer=None N=356 Answer=None N=357 Answer=None N=358 Answer=None N=359 Answer=None N=360 Answer=[0, 1, 2, 3] N=361 Answer=None N=362 Answer=None N=363 Answer=None N=364 Answer=None N=365 Answer=None N=366 Answer=None N=367 Answer=None N=368 Answer=None N=369 Answer=None N=370 Answer=None N=371 Answer=None N=372 Answer=None N=373 Answer=None N=374 Answer=None N=375 Answer=[0, 3, 1, 0] N=376 Answer=None N=377 Answer=None N=378 Answer=[1, 0, 3, 1] N=379 Answer=None N=380 Answer=None N=381 Answer=None N=382 Answer=None N=383 Answer=None N=384 Answer=[0, 0, 1, 7] N=385 Answer=None N=386 Answer=None N=387 Answer=None N=388 Answer=None N=389 Answer=None N=390 Answer=None N=391 Answer=None N=392 Answer=[2, 0, 0, 3] N=393 Answer=None N=394 Answer=None N=395 Answer=None N=396 Answer=None N=397 Answer=None N=398 Answer=None N=399 Answer=None N=400 Answer=[0, 2, 0, 4] N=401 Answer=None N=402 Answer=None N=403 Answer=None N=404 Answer=None N=405 Answer=[0, 1, 4, 0] N=406 Answer=None N=407 Answer=None N=408 Answer=None N=409 Answer=None N=410 Answer=None N=411 Answer=None N=412 Answer=None N=413 Answer=None N=414 Answer=None N=415 Answer=None N=416 Answer=None N=417 Answer=None N=418 Answer=None N=419 Answer=None N=420 Answer=[1, 1, 1, 2] N=421 Answer=None N=422 Answer=None N=423 Answer=None N=424 Answer=None N=425 Answer=None N=426 Answer=None N=427 Answer=None N=428 Answer=None N=429 Answer=None N=430 Answer=None N=431 Answer=None N=432 Answer=[0, 0, 3, 4] N=433 Answer=None N=434 Answer=None N=435 Answer=None N=436 Answer=None N=437 Answer=None N=438 Answer=None N=439 Answer=None N=440 Answer=None N=441 Answer=[2, 0, 2, 0] N=442 Answer=None N=443 Answer=None N=444 Answer=None N=445 Answer=None N=446 Answer=None N=447 Answer=None N=448 Answer=[1, 0, 0, 6] N=449 Answer=None N=450 Answer=[0, 2, 2, 1] N=451 Answer=None N=452 Answer=None N=453 Answer=None N=454 Answer=None N=455 Answer=None N=456 Answer=None N=457 Answer=None N=458 Answer=None N=459 Answer=None N=460 Answer=None N=461 Answer=None N=462 Answer=None N=463 Answer=None N=464 Answer=None N=465 Answer=None N=466 Answer=None N=467 Answer=None N=468 Answer=None N=469 Answer=None N=470 Answer=None N=471 Answer=None N=472 Answer=None N=473 Answer=None N=474 Answer=None N=475 Answer=None N=476 Answer=None N=477 Answer=None N=478 Answer=None N=479 Answer=None N=480 Answer=[0, 1, 1, 5] N=481 Answer=None N=482 Answer=None N=483 Answer=None N=484 Answer=None N=485 Answer=None N=486 Answer=[0, 0, 5, 1] N=487 Answer=None N=488 Answer=None N=489 Answer=None N=490 Answer=[2, 1, 0, 1] N=491 Answer=None N=492 Answer=None N=493 Answer=None N=494 Answer=None N=495 Answer=None N=496 Answer=None N=497 Answer=None N=498 Answer=None N=499 Answer=None N=500 Answer=[0, 3, 0, 2] N=501 Answer=None N=502 Answer=None N=503 Answer=None N=504 Answer=[1, 0, 2, 3] N=505 Answer=None N=506 Answer=None N=507 Answer=None N=508 Answer=None N=509 Answer=None N=510 Answer=None N=511 Answer=None N=512 Answer=[0, 0, 0, 9] N=513 Answer=None N=514 Answer=None N=515 Answer=None N=516 Answer=None N=517 Answer=None N=518 Answer=None N=519 Answer=None N=520 Answer=None N=521 Answer=None N=522 Answer=None N=523 Answer=None N=524 Answer=None N=525 Answer=[1, 2, 1, 0] N=526 Answer=None N=527 Answer=None N=528 Answer=None N=529 Answer=None N=530 Answer=None N=531 Answer=None N=532 Answer=None N=533 Answer=None N=534 Answer=None N=535 Answer=None N=536 Answer=None N=537 Answer=None N=538 Answer=None N=539 Answer=None N=540 Answer=[0, 1, 3, 2] N=541 Answer=None N=542 Answer=None N=543 Answer=None N=544 Answer=None N=545 Answer=None N=546 Answer=None N=547 Answer=None N=548 Answer=None N=549 Answer=None N=550 Answer=None N=551 Answer=None N=552 Answer=None N=553 Answer=None N=554 Answer=None N=555 Answer=None N=556 Answer=None N=557 Answer=None N=558 Answer=None N=559 Answer=None N=560 Answer=[1, 1, 0, 4] N=561 Answer=None N=562 Answer=None N=563 Answer=None N=564 Answer=None N=565 Answer=None N=566 Answer=None N=567 Answer=[1, 0, 4, 0] N=568 Answer=None N=569 Answer=None N=570 Answer=None N=571 Answer=None N=572 Answer=None N=573 Answer=None N=574 Answer=None N=575 Answer=None N=576 Answer=[0, 0, 2, 6] N=577 Answer=None N=578 Answer=None N=579 Answer=None N=580 Answer=None N=581 Answer=None N=582 Answer=None N=583 Answer=None N=584 Answer=None N=585 Answer=None N=586 Answer=None N=587 Answer=None N=588 Answer=[2, 0, 1, 2] N=589 Answer=None N=590 Answer=None N=591 Answer=None N=592 Answer=None N=593 Answer=None N=594 Answer=None N=595 Answer=None N=596 Answer=None N=597 Answer=None N=598 Answer=None N=599 Answer=None N=600 Answer=[0, 2, 1, 3] N=601 Answer=None N=602 Answer=None N=603 Answer=None N=604 Answer=None N=605 Answer=None N=606 Answer=None N=607 Answer=None N=608 Answer=None N=609 Answer=None N=610 Answer=None N=611 Answer=None N=612 Answer=None N=613 Answer=None N=614 Answer=None N=615 Answer=None N=616 Answer=None N=617 Answer=None N=618 Answer=None N=619 Answer=None N=620 Answer=None N=621 Answer=None N=622 Answer=None N=623 Answer=None N=624 Answer=None N=625 Answer=[0, 4, 0, 0] N=626 Answer=None N=627 Answer=None N=628 Answer=None N=629 Answer=None N=630 Answer=[1, 1, 2, 1] N=631 Answer=None N=632 Answer=None N=633 Answer=None N=634 Answer=None N=635 Answer=None N=636 Answer=None N=637 Answer=None N=638 Answer=None N=639 Answer=None N=640 Answer=[0, 1, 0, 7] N=641 Answer=None N=642 Answer=None N=643 Answer=None N=644 Answer=None N=645 Answer=None N=646 Answer=None N=647 Answer=None N=648 Answer=[0, 0, 4, 3] N=649 Answer=None N=650 Answer=None N=651 Answer=None N=652 Answer=None N=653 Answer=None N=654 Answer=None N=655 Answer=None N=656 Answer=None N=657 Answer=None N=658 Answer=None N=659 Answer=None N=660 Answer=None N=661 Answer=None N=662 Answer=None N=663 Answer=None N=664 Answer=None N=665 Answer=None N=666 Answer=None N=667 Answer=None N=668 Answer=None N=669 Answer=None N=670 Answer=None N=671 Answer=None N=672 Answer=[1, 0, 1, 5] N=673 Answer=None N=674 Answer=None N=675 Answer=[0, 2, 3, 0] N=676 Answer=None N=677 Answer=None N=678 Answer=None N=679 Answer=None N=680 Answer=None N=681 Answer=None N=682 Answer=None N=683 Answer=None N=684 Answer=None N=685 Answer=None N=686 Answer=[3, 0, 0, 1] N=687 Answer=None N=688 Answer=None N=689 Answer=None N=690 Answer=None N=691 Answer=None N=692 Answer=None N=693 Answer=None N=694 Answer=None N=695 Answer=None N=696 Answer=None N=697 Answer=None N=698 Answer=None N=699 Answer=None N=700 Answer=[1, 2, 0, 2] N=701 Answer=None N=702 Answer=None N=703 Answer=None N=704 Answer=None N=705 Answer=None N=706 Answer=None N=707 Answer=None N=708 Answer=None N=709 Answer=None N=710 Answer=None N=711 Answer=None N=712 Answer=None N=713 Answer=None N=714 Answer=None N=715 Answer=None N=716 Answer=None N=717 Answer=None N=718 Answer=None N=719 Answer=None N=720 Answer=[0, 1, 2, 4] N=721 Answer=None N=722 Answer=None N=723 Answer=None N=724 Answer=None N=725 Answer=None N=726 Answer=None N=727 Answer=None N=728 Answer=None N=729 Answer=[0, 0, 6, 0] N=730 Answer=None N=731 Answer=None N=732 Answer=None N=733 Answer=None N=734 Answer=None N=735 Answer=[2, 1, 1, 0] N=736 Answer=None N=737 Answer=None N=738 Answer=None N=739 Answer=None N=740 Answer=None N=741 Answer=None N=742 Answer=None N=743 Answer=None N=744 Answer=None N=745 Answer=None N=746 Answer=None N=747 Answer=None N=748 Answer=None N=749 Answer=None N=750 Answer=[0, 3, 1, 1] N=751 Answer=None N=752 Answer=None N=753 Answer=None N=754 Answer=None N=755 Answer=None N=756 Answer=[1, 0, 3, 2] N=757 Answer=None N=758 Answer=None N=759 Answer=None N=760 Answer=None N=761 Answer=None N=762 Answer=None N=763 Answer=None N=764 Answer=None N=765 Answer=None N=766 Answer=None N=767 Answer=None N=768 Answer=[0, 0, 1, 8] N=769 Answer=None N=770 Answer=None N=771 Answer=None N=772 Answer=None N=773 Answer=None N=774 Answer=None N=775 Answer=None N=776 Answer=None N=777 Answer=None N=778 Answer=None N=779 Answer=None N=780 Answer=None N=781 Answer=None N=782 Answer=None N=783 Answer=None N=784 Answer=[2, 0, 0, 4] N=785 Answer=None N=786 Answer=None N=787 Answer=None N=788 Answer=None N=789 Answer=None N=790 Answer=None N=791 Answer=None N=792 Answer=None N=793 Answer=None N=794 Answer=None N=795 Answer=None N=796 Answer=None N=797 Answer=None N=798 Answer=None N=799 Answer=None N=800 Answer=[0, 2, 0, 5] N=801 Answer=None N=802 Answer=None N=803 Answer=None N=804 Answer=None N=805 Answer=None N=806 Answer=None N=807 Answer=None N=808 Answer=None N=809 Answer=None N=810 Answer=[0, 1, 4, 1] N=811 Answer=None N=812 Answer=None N=813 Answer=None N=814 Answer=None N=815 Answer=None N=816 Answer=None N=817 Answer=None N=818 Answer=None N=819 Answer=None N=820 Answer=None N=821 Answer=None N=822 Answer=None N=823 Answer=None N=824 Answer=None N=825 Answer=None N=826 Answer=None N=827 Answer=None N=828 Answer=None N=829 Answer=None N=830 Answer=None N=831 Answer=None N=832 Answer=None N=833 Answer=None N=834 Answer=None N=835 Answer=None N=836 Answer=None N=837 Answer=None N=838 Answer=None N=839 Answer=None N=840 Answer=[1, 1, 1, 3] N=841 Answer=None N=842 Answer=None N=843 Answer=None N=844 Answer=None N=845 Answer=None N=846 Answer=None N=847 Answer=None N=848 Answer=None N=849 Answer=None N=850 Answer=None N=851 Answer=None N=852 Answer=None N=853 Answer=None N=854 Answer=None N=855 Answer=None N=856 Answer=None N=857 Answer=None N=858 Answer=None N=859 Answer=None N=860 Answer=None N=861 Answer=None N=862 Answer=None N=863 Answer=None N=864 Answer=[0, 0, 3, 5] N=865 Answer=None N=866 Answer=None N=867 Answer=None N=868 Answer=None N=869 Answer=None N=870 Answer=None N=871 Answer=None N=872 Answer=None N=873 Answer=None N=874 Answer=None N=875 Answer=[1, 3, 0, 0] N=876 Answer=None N=877 Answer=None N=878 Answer=None N=879 Answer=None N=880 Answer=None N=881 Answer=None N=882 Answer=[2, 0, 2, 1] N=883 Answer=None N=884 Answer=None N=885 Answer=None N=886 Answer=None N=887 Answer=None N=888 Answer=None N=889 Answer=None N=890 Answer=None N=891 Answer=None N=892 Answer=None N=893 Answer=None N=894 Answer=None N=895 Answer=None N=896 Answer=[1, 0, 0, 7] N=897 Answer=None N=898 Answer=None N=899 Answer=None N=900 Answer=[0, 2, 2, 2] N=901 Answer=None N=902 Answer=None N=903 Answer=None N=904 Answer=None N=905 Answer=None N=906 Answer=None N=907 Answer=None N=908 Answer=None N=909 Answer=None N=910 Answer=None N=911 Answer=None N=912 Answer=None N=913 Answer=None N=914 Answer=None N=915 Answer=None N=916 Answer=None N=917 Answer=None N=918 Answer=None N=919 Answer=None N=920 Answer=None N=921 Answer=None N=922 Answer=None N=923 Answer=None N=924 Answer=None N=925 Answer=None N=926 Answer=None N=927 Answer=None N=928 Answer=None N=929 Answer=None N=930 Answer=None N=931 Answer=None N=932 Answer=None N=933 Answer=None N=934 Answer=None N=935 Answer=None N=936 Answer=None N=937 Answer=None N=938 Answer=None N=939 Answer=None N=940 Answer=None N=941 Answer=None N=942 Answer=None N=943 Answer=None N=944 Answer=None N=945 Answer=[1, 1, 3, 0] N=946 Answer=None N=947 Answer=None N=948 Answer=None N=949 Answer=None N=950 Answer=None N=951 Answer=None N=952 Answer=None N=953 Answer=None N=954 Answer=None N=955 Answer=None N=956 Answer=None N=957 Answer=None N=958 Answer=None N=959 Answer=None N=960 Answer=[0, 1, 1, 6] N=961 Answer=None N=962 Answer=None N=963 Answer=None N=964 Answer=None N=965 Answer=None N=966 Answer=None N=967 Answer=None N=968 Answer=None N=969 Answer=None N=970 Answer=None N=971 Answer=None N=972 Answer=[0, 0, 5, 2] N=973 Answer=None N=974 Answer=None N=975 Answer=None N=976 Answer=None N=977 Answer=None N=978 Answer=None N=979 Answer=None N=980 Answer=[2, 1, 0, 2] N=981 Answer=None N=982 Answer=None N=983 Answer=None N=984 Answer=None N=985 Answer=None N=986 Answer=None N=987 Answer=None N=988 Answer=None N=989 Answer=None N=990 Answer=None N=991 Answer=None N=992 Answer=None N=993 Answer=None N=994 Answer=None N=995 Answer=None N=996 Answer=None N=997 Answer=None N=998 Answer=None N=999 Answer=None N=1000 Answer=[0, 3, 0, 3] </code></pre> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 満足かだぜ、お父ん?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 過疎化してくんだなあ」</p> <h1 id="割り切れる数だけ並べるとどうなる?"><a href="#%E5%89%B2%E3%82%8A%E5%88%87%E3%82%8C%E3%82%8B%E6%95%B0%E3%81%A0%E3%81%91%E4%B8%A6%E3%81%B9%E3%82%8B%E3%81%A8%E3%81%A9%E3%81%86%E3%81%AA%E3%82%8B%EF%BC%9F">割り切れる数だけ並べるとどうなる?</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 割り切れる数だけ並べるとどうなるんだぜ?」</p> <pre><code class="plaintext">(0) n=1 Answer=[0, 0, 0, 0] (1) n=2 Answer=[0, 0, 0, 1] (2) n=3 Answer=[0, 0, 1, 0] (3) n=4 Answer=[0, 0, 0, 2] (4) n=5 Answer=[0, 1, 0, 0] (5) n=6 Answer=[0, 0, 1, 1] (6) n=7 Answer=[1, 0, 0, 0] (7) n=8 Answer=[0, 0, 0, 3] (8) n=9 Answer=[0, 0, 2, 0] (9) n=10 Answer=[0, 1, 0, 1] (10) n=12 Answer=[0, 0, 1, 2] (11) n=14 Answer=[1, 0, 0, 1] (12) n=15 Answer=[0, 1, 1, 0] (13) n=16 Answer=[0, 0, 0, 4] (14) n=18 Answer=[0, 0, 2, 1] (15) n=20 Answer=[0, 1, 0, 2] (16) n=21 Answer=[1, 0, 1, 0] (17) n=24 Answer=[0, 0, 1, 3] (18) n=25 Answer=[0, 2, 0, 0] (19) n=27 Answer=[0, 0, 3, 0] (20) n=28 Answer=[1, 0, 0, 2] (21) n=30 Answer=[0, 1, 1, 1] (22) n=32 Answer=[0, 0, 0, 5] (23) n=35 Answer=[1, 1, 0, 0] (24) n=36 Answer=[0, 0, 2, 2] (25) n=40 Answer=[0, 1, 0, 3] (26) n=42 Answer=[1, 0, 1, 1] (27) n=45 Answer=[0, 1, 2, 0] (28) n=48 Answer=[0, 0, 1, 4] (29) n=49 Answer=[2, 0, 0, 0] (30) n=50 Answer=[0, 2, 0, 1] (31) n=54 Answer=[0, 0, 3, 1] (32) n=56 Answer=[1, 0, 0, 3] (33) n=60 Answer=[0, 1, 1, 2] (34) n=63 Answer=[1, 0, 2, 0] (35) n=64 Answer=[0, 0, 0, 6] (36) n=70 Answer=[1, 1, 0, 1] (37) n=72 Answer=[0, 0, 2, 3] (38) n=75 Answer=[0, 2, 1, 0] (39) n=80 Answer=[0, 1, 0, 4] (40) n=81 Answer=[0, 0, 4, 0] (41) n=84 Answer=[1, 0, 1, 2] (42) n=90 Answer=[0, 1, 2, 1] (43) n=96 Answer=[0, 0, 1, 5] (44) n=98 Answer=[2, 0, 0, 1] (45) n=100 Answer=[0, 2, 0, 2] (46) n=105 Answer=[1, 1, 1, 0] (47) n=108 Answer=[0, 0, 3, 2] (48) n=112 Answer=[1, 0, 0, 4] (49) n=120 Answer=[0, 1, 1, 3] (50) n=125 Answer=[0, 3, 0, 0] (51) n=126 Answer=[1, 0, 2, 1] (52) n=128 Answer=[0, 0, 0, 7] (53) n=135 Answer=[0, 1, 3, 0] (54) n=140 Answer=[1, 1, 0, 2] (55) n=144 Answer=[0, 0, 2, 4] (56) n=147 Answer=[2, 0, 1, 0] (57) n=150 Answer=[0, 2, 1, 1] (58) n=160 Answer=[0, 1, 0, 5] (59) n=162 Answer=[0, 0, 4, 1] (60) n=168 Answer=[1, 0, 1, 3] (61) n=175 Answer=[1, 2, 0, 0] (62) n=180 Answer=[0, 1, 2, 2] (63) n=189 Answer=[1, 0, 3, 0] (64) n=192 Answer=[0, 0, 1, 6] (65) n=196 Answer=[2, 0, 0, 2] (66) n=200 Answer=[0, 2, 0, 3] (67) n=210 Answer=[1, 1, 1, 1] (68) n=216 Answer=[0, 0, 3, 3] (69) n=224 Answer=[1, 0, 0, 5] (70) n=225 Answer=[0, 2, 2, 0] (71) n=240 Answer=[0, 1, 1, 4] (72) n=243 Answer=[0, 0, 5, 0] (73) n=245 Answer=[2, 1, 0, 0] (74) n=250 Answer=[0, 3, 0, 1] (75) n=252 Answer=[1, 0, 2, 2] (76) n=256 Answer=[0, 0, 0, 8] (77) n=270 Answer=[0, 1, 3, 1] (78) n=280 Answer=[1, 1, 0, 3] (79) n=288 Answer=[0, 0, 2, 5] (80) n=294 Answer=[2, 0, 1, 1] (81) n=300 Answer=[0, 2, 1, 2] (82) n=315 Answer=[1, 1, 2, 0] (83) n=320 Answer=[0, 1, 0, 6] (84) n=324 Answer=[0, 0, 4, 2] (85) n=336 Answer=[1, 0, 1, 4] (86) n=343 Answer=[3, 0, 0, 0] (87) n=350 Answer=[1, 2, 0, 1] (88) n=360 Answer=[0, 1, 2, 3] (89) n=375 Answer=[0, 3, 1, 0] (90) n=378 Answer=[1, 0, 3, 1] (91) n=384 Answer=[0, 0, 1, 7] (92) n=392 Answer=[2, 0, 0, 3] (93) n=400 Answer=[0, 2, 0, 4] (94) n=405 Answer=[0, 1, 4, 0] (95) n=420 Answer=[1, 1, 1, 2] (96) n=432 Answer=[0, 0, 3, 4] (97) n=441 Answer=[2, 0, 2, 0] (98) n=448 Answer=[1, 0, 0, 6] (99) n=450 Answer=[0, 2, 2, 1] (100) n=480 Answer=[0, 1, 1, 5] (101) n=486 Answer=[0, 0, 5, 1] (102) n=490 Answer=[2, 1, 0, 1] (103) n=500 Answer=[0, 3, 0, 2] (104) n=504 Answer=[1, 0, 2, 3] (105) n=512 Answer=[0, 0, 0, 9] (106) n=525 Answer=[1, 2, 1, 0] (107) n=540 Answer=[0, 1, 3, 2] (108) n=560 Answer=[1, 1, 0, 4] (109) n=567 Answer=[1, 0, 4, 0] (110) n=576 Answer=[0, 0, 2, 6] (111) n=588 Answer=[2, 0, 1, 2] (112) n=600 Answer=[0, 2, 1, 3] (113) n=625 Answer=[0, 4, 0, 0] (114) n=630 Answer=[1, 1, 2, 1] (115) n=640 Answer=[0, 1, 0, 7] (116) n=648 Answer=[0, 0, 4, 3] (117) n=672 Answer=[1, 0, 1, 5] (118) n=675 Answer=[0, 2, 3, 0] (119) n=686 Answer=[3, 0, 0, 1] (120) n=700 Answer=[1, 2, 0, 2] (121) n=720 Answer=[0, 1, 2, 4] (122) n=729 Answer=[0, 0, 6, 0] (123) n=735 Answer=[2, 1, 1, 0] (124) n=750 Answer=[0, 3, 1, 1] (125) n=756 Answer=[1, 0, 3, 2] (126) n=768 Answer=[0, 0, 1, 8] (127) n=784 Answer=[2, 0, 0, 4] (128) n=800 Answer=[0, 2, 0, 5] (129) n=810 Answer=[0, 1, 4, 1] (130) n=840 Answer=[1, 1, 1, 3] (131) n=864 Answer=[0, 0, 3, 5] (132) n=875 Answer=[1, 3, 0, 0] (133) n=882 Answer=[2, 0, 2, 1] (134) n=896 Answer=[1, 0, 0, 7] (135) n=900 Answer=[0, 2, 2, 2] (136) n=945 Answer=[1, 1, 3, 0] (137) n=960 Answer=[0, 1, 1, 6] (138) n=972 Answer=[0, 0, 5, 2] (139) n=980 Answer=[2, 1, 0, 2] (140) n=1000 Answer=[0, 3, 0, 3] (141) n=1008 Answer=[1, 0, 2, 4] (142) n=1024 Answer=[0, 0, 0, 10] (143) n=1029 Answer=[3, 0, 1, 0] (144) n=1050 Answer=[1, 2, 1, 1] (145) n=1080 Answer=[0, 1, 3, 3] (146) n=1120 Answer=[1, 1, 0, 5] (147) n=1125 Answer=[0, 3, 2, 0] (148) n=1134 Answer=[1, 0, 4, 1] (149) n=1152 Answer=[0, 0, 2, 7] (150) n=1176 Answer=[2, 0, 1, 3] (151) n=1200 Answer=[0, 2, 1, 4] (152) n=1215 Answer=[0, 1, 5, 0] (153) n=1225 Answer=[2, 2, 0, 0] (154) n=1250 Answer=[0, 4, 0, 1] (155) n=1260 Answer=[1, 1, 2, 2] (156) n=1280 Answer=[0, 1, 0, 8] (157) n=1296 Answer=[0, 0, 4, 4] (158) n=1323 Answer=[2, 0, 3, 0] (159) n=1344 Answer=[1, 0, 1, 6] (160) n=1350 Answer=[0, 2, 3, 1] (161) n=1372 Answer=[3, 0, 0, 2] (162) n=1400 Answer=[1, 2, 0, 3] (163) n=1440 Answer=[0, 1, 2, 5] (164) n=1458 Answer=[0, 0, 6, 1] (165) n=1470 Answer=[2, 1, 1, 1] (166) n=1500 Answer=[0, 3, 1, 2] (167) n=1512 Answer=[1, 0, 3, 3] (168) n=1536 Answer=[0, 0, 1, 9] (169) n=1568 Answer=[2, 0, 0, 5] (170) n=1575 Answer=[1, 2, 2, 0] (171) n=1600 Answer=[0, 2, 0, 6] (172) n=1620 Answer=[0, 1, 4, 2] (173) n=1680 Answer=[1, 1, 1, 4] (174) n=1701 Answer=[1, 0, 5, 0] (175) n=1715 Answer=[3, 1, 0, 0] (176) n=1728 Answer=[0, 0, 3, 6] (177) n=1750 Answer=[1, 3, 0, 1] (178) n=1764 Answer=[2, 0, 2, 2] (179) n=1792 Answer=[1, 0, 0, 8] (180) n=1800 Answer=[0, 2, 2, 3] (181) n=1875 Answer=[0, 4, 1, 0] (182) n=1890 Answer=[1, 1, 3, 1] (183) n=1920 Answer=[0, 1, 1, 7] (184) n=1944 Answer=[0, 0, 5, 3] (185) n=1960 Answer=[2, 1, 0, 3] (186) n=2000 Answer=[0, 3, 0, 4] (187) n=2016 Answer=[1, 0, 2, 5] (188) n=2025 Answer=[0, 2, 4, 0] (189) n=2048 Answer=[0, 0, 0, 11] (190) n=2058 Answer=[3, 0, 1, 1] (191) n=2100 Answer=[1, 2, 1, 2] (192) n=2160 Answer=[0, 1, 3, 4] (193) n=2187 Answer=[0, 0, 7, 0] (194) n=2205 Answer=[2, 1, 2, 0] (195) n=2240 Answer=[1, 1, 0, 6] (196) n=2250 Answer=[0, 3, 2, 1] (197) n=2268 Answer=[1, 0, 4, 2] (198) n=2304 Answer=[0, 0, 2, 8] (199) n=2352 Answer=[2, 0, 1, 4] (200) n=2400 Answer=[0, 2, 1, 5] (201) n=2401 Answer=[4, 0, 0, 0] (202) n=2430 Answer=[0, 1, 5, 1] (203) n=2450 Answer=[2, 2, 0, 1] (204) n=2500 Answer=[0, 4, 0, 2] (205) n=2520 Answer=[1, 1, 2, 3] (206) n=2560 Answer=[0, 1, 0, 9] (207) n=2592 Answer=[0, 0, 4, 5] (208) n=2625 Answer=[1, 3, 1, 0] (209) n=2646 Answer=[2, 0, 3, 1] (210) n=2688 Answer=[1, 0, 1, 7] (211) n=2700 Answer=[0, 2, 3, 2] (212) n=2744 Answer=[3, 0, 0, 3] (213) n=2800 Answer=[1, 2, 0, 4] (214) n=2835 Answer=[1, 1, 4, 0] (215) n=2880 Answer=[0, 1, 2, 6] (216) n=2916 Answer=[0, 0, 6, 2] (217) n=2940 Answer=[2, 1, 1, 2] (218) n=3000 Answer=[0, 3, 1, 3] (219) n=3024 Answer=[1, 0, 3, 4] (220) n=3072 Answer=[0, 0, 1, 10] (221) n=3087 Answer=[3, 0, 2, 0] (222) n=3125 Answer=[0, 5, 0, 0] (223) n=3136 Answer=[2, 0, 0, 6] (224) n=3150 Answer=[1, 2, 2, 1] (225) n=3200 Answer=[0, 2, 0, 7] (226) n=3240 Answer=[0, 1, 4, 3] (227) n=3360 Answer=[1, 1, 1, 5] (228) n=3375 Answer=[0, 3, 3, 0] (229) n=3402 Answer=[1, 0, 5, 1] (230) n=3430 Answer=[3, 1, 0, 1] (231) n=3456 Answer=[0, 0, 3, 7] (232) n=3500 Answer=[1, 3, 0, 2] (233) n=3528 Answer=[2, 0, 2, 3] (234) n=3584 Answer=[1, 0, 0, 9] (235) n=3600 Answer=[0, 2, 2, 4] (236) n=3645 Answer=[0, 1, 6, 0] (237) n=3675 Answer=[2, 2, 1, 0] (238) n=3750 Answer=[0, 4, 1, 1] (239) n=3780 Answer=[1, 1, 3, 2] (240) n=3840 Answer=[0, 1, 1, 8] (241) n=3888 Answer=[0, 0, 5, 4] (242) n=3920 Answer=[2, 1, 0, 4] (243) n=3969 Answer=[2, 0, 4, 0] (244) n=4000 Answer=[0, 3, 0, 5] (245) n=4032 Answer=[1, 0, 2, 6] (246) n=4050 Answer=[0, 2, 4, 1] (247) n=4096 Answer=[0, 0, 0, 12] (248) n=4116 Answer=[3, 0, 1, 2] (249) n=4200 Answer=[1, 2, 1, 3] (250) n=4320 Answer=[0, 1, 3, 5] (251) n=4374 Answer=[0, 0, 7, 1] (252) n=4375 Answer=[1, 4, 0, 0] (253) n=4410 Answer=[2, 1, 2, 1] (254) n=4480 Answer=[1, 1, 0, 7] (255) n=4500 Answer=[0, 3, 2, 2] (256) n=4536 Answer=[1, 0, 4, 3] (257) n=4608 Answer=[0, 0, 2, 9] (258) n=4704 Answer=[2, 0, 1, 5] (259) n=4725 Answer=[1, 2, 3, 0] (260) n=4800 Answer=[0, 2, 1, 6] (261) n=4802 Answer=[4, 0, 0, 1] (262) n=4860 Answer=[0, 1, 5, 2] (263) n=4900 Answer=[2, 2, 0, 2] (264) n=5000 Answer=[0, 4, 0, 3] (265) n=5040 Answer=[1, 1, 2, 4] (266) n=5103 Answer=[1, 0, 6, 0] (267) n=5120 Answer=[0, 1, 0, 10] (268) n=5145 Answer=[3, 1, 1, 0] (269) n=5184 Answer=[0, 0, 4, 6] (270) n=5250 Answer=[1, 3, 1, 1] (271) n=5292 Answer=[2, 0, 3, 2] (272) n=5376 Answer=[1, 0, 1, 8] (273) n=5400 Answer=[0, 2, 3, 3] (274) n=5488 Answer=[3, 0, 0, 4] (275) n=5600 Answer=[1, 2, 0, 5] (276) n=5625 Answer=[0, 4, 2, 0] (277) n=5670 Answer=[1, 1, 4, 1] (278) n=5760 Answer=[0, 1, 2, 7] (279) n=5832 Answer=[0, 0, 6, 3] (280) n=5880 Answer=[2, 1, 1, 3] (281) n=6000 Answer=[0, 3, 1, 4] (282) n=6048 Answer=[1, 0, 3, 5] (283) n=6075 Answer=[0, 2, 5, 0] (284) n=6125 Answer=[2, 3, 0, 0] (285) n=6144 Answer=[0, 0, 1, 11] (286) n=6174 Answer=[3, 0, 2, 1] (287) n=6250 Answer=[0, 5, 0, 1] (288) n=6272 Answer=[2, 0, 0, 7] (289) n=6300 Answer=[1, 2, 2, 2] (290) n=6400 Answer=[0, 2, 0, 8] (291) n=6480 Answer=[0, 1, 4, 4] (292) n=6561 Answer=[0, 0, 8, 0] (293) n=6615 Answer=[2, 1, 3, 0] (294) n=6720 Answer=[1, 1, 1, 6] (295) n=6750 Answer=[0, 3, 3, 1] (296) n=6804 Answer=[1, 0, 5, 2] (297) n=6860 Answer=[3, 1, 0, 2] (298) n=6912 Answer=[0, 0, 3, 8] (299) n=7000 Answer=[1, 3, 0, 3] (300) n=7056 Answer=[2, 0, 2, 4] (301) n=7168 Answer=[1, 0, 0, 10] (302) n=7200 Answer=[0, 2, 2, 5] (303) n=7203 Answer=[4, 0, 1, 0] (304) n=7290 Answer=[0, 1, 6, 1] (305) n=7350 Answer=[2, 2, 1, 1] (306) n=7500 Answer=[0, 4, 1, 2] (307) n=7560 Answer=[1, 1, 3, 3] (308) n=7680 Answer=[0, 1, 1, 9] (309) n=7776 Answer=[0, 0, 5, 5] (310) n=7840 Answer=[2, 1, 0, 5] (311) n=7875 Answer=[1, 3, 2, 0] (312) n=7938 Answer=[2, 0, 4, 1] (313) n=8000 Answer=[0, 3, 0, 6] (314) n=8064 Answer=[1, 0, 2, 7] (315) n=8100 Answer=[0, 2, 4, 2] (316) n=8192 Answer=[0, 0, 0, 13] (317) n=8232 Answer=[3, 0, 1, 3] (318) n=8400 Answer=[1, 2, 1, 4] (319) n=8505 Answer=[1, 1, 5, 0] (320) n=8575 Answer=[3, 2, 0, 0] (321) n=8640 Answer=[0, 1, 3, 6] (322) n=8748 Answer=[0, 0, 7, 2] (323) n=8750 Answer=[1, 4, 0, 1] (324) n=8820 Answer=[2, 1, 2, 2] (325) n=8960 Answer=[1, 1, 0, 8] (326) n=9000 Answer=[0, 3, 2, 3] (327) n=9072 Answer=[1, 0, 4, 4] (328) n=9216 Answer=[0, 0, 2, 10] (329) n=9261 Answer=[3, 0, 3, 0] (330) n=9375 Answer=[0, 5, 1, 0] (331) n=9408 Answer=[2, 0, 1, 6] (332) n=9450 Answer=[1, 2, 3, 1] (333) n=9600 Answer=[0, 2, 1, 7] (334) n=9604 Answer=[4, 0, 0, 2] (335) n=9720 Answer=[0, 1, 5, 3] (336) n=9800 Answer=[2, 2, 0, 3] (337) n=10000 Answer=[0, 4, 0, 4] (338) n=10080 Answer=[1, 1, 2, 5] (339) n=10125 Answer=[0, 3, 4, 0] (340) n=10206 Answer=[1, 0, 6, 1] (341) n=10240 Answer=[0, 1, 0, 11] (342) n=10290 Answer=[3, 1, 1, 1] (343) n=10368 Answer=[0, 0, 4, 7] (344) n=10500 Answer=[1, 3, 1, 2] (345) n=10584 Answer=[2, 0, 3, 3] (346) n=10752 Answer=[1, 0, 1, 9] (347) n=10800 Answer=[0, 2, 3, 4] (348) n=10935 Answer=[0, 1, 7, 0] (349) n=10976 Answer=[3, 0, 0, 5] (350) n=11025 Answer=[2, 2, 2, 0] (351) n=11200 Answer=[1, 2, 0, 6] (352) n=11250 Answer=[0, 4, 2, 1] (353) n=11340 Answer=[1, 1, 4, 2] (354) n=11520 Answer=[0, 1, 2, 8] (355) n=11664 Answer=[0, 0, 6, 4] (356) n=11760 Answer=[2, 1, 1, 4] (357) n=11907 Answer=[2, 0, 5, 0] (358) n=12000 Answer=[0, 3, 1, 5] (359) n=12005 Answer=[4, 1, 0, 0] (360) n=12096 Answer=[1, 0, 3, 6] (361) n=12150 Answer=[0, 2, 5, 1] (362) n=12250 Answer=[2, 3, 0, 1] (363) n=12288 Answer=[0, 0, 1, 12] (364) n=12348 Answer=[3, 0, 2, 2] (365) n=12500 Answer=[0, 5, 0, 2] (366) n=12544 Answer=[2, 0, 0, 8] (367) n=12600 Answer=[1, 2, 2, 3] (368) n=12800 Answer=[0, 2, 0, 9] (369) n=12960 Answer=[0, 1, 4, 5] (370) n=13122 Answer=[0, 0, 8, 1] (371) n=13125 Answer=[1, 4, 1, 0] (372) n=13230 Answer=[2, 1, 3, 1] (373) n=13440 Answer=[1, 1, 1, 7] (374) n=13500 Answer=[0, 3, 3, 2] (375) n=13608 Answer=[1, 0, 5, 3] (376) n=13720 Answer=[3, 1, 0, 3] (377) n=13824 Answer=[0, 0, 3, 9] (378) n=14000 Answer=[1, 3, 0, 4] (379) n=14112 Answer=[2, 0, 2, 5] (380) n=14175 Answer=[1, 2, 4, 0] (381) n=14336 Answer=[1, 0, 0, 11] (382) n=14400 Answer=[0, 2, 2, 6] (383) n=14406 Answer=[4, 0, 1, 1] (384) n=14580 Answer=[0, 1, 6, 2] (385) n=14700 Answer=[2, 2, 1, 2] (386) n=15000 Answer=[0, 4, 1, 3] (387) n=15120 Answer=[1, 1, 3, 4] (388) n=15309 Answer=[1, 0, 7, 0] (389) n=15360 Answer=[0, 1, 1, 10] (390) n=15435 Answer=[3, 1, 2, 0] (391) n=15552 Answer=[0, 0, 5, 6] (392) n=15625 Answer=[0, 6, 0, 0] (393) n=15680 Answer=[2, 1, 0, 6] (394) n=15750 Answer=[1, 3, 2, 1] (395) n=15876 Answer=[2, 0, 4, 2] (396) n=16000 Answer=[0, 3, 0, 7] (397) n=16128 Answer=[1, 0, 2, 8] (398) n=16200 Answer=[0, 2, 4, 3] (399) n=16384 Answer=[0, 0, 0, 14] (400) n=16464 Answer=[3, 0, 1, 4] (401) n=16800 Answer=[1, 2, 1, 5] (402) n=16807 Answer=[5, 0, 0, 0] (403) n=16875 Answer=[0, 4, 3, 0] (404) n=17010 Answer=[1, 1, 5, 1] (405) n=17150 Answer=[3, 2, 0, 1] (406) n=17280 Answer=[0, 1, 3, 7] (407) n=17496 Answer=[0, 0, 7, 3] (408) n=17500 Answer=[1, 4, 0, 2] (409) n=17640 Answer=[2, 1, 2, 3] (410) n=17920 Answer=[1, 1, 0, 9] (411) n=18000 Answer=[0, 3, 2, 4] (412) n=18144 Answer=[1, 0, 4, 5] (413) n=18225 Answer=[0, 2, 6, 0] (414) n=18375 Answer=[2, 3, 1, 0] (415) n=18432 Answer=[0, 0, 2, 11] (416) n=18522 Answer=[3, 0, 3, 1] (417) n=18750 Answer=[0, 5, 1, 1] (418) n=18816 Answer=[2, 0, 1, 7] (419) n=18900 Answer=[1, 2, 3, 2] (420) n=19200 Answer=[0, 2, 1, 8] (421) n=19208 Answer=[4, 0, 0, 3] (422) n=19440 Answer=[0, 1, 5, 4] (423) n=19600 Answer=[2, 2, 0, 4] (424) n=19683 Answer=[0, 0, 9, 0] (425) n=19845 Answer=[2, 1, 4, 0] (426) n=20000 Answer=[0, 4, 0, 5] (427) n=20160 Answer=[1, 1, 2, 6] (428) n=20250 Answer=[0, 3, 4, 1] (429) n=20412 Answer=[1, 0, 6, 2] (430) n=20480 Answer=[0, 1, 0, 12] (431) n=20580 Answer=[3, 1, 1, 2] (432) n=20736 Answer=[0, 0, 4, 8] (433) n=21000 Answer=[1, 3, 1, 3] (434) n=21168 Answer=[2, 0, 3, 4] (435) n=21504 Answer=[1, 0, 1, 10] (436) n=21600 Answer=[0, 2, 3, 5] (437) n=21609 Answer=[4, 0, 2, 0] (438) n=21870 Answer=[0, 1, 7, 1] (439) n=21875 Answer=[1, 5, 0, 0] (440) n=21952 Answer=[3, 0, 0, 6] (441) n=22050 Answer=[2, 2, 2, 1] (442) n=22400 Answer=[1, 2, 0, 7] (443) n=22500 Answer=[0, 4, 2, 2] (444) n=22680 Answer=[1, 1, 4, 3] (445) n=23040 Answer=[0, 1, 2, 9] (446) n=23328 Answer=[0, 0, 6, 5] (447) n=23520 Answer=[2, 1, 1, 5] (448) n=23625 Answer=[1, 3, 3, 0] (449) n=23814 Answer=[2, 0, 5, 1] (450) n=24000 Answer=[0, 3, 1, 6] (451) n=24010 Answer=[4, 1, 0, 1] (452) n=24192 Answer=[1, 0, 3, 7] (453) n=24300 Answer=[0, 2, 5, 2] (454) n=24500 Answer=[2, 3, 0, 2] (455) n=24576 Answer=[0, 0, 1, 13] (456) n=24696 Answer=[3, 0, 2, 3] (457) n=25000 Answer=[0, 5, 0, 3] (458) n=25088 Answer=[2, 0, 0, 9] (459) n=25200 Answer=[1, 2, 2, 4] (460) n=25515 Answer=[1, 1, 6, 0] (461) n=25600 Answer=[0, 2, 0, 10] (462) n=25725 Answer=[3, 2, 1, 0] (463) n=25920 Answer=[0, 1, 4, 6] (464) n=26244 Answer=[0, 0, 8, 2] (465) n=26250 Answer=[1, 4, 1, 1] (466) n=26460 Answer=[2, 1, 3, 2] (467) n=26880 Answer=[1, 1, 1, 8] (468) n=27000 Answer=[0, 3, 3, 3] (469) n=27216 Answer=[1, 0, 5, 4] (470) n=27440 Answer=[3, 1, 0, 4] (471) n=27648 Answer=[0, 0, 3, 10] (472) n=27783 Answer=[3, 0, 4, 0] (473) n=28000 Answer=[1, 3, 0, 5] (474) n=28125 Answer=[0, 5, 2, 0] (475) n=28224 Answer=[2, 0, 2, 6] (476) n=28350 Answer=[1, 2, 4, 1] (477) n=28672 Answer=[1, 0, 0, 12] (478) n=28800 Answer=[0, 2, 2, 7] (479) n=28812 Answer=[4, 0, 1, 2] (480) n=29160 Answer=[0, 1, 6, 3] (481) n=29400 Answer=[2, 2, 1, 3] (482) n=30000 Answer=[0, 4, 1, 4] (483) n=30240 Answer=[1, 1, 3, 5] (484) n=30375 Answer=[0, 3, 5, 0] (485) n=30618 Answer=[1, 0, 7, 1] (486) n=30625 Answer=[2, 4, 0, 0] (487) n=30720 Answer=[0, 1, 1, 11] (488) n=30870 Answer=[3, 1, 2, 1] (489) n=31104 Answer=[0, 0, 5, 7] (490) n=31250 Answer=[0, 6, 0, 1] (491) n=31360 Answer=[2, 1, 0, 7] (492) n=31500 Answer=[1, 3, 2, 2] (493) n=31752 Answer=[2, 0, 4, 3] (494) n=32000 Answer=[0, 3, 0, 8] (495) n=32256 Answer=[1, 0, 2, 9] (496) n=32400 Answer=[0, 2, 4, 4] (497) n=32768 Answer=[0, 0, 0, 15] (498) n=32805 Answer=[0, 1, 8, 0] (499) n=32928 Answer=[3, 0, 1, 5] (500) n=33075 Answer=[2, 2, 3, 0] (501) n=33600 Answer=[1, 2, 1, 6] (502) n=33614 Answer=[5, 0, 0, 1] (503) n=33750 Answer=[0, 4, 3, 1] (504) n=34020 Answer=[1, 1, 5, 2] (505) n=34300 Answer=[3, 2, 0, 2] (506) n=34560 Answer=[0, 1, 3, 8] (507) n=34992 Answer=[0, 0, 7, 4] (508) n=35000 Answer=[1, 4, 0, 3] (509) n=35280 Answer=[2, 1, 2, 4] (510) n=35721 Answer=[2, 0, 6, 0] (511) n=35840 Answer=[1, 1, 0, 10] (512) n=36000 Answer=[0, 3, 2, 5] (513) n=36015 Answer=[4, 1, 1, 0] (514) n=36288 Answer=[1, 0, 4, 6] (515) n=36450 Answer=[0, 2, 6, 1] (516) n=36750 Answer=[2, 3, 1, 1] (517) n=36864 Answer=[0, 0, 2, 12] (518) n=37044 Answer=[3, 0, 3, 2] (519) n=37500 Answer=[0, 5, 1, 2] (520) n=37632 Answer=[2, 0, 1, 8] (521) n=37800 Answer=[1, 2, 3, 3] (522) n=38400 Answer=[0, 2, 1, 9] (523) n=38416 Answer=[4, 0, 0, 4] (524) n=38880 Answer=[0, 1, 5, 5] (525) n=39200 Answer=[2, 2, 0, 5] (526) n=39366 Answer=[0, 0, 9, 1] (527) n=39375 Answer=[1, 4, 2, 0] (528) n=39690 Answer=[2, 1, 4, 1] (529) n=40000 Answer=[0, 4, 0, 6] (530) n=40320 Answer=[1, 1, 2, 7] (531) n=40500 Answer=[0, 3, 4, 2] (532) n=40824 Answer=[1, 0, 6, 3] (533) n=40960 Answer=[0, 1, 0, 13] (534) n=41160 Answer=[3, 1, 1, 3] (535) n=41472 Answer=[0, 0, 4, 9] (536) n=42000 Answer=[1, 3, 1, 4] (537) n=42336 Answer=[2, 0, 3, 5] (538) n=42525 Answer=[1, 2, 5, 0] (539) n=42875 Answer=[3, 3, 0, 0] (540) n=43008 Answer=[1, 0, 1, 11] (541) n=43200 Answer=[0, 2, 3, 6] (542) n=43218 Answer=[4, 0, 2, 1] (543) n=43740 Answer=[0, 1, 7, 2] (544) n=43750 Answer=[1, 5, 0, 1] (545) n=43904 Answer=[3, 0, 0, 7] (546) n=44100 Answer=[2, 2, 2, 2] (547) n=44800 Answer=[1, 2, 0, 8] (548) n=45000 Answer=[0, 4, 2, 3] (549) n=45360 Answer=[1, 1, 4, 4] (550) n=45927 Answer=[1, 0, 8, 0] (551) n=46080 Answer=[0, 1, 2, 10] (552) n=46305 Answer=[3, 1, 3, 0] (553) n=46656 Answer=[0, 0, 6, 6] (554) n=46875 Answer=[0, 6, 1, 0] (555) n=47040 Answer=[2, 1, 1, 6] (556) n=47250 Answer=[1, 3, 3, 1] (557) n=47628 Answer=[2, 0, 5, 2] (558) n=48000 Answer=[0, 3, 1, 7] (559) n=48020 Answer=[4, 1, 0, 2] (560) n=48384 Answer=[1, 0, 3, 8] (561) n=48600 Answer=[0, 2, 5, 3] (562) n=49000 Answer=[2, 3, 0, 3] (563) n=49152 Answer=[0, 0, 1, 14] (564) n=49392 Answer=[3, 0, 2, 4] (565) n=50000 Answer=[0, 5, 0, 4] (566) n=50176 Answer=[2, 0, 0, 10] (567) n=50400 Answer=[1, 2, 2, 5] (568) n=50421 Answer=[5, 0, 1, 0] (569) n=50625 Answer=[0, 4, 4, 0] (570) n=51030 Answer=[1, 1, 6, 1] (571) n=51200 Answer=[0, 2, 0, 11] (572) n=51450 Answer=[3, 2, 1, 1] (573) n=51840 Answer=[0, 1, 4, 7] (574) n=52488 Answer=[0, 0, 8, 3] (575) n=52500 Answer=[1, 4, 1, 2] (576) n=52920 Answer=[2, 1, 3, 3] (577) n=53760 Answer=[1, 1, 1, 9] (578) n=54000 Answer=[0, 3, 3, 4] (579) n=54432 Answer=[1, 0, 5, 5] (580) n=54675 Answer=[0, 2, 7, 0] (581) n=54880 Answer=[3, 1, 0, 5] (582) n=55125 Answer=[2, 3, 2, 0] (583) n=55296 Answer=[0, 0, 3, 11] (584) n=55566 Answer=[3, 0, 4, 1] (585) n=56000 Answer=[1, 3, 0, 6] (586) n=56250 Answer=[0, 5, 2, 1] (587) n=56448 Answer=[2, 0, 2, 7] (588) n=56700 Answer=[1, 2, 4, 2] (589) n=57344 Answer=[1, 0, 0, 13] (590) n=57600 Answer=[0, 2, 2, 8] (591) n=57624 Answer=[4, 0, 1, 3] (592) n=58320 Answer=[0, 1, 6, 4] (593) n=58800 Answer=[2, 2, 1, 4] (594) n=59049 Answer=[0, 0, 10, 0] (595) n=59535 Answer=[2, 1, 5, 0] (596) n=60000 Answer=[0, 4, 1, 5] (597) n=60025 Answer=[4, 2, 0, 0] (598) n=60480 Answer=[1, 1, 3, 6] (599) n=60750 Answer=[0, 3, 5, 1] (600) n=61236 Answer=[1, 0, 7, 2] (601) n=61250 Answer=[2, 4, 0, 1] (602) n=61440 Answer=[0, 1, 1, 12] (603) n=61740 Answer=[3, 1, 2, 2] (604) n=62208 Answer=[0, 0, 5, 8] (605) n=62500 Answer=[0, 6, 0, 2] (606) n=62720 Answer=[2, 1, 0, 8] (607) n=63000 Answer=[1, 3, 2, 3] (608) n=63504 Answer=[2, 0, 4, 4] (609) n=64000 Answer=[0, 3, 0, 9] (610) n=64512 Answer=[1, 0, 2, 10] (611) n=64800 Answer=[0, 2, 4, 5] (612) n=64827 Answer=[4, 0, 3, 0] (613) n=65536 Answer=[0, 0, 0, 16] (614) n=65610 Answer=[0, 1, 8, 1] (615) n=65625 Answer=[1, 5, 1, 0] (616) n=65856 Answer=[3, 0, 1, 6] (617) n=66150 Answer=[2, 2, 3, 1] (618) n=67200 Answer=[1, 2, 1, 7] (619) n=67228 Answer=[5, 0, 0, 2] (620) n=67500 Answer=[0, 4, 3, 2] (621) n=68040 Answer=[1, 1, 5, 3] (622) n=68600 Answer=[3, 2, 0, 3] (623) n=69120 Answer=[0, 1, 3, 9] (624) n=69984 Answer=[0, 0, 7, 5] (625) n=70000 Answer=[1, 4, 0, 4] (626) n=70560 Answer=[2, 1, 2, 5] (627) n=70875 Answer=[1, 3, 4, 0] (628) n=71442 Answer=[2, 0, 6, 1] (629) n=71680 Answer=[1, 1, 0, 11] (630) n=72000 Answer=[0, 3, 2, 6] (631) n=72030 Answer=[4, 1, 1, 1] (632) n=72576 Answer=[1, 0, 4, 7] (633) n=72900 Answer=[0, 2, 6, 2] (634) n=73500 Answer=[2, 3, 1, 2] (635) n=73728 Answer=[0, 0, 2, 13] (636) n=74088 Answer=[3, 0, 3, 3] (637) n=75000 Answer=[0, 5, 1, 3] (638) n=75264 Answer=[2, 0, 1, 9] (639) n=75600 Answer=[1, 2, 3, 4] (640) n=76545 Answer=[1, 1, 7, 0] (641) n=76800 Answer=[0, 2, 1, 10] (642) n=76832 Answer=[4, 0, 0, 5] (643) n=77175 Answer=[3, 2, 2, 0] (644) n=77760 Answer=[0, 1, 5, 6] (645) n=78125 Answer=[0, 7, 0, 0] (646) n=78400 Answer=[2, 2, 0, 6] (647) n=78732 Answer=[0, 0, 9, 2] (648) n=78750 Answer=[1, 4, 2, 1] (649) n=79380 Answer=[2, 1, 4, 2] (650) n=80000 Answer=[0, 4, 0, 7] (651) n=80640 Answer=[1, 1, 2, 8] (652) n=81000 Answer=[0, 3, 4, 3] (653) n=81648 Answer=[1, 0, 6, 4] (654) n=81920 Answer=[0, 1, 0, 14] (655) n=82320 Answer=[3, 1, 1, 4] (656) n=82944 Answer=[0, 0, 4, 10] (657) n=83349 Answer=[3, 0, 5, 0] (658) n=84000 Answer=[1, 3, 1, 5] (659) n=84035 Answer=[5, 1, 0, 0] (660) n=84375 Answer=[0, 5, 3, 0] (661) n=84672 Answer=[2, 0, 3, 6] (662) n=85050 Answer=[1, 2, 5, 1] (663) n=85750 Answer=[3, 3, 0, 1] (664) n=86016 Answer=[1, 0, 1, 12] (665) n=86400 Answer=[0, 2, 3, 7] (666) n=86436 Answer=[4, 0, 2, 2] (667) n=87480 Answer=[0, 1, 7, 3] (668) n=87500 Answer=[1, 5, 0, 2] (669) n=87808 Answer=[3, 0, 0, 8] (670) n=88200 Answer=[2, 2, 2, 3] (671) n=89600 Answer=[1, 2, 0, 9] (672) n=90000 Answer=[0, 4, 2, 4] (673) n=90720 Answer=[1, 1, 4, 5] (674) n=91125 Answer=[0, 3, 6, 0] (675) n=91854 Answer=[1, 0, 8, 1] (676) n=91875 Answer=[2, 4, 1, 0] (677) n=92160 Answer=[0, 1, 2, 11] (678) n=92610 Answer=[3, 1, 3, 1] (679) n=93312 Answer=[0, 0, 6, 7] (680) n=93750 Answer=[0, 6, 1, 1] (681) n=94080 Answer=[2, 1, 1, 7] (682) n=94500 Answer=[1, 3, 3, 2] (683) n=95256 Answer=[2, 0, 5, 3] (684) n=96000 Answer=[0, 3, 1, 8] (685) n=96040 Answer=[4, 1, 0, 3] (686) n=96768 Answer=[1, 0, 3, 9] (687) n=97200 Answer=[0, 2, 5, 4] (688) n=98000 Answer=[2, 3, 0, 4] (689) n=98304 Answer=[0, 0, 1, 15] (690) n=98415 Answer=[0, 1, 9, 0] (691) n=98784 Answer=[3, 0, 2, 5] (692) n=99225 Answer=[2, 2, 4, 0] (693) n=100000 Answer=[0, 5, 0, 5] (694) n=100352 Answer=[2, 0, 0, 11] (695) n=100800 Answer=[1, 2, 2, 6] (696) n=100842 Answer=[5, 0, 1, 1] (697) n=101250 Answer=[0, 4, 4, 1] (698) n=102060 Answer=[1, 1, 6, 2] (699) n=102400 Answer=[0, 2, 0, 12] (700) n=102900 Answer=[3, 2, 1, 2] (701) n=103680 Answer=[0, 1, 4, 8] (702) n=104976 Answer=[0, 0, 8, 4] (703) n=105000 Answer=[1, 4, 1, 3] (704) n=105840 Answer=[2, 1, 3, 4] (705) n=107163 Answer=[2, 0, 7, 0] (706) n=107520 Answer=[1, 1, 1, 10] (707) n=108000 Answer=[0, 3, 3, 5] (708) n=108045 Answer=[4, 1, 2, 0] (709) n=108864 Answer=[1, 0, 5, 6] (710) n=109350 Answer=[0, 2, 7, 1] (711) n=109375 Answer=[1, 6, 0, 0] (712) n=109760 Answer=[3, 1, 0, 6] (713) n=110250 Answer=[2, 3, 2, 1] (714) n=110592 Answer=[0, 0, 3, 12] (715) n=111132 Answer=[3, 0, 4, 2] (716) n=112000 Answer=[1, 3, 0, 7] (717) n=112500 Answer=[0, 5, 2, 2] (718) n=112896 Answer=[2, 0, 2, 8] (719) n=113400 Answer=[1, 2, 4, 3] (720) n=114688 Answer=[1, 0, 0, 14] (721) n=115200 Answer=[0, 2, 2, 9] (722) n=115248 Answer=[4, 0, 1, 4] (723) n=116640 Answer=[0, 1, 6, 5] (724) n=117600 Answer=[2, 2, 1, 5] (725) n=117649 Answer=[6, 0, 0, 0] (726) n=118098 Answer=[0, 0, 10, 1] (727) n=118125 Answer=[1, 4, 3, 0] (728) n=119070 Answer=[2, 1, 5, 1] (729) n=120000 Answer=[0, 4, 1, 6] (730) n=120050 Answer=[4, 2, 0, 1] (731) n=120960 Answer=[1, 1, 3, 7] (732) n=121500 Answer=[0, 3, 5, 2] (733) n=122472 Answer=[1, 0, 7, 3] (734) n=122500 Answer=[2, 4, 0, 2] (735) n=122880 Answer=[0, 1, 1, 13] (736) n=123480 Answer=[3, 1, 2, 3] (737) n=124416 Answer=[0, 0, 5, 9] (738) n=125000 Answer=[0, 6, 0, 3] (739) n=125440 Answer=[2, 1, 0, 9] (740) n=126000 Answer=[1, 3, 2, 4] (741) n=127008 Answer=[2, 0, 4, 5] (742) n=127575 Answer=[1, 2, 6, 0] (743) n=128000 Answer=[0, 3, 0, 10] (744) n=128625 Answer=[3, 3, 1, 0] (745) n=129024 Answer=[1, 0, 2, 11] (746) n=129600 Answer=[0, 2, 4, 6] (747) n=129654 Answer=[4, 0, 3, 1] (748) n=131072 Answer=[0, 0, 0, 17] (749) n=131220 Answer=[0, 1, 8, 2] (750) n=131250 Answer=[1, 5, 1, 1] (751) n=131712 Answer=[3, 0, 1, 7] (752) n=132300 Answer=[2, 2, 3, 2] (753) n=134400 Answer=[1, 2, 1, 8] (754) n=134456 Answer=[5, 0, 0, 3] (755) n=135000 Answer=[0, 4, 3, 3] (756) n=136080 Answer=[1, 1, 5, 4] (757) n=137200 Answer=[3, 2, 0, 4] (758) n=137781 Answer=[1, 0, 9, 0] (759) n=138240 Answer=[0, 1, 3, 10] (760) n=138915 Answer=[3, 1, 4, 0] (761) n=139968 Answer=[0, 0, 7, 6] (762) n=140000 Answer=[1, 4, 0, 5] (763) n=140625 Answer=[0, 6, 2, 0] (764) n=141120 Answer=[2, 1, 2, 6] (765) n=141750 Answer=[1, 3, 4, 1] (766) n=142884 Answer=[2, 0, 6, 2] (767) n=143360 Answer=[1, 1, 0, 12] (768) n=144000 Answer=[0, 3, 2, 7] (769) n=144060 Answer=[4, 1, 1, 2] (770) n=145152 Answer=[1, 0, 4, 8] (771) n=145800 Answer=[0, 2, 6, 3] (772) n=147000 Answer=[2, 3, 1, 3] (773) n=147456 Answer=[0, 0, 2, 14] (774) n=148176 Answer=[3, 0, 3, 4] (775) n=150000 Answer=[0, 5, 1, 4] (776) n=150528 Answer=[2, 0, 1, 10] (777) n=151200 Answer=[1, 2, 3, 5] (778) n=151263 Answer=[5, 0, 2, 0] (779) n=151875 Answer=[0, 4, 5, 0] (780) n=153090 Answer=[1, 1, 7, 1] (781) n=153125 Answer=[2, 5, 0, 0] (782) n=153600 Answer=[0, 2, 1, 11] (783) n=153664 Answer=[4, 0, 0, 6] (784) n=154350 Answer=[3, 2, 2, 1] (785) n=155520 Answer=[0, 1, 5, 7] (786) n=156250 Answer=[0, 7, 0, 1] (787) n=156800 Answer=[2, 2, 0, 7] (788) n=157464 Answer=[0, 0, 9, 3] (789) n=157500 Answer=[1, 4, 2, 2] (790) n=158760 Answer=[2, 1, 4, 3] (791) n=160000 Answer=[0, 4, 0, 8] (792) n=161280 Answer=[1, 1, 2, 9] (793) n=162000 Answer=[0, 3, 4, 4] (794) n=163296 Answer=[1, 0, 6, 5] (795) n=163840 Answer=[0, 1, 0, 15] (796) n=164025 Answer=[0, 2, 8, 0] (797) n=164640 Answer=[3, 1, 1, 5] (798) n=165375 Answer=[2, 3, 3, 0] (799) n=165888 Answer=[0, 0, 4, 11] (800) n=166698 Answer=[3, 0, 5, 1] (801) n=168000 Answer=[1, 3, 1, 6] (802) n=168070 Answer=[5, 1, 0, 1] (803) n=168750 Answer=[0, 5, 3, 1] (804) n=169344 Answer=[2, 0, 3, 7] (805) n=170100 Answer=[1, 2, 5, 2] (806) n=171500 Answer=[3, 3, 0, 2] (807) n=172032 Answer=[1, 0, 1, 13] (808) n=172800 Answer=[0, 2, 3, 8] (809) n=172872 Answer=[4, 0, 2, 3] (810) n=174960 Answer=[0, 1, 7, 4] (811) n=175000 Answer=[1, 5, 0, 3] (812) n=175616 Answer=[3, 0, 0, 9] (813) n=176400 Answer=[2, 2, 2, 4] (814) n=177147 Answer=[0, 0, 11, 0] (815) n=178605 Answer=[2, 1, 6, 0] (816) n=179200 Answer=[1, 2, 0, 10] (817) n=180000 Answer=[0, 4, 2, 5] (818) n=180075 Answer=[4, 2, 1, 0] (819) n=181440 Answer=[1, 1, 4, 6] (820) n=182250 Answer=[0, 3, 6, 1] (821) n=183708 Answer=[1, 0, 8, 2] (822) n=183750 Answer=[2, 4, 1, 1] (823) n=184320 Answer=[0, 1, 2, 12] (824) n=185220 Answer=[3, 1, 3, 2] (825) n=186624 Answer=[0, 0, 6, 8] (826) n=187500 Answer=[0, 6, 1, 2] (827) n=188160 Answer=[2, 1, 1, 8] (828) n=189000 Answer=[1, 3, 3, 3] (829) n=190512 Answer=[2, 0, 5, 4] (830) n=192000 Answer=[0, 3, 1, 9] (831) n=192080 Answer=[4, 1, 0, 4] (832) n=193536 Answer=[1, 0, 3, 10] (833) n=194400 Answer=[0, 2, 5, 5] (834) n=194481 Answer=[4, 0, 4, 0] (835) n=196000 Answer=[2, 3, 0, 5] (836) n=196608 Answer=[0, 0, 1, 16] (837) n=196830 Answer=[0, 1, 9, 1] (838) n=196875 Answer=[1, 5, 2, 0] (839) n=197568 Answer=[3, 0, 2, 6] (840) n=198450 Answer=[2, 2, 4, 1] (841) n=200000 Answer=[0, 5, 0, 6] (842) n=200704 Answer=[2, 0, 0, 12] (843) n=201600 Answer=[1, 2, 2, 7] (844) n=201684 Answer=[5, 0, 1, 2] (845) n=202500 Answer=[0, 4, 4, 2] (846) n=204120 Answer=[1, 1, 6, 3] (847) n=204800 Answer=[0, 2, 0, 13] (848) n=205800 Answer=[3, 2, 1, 3] (849) n=207360 Answer=[0, 1, 4, 9] (850) n=209952 Answer=[0, 0, 8, 5] (851) n=210000 Answer=[1, 4, 1, 4] (852) n=211680 Answer=[2, 1, 3, 5] (853) n=212625 Answer=[1, 3, 5, 0] (854) n=214326 Answer=[2, 0, 7, 1] (855) n=214375 Answer=[3, 4, 0, 0] (856) n=215040 Answer=[1, 1, 1, 11] (857) n=216000 Answer=[0, 3, 3, 6] (858) n=216090 Answer=[4, 1, 2, 1] (859) n=217728 Answer=[1, 0, 5, 7] (860) n=218700 Answer=[0, 2, 7, 2] (861) n=218750 Answer=[1, 6, 0, 1] (862) n=219520 Answer=[3, 1, 0, 7] (863) n=220500 Answer=[2, 3, 2, 2] (864) n=221184 Answer=[0, 0, 3, 13] (865) n=222264 Answer=[3, 0, 4, 3] (866) n=224000 Answer=[1, 3, 0, 8] (867) n=225000 Answer=[0, 5, 2, 3] (868) n=225792 Answer=[2, 0, 2, 9] (869) n=226800 Answer=[1, 2, 4, 4] (870) n=229376 Answer=[1, 0, 0, 15] (871) n=229635 Answer=[1, 1, 8, 0] (872) n=230400 Answer=[0, 2, 2, 10] (873) n=230496 Answer=[4, 0, 1, 5] (874) n=231525 Answer=[3, 2, 3, 0] (875) n=233280 Answer=[0, 1, 6, 6] (876) n=234375 Answer=[0, 7, 1, 0] (877) n=235200 Answer=[2, 2, 1, 6] (878) n=235298 Answer=[6, 0, 0, 1] (879) n=236196 Answer=[0, 0, 10, 2] (880) n=236250 Answer=[1, 4, 3, 1] (881) n=238140 Answer=[2, 1, 5, 2] (882) n=240000 Answer=[0, 4, 1, 7] (883) n=240100 Answer=[4, 2, 0, 2] (884) n=241920 Answer=[1, 1, 3, 8] (885) n=243000 Answer=[0, 3, 5, 3] (886) n=244944 Answer=[1, 0, 7, 4] (887) n=245000 Answer=[2, 4, 0, 3] (888) n=245760 Answer=[0, 1, 1, 14] (889) n=246960 Answer=[3, 1, 2, 4] (890) n=248832 Answer=[0, 0, 5, 10] (891) n=250000 Answer=[0, 6, 0, 4] (892) n=250047 Answer=[3, 0, 6, 0] (893) n=250880 Answer=[2, 1, 0, 10] (894) n=252000 Answer=[1, 3, 2, 5] (895) n=252105 Answer=[5, 1, 1, 0] (896) n=253125 Answer=[0, 5, 4, 0] (897) n=254016 Answer=[2, 0, 4, 6] (898) n=255150 Answer=[1, 2, 6, 1] (899) n=256000 Answer=[0, 3, 0, 11] (900) n=257250 Answer=[3, 3, 1, 1] (901) n=258048 Answer=[1, 0, 2, 12] (902) n=259200 Answer=[0, 2, 4, 7] (903) n=259308 Answer=[4, 0, 3, 2] (904) n=262144 Answer=[0, 0, 0, 18] (905) n=262440 Answer=[0, 1, 8, 3] (906) n=262500 Answer=[1, 5, 1, 2] (907) n=263424 Answer=[3, 0, 1, 8] (908) n=264600 Answer=[2, 2, 3, 3] (909) n=268800 Answer=[1, 2, 1, 9] (910) n=268912 Answer=[5, 0, 0, 4] (911) n=270000 Answer=[0, 4, 3, 4] (912) n=272160 Answer=[1, 1, 5, 5] (913) n=273375 Answer=[0, 3, 7, 0] (914) n=274400 Answer=[3, 2, 0, 5] (915) n=275562 Answer=[1, 0, 9, 1] (916) n=275625 Answer=[2, 4, 2, 0] (917) n=276480 Answer=[0, 1, 3, 11] (918) n=277830 Answer=[3, 1, 4, 1] (919) n=279936 Answer=[0, 0, 7, 7] (920) n=280000 Answer=[1, 4, 0, 6] (921) n=281250 Answer=[0, 6, 2, 1] (922) n=282240 Answer=[2, 1, 2, 7] (923) n=283500 Answer=[1, 3, 4, 2] (924) n=285768 Answer=[2, 0, 6, 3] (925) n=286720 Answer=[1, 1, 0, 13] (926) n=288000 Answer=[0, 3, 2, 8] (927) n=288120 Answer=[4, 1, 1, 3] (928) n=290304 Answer=[1, 0, 4, 9] (929) n=291600 Answer=[0, 2, 6, 4] (930) n=294000 Answer=[2, 3, 1, 4] (931) n=294912 Answer=[0, 0, 2, 15] (932) n=295245 Answer=[0, 1, 10, 0] (933) n=296352 Answer=[3, 0, 3, 5] (934) n=297675 Answer=[2, 2, 5, 0] (935) n=300000 Answer=[0, 5, 1, 5] (936) n=300125 Answer=[4, 3, 0, 0] (937) n=301056 Answer=[2, 0, 1, 11] (938) n=302400 Answer=[1, 2, 3, 6] (939) n=302526 Answer=[5, 0, 2, 1] (940) n=303750 Answer=[0, 4, 5, 1] (941) n=306180 Answer=[1, 1, 7, 2] (942) n=306250 Answer=[2, 5, 0, 1] (943) n=307200 Answer=[0, 2, 1, 12] (944) n=307328 Answer=[4, 0, 0, 7] (945) n=308700 Answer=[3, 2, 2, 2] (946) n=311040 Answer=[0, 1, 5, 8] (947) n=312500 Answer=[0, 7, 0, 2] (948) n=313600 Answer=[2, 2, 0, 8] (949) n=314928 Answer=[0, 0, 9, 4] (950) n=315000 Answer=[1, 4, 2, 3] (951) n=317520 Answer=[2, 1, 4, 4] (952) n=320000 Answer=[0, 4, 0, 9] (953) n=321489 Answer=[2, 0, 8, 0] (954) n=322560 Answer=[1, 1, 2, 10] (955) n=324000 Answer=[0, 3, 4, 5] (956) n=324135 Answer=[4, 1, 3, 0] (957) n=326592 Answer=[1, 0, 6, 6] (958) n=327680 Answer=[0, 1, 0, 16] (959) n=328050 Answer=[0, 2, 8, 1] (960) n=328125 Answer=[1, 6, 1, 0] (961) n=329280 Answer=[3, 1, 1, 6] (962) n=330750 Answer=[2, 3, 3, 1] (963) n=331776 Answer=[0, 0, 4, 12] (964) n=333396 Answer=[3, 0, 5, 2] (965) n=336000 Answer=[1, 3, 1, 7] (966) n=336140 Answer=[5, 1, 0, 2] (967) n=337500 Answer=[0, 5, 3, 2] (968) n=338688 Answer=[2, 0, 3, 8] (969) n=340200 Answer=[1, 2, 5, 3] (970) n=343000 Answer=[3, 3, 0, 3] (971) n=344064 Answer=[1, 0, 1, 14] (972) n=345600 Answer=[0, 2, 3, 9] (973) n=345744 Answer=[4, 0, 2, 4] (974) n=349920 Answer=[0, 1, 7, 5] (975) n=350000 Answer=[1, 5, 0, 4] (976) n=351232 Answer=[3, 0, 0, 10] (977) n=352800 Answer=[2, 2, 2, 5] (978) n=352947 Answer=[6, 0, 1, 0] (979) n=354294 Answer=[0, 0, 11, 1] (980) n=354375 Answer=[1, 4, 4, 0] (981) n=357210 Answer=[2, 1, 6, 1] (982) n=358400 Answer=[1, 2, 0, 11] (983) n=360000 Answer=[0, 4, 2, 6] (984) n=360150 Answer=[4, 2, 1, 1] (985) n=362880 Answer=[1, 1, 4, 7] (986) n=364500 Answer=[0, 3, 6, 2] (987) n=367416 Answer=[1, 0, 8, 3] (988) n=367500 Answer=[2, 4, 1, 2] (989) n=368640 Answer=[0, 1, 2, 13] (990) n=370440 Answer=[3, 1, 3, 3] (991) n=373248 Answer=[0, 0, 6, 9] (992) n=375000 Answer=[0, 6, 1, 3] (993) n=376320 Answer=[2, 1, 1, 9] (994) n=378000 Answer=[1, 3, 3, 4] (995) n=381024 Answer=[2, 0, 5, 5] (996) n=382725 Answer=[1, 2, 7, 0] (997) n=384000 Answer=[0, 3, 1, 10] (998) n=384160 Answer=[4, 1, 0, 5] (999) n=385875 Answer=[3, 3, 2, 0] (1000) n=387072 Answer=[1, 0, 3, 11] </code></pre> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 満足かだぜ、お父ん?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 現代のパソコンでも 計算は1秒では終わらないんだなあ」</p> <pre><code>(0) n=1 Answer=[0, 0, 0, 0] (9) n=10 Answer=[0, 1, 0, 1] (45) n=100 Answer=[0, 2, 0, 2] (140) n=1000 Answer=[0, 3, 0, 3] (337) n=10000 Answer=[0, 4, 0, 4] (693) n=100000 Answer=[0, 5, 0, 5] </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 10倍の価値の現れ方が 面白いよな?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 指数の底(てい)が 2 と 5 ですからねえ」</p> <h1 id="対数を使って、アルゴリズムを高速化しようぜ?"><a href="#%E5%AF%BE%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%80%81%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%82%92%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%97%E3%82%88%E3%81%86%E3%81%9C%EF%BC%9F">対数を使って、アルゴリズムを高速化しようぜ?</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 n が 30万を超えてくると、割り切れる数を探すだけで 数秒かかってるしな……」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ベクトルの成分、 20 が出てくることも稀なのに 100 で回してるしな」</p> <pre><code class="plaintext">(904) n=262144 Answer=[0, 0, 0, 18] </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 例えば 2 の 18乗は 262144 だが、<br /> 底(てい)を2とする 262144 の対数は 18 だぜ。 <code>log2 262144 = 18</code>」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ループする回数を、対数を使って 決めましょう」</p> <pre><code class="py"># 素因数分解の練習 # # cd math/prime_factorization # python step1_1.py import math def factorize(n, debug=True): # int( ... ) だと、取りこぼしてしまうようだ。 math.ceil( ... ) とした # + 1 が必要 a_max = math.ceil(math.log(n, 7))+1 b_max = math.ceil(math.log(n, 5))+1 c_max = math.ceil(math.log(n, 3))+1 d_max = math.ceil(math.log(n, 2))+1 for a in reversed(range(0,a_max)): aa = 7 ** a # n 以下の小さな合成数 7a なら、とりあえず n から、それを引く if aa <= n: remain = n - aa if debug: print(f"(7x{a}) remain:{remain}") # 割り切れた if remain == 0: return [a, 0, 0, 0] # 余った数で続きをやる for b in reversed(range(0,b_max)): bb = aa * 5 ** b if bb <= n: remain = n - bb if debug: print(f"\t(7x{a} x 5x{b}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, 0, 0] # 余った数で続きをやる for c in reversed(range(0,c_max)): cc = bb * 3 ** c if cc <= n: remain = n - cc if debug: print(f"\t\t(7x{a} x 5x{b} x 3x{c}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, 0] # 余った数で続きをやる for d in reversed(range(0,d_max)): dd = cc * 2 ** d if dd <= n: remain = n - dd if debug: print(f"\t\t\t(7x{a} x 5x{b} x 3x{c} x 2x{d}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, d] if __name__ == "__main__": print("""\ ある正の整数 n があるとする。 とりあえず n は 1~100 ぐらいを考えておく。 n を 2, 3, 5, 7 の素数で素因数分解する。 答えがいくつかあるとき、大きな数を多く使ったものを 1つ 選ぶことにする。 """) print("Please input number:") n = int(input()) print(f"Anser:{factorize(n)}") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 だいぶ速くなったけど、まだ遅い。一瞬で終わってほしいぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 累乗が遅くないか? 最初に a_max を指数にして累乗を求めて、 ループの終わりで 7 で割っていったらどうだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 速度を比較してみるか。 Python で ストップウォッチの書き方は?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/67702626/how-to-start-stopwatch-in-python">How to start stopwatch in python [duplicate]</a></p> <pre><code class="py">import time start = time.time() # &lt;code to time&gt; end = time.time() print(f"Time taken to run the code was {end-start} seconds") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 よっしゃ」</p> <pre><code class="py"># 素因数分解の練習 # # cd math/prime_factorization # python step3_0.py import time #from step1 import factorize from step1_1_0 import factorize #from step1_2_0 import factorize start = time.time() n = 1 for i in range(0,1001): # 答えが出るまで繰り返す while True: answer = factorize(n, debug=False) if answer is not None: print(f"({i}) n={n} Answer={answer}") n += 1 if answer is not None: break end = time.time() print(f"Time: {end-start} seconds") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これで時間計測だ。さっきのソースは <code>Time: 108.6974413394928 seconds</code> だった」</p> <pre><code class="py"># 素因数分解の練習 # # cd math/prime_factorization # python step1_2_0.py import math def factorize(n, debug=True): # int( ... ) だと、取りこぼしてしまうようだ。 math.ceil( ... ) とした # + 1 が必要 a_max = math.ceil(math.log(n, 7))+1 b_max = math.ceil(math.log(n, 5))+1 c_max = math.ceil(math.log(n, 3))+1 d_max = math.ceil(math.log(n, 2))+1 aa = 7 ** a_max for a in reversed(range(0,a_max)): aa /= 7 # n 以下の小さな合成数 7a なら、とりあえず n から、それを引く if aa <= n: remain = n - aa if debug: print(f"(7x{a}) remain:{remain}") # 割り切れた if remain == 0: return [a, 0, 0, 0] # 余った数で続きをやる bb = 5 ** b_max for b in reversed(range(0,b_max)): bb /= 5 aabb = aa * bb if aabb <= n: remain = n - aabb if debug: print(f"\t(7x{a} x 5x{b}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, 0, 0] # 余った数で続きをやる cc = 3 ** c_max for c in reversed(range(0,c_max)): cc /= 3 aabbcc = aabb * cc if aabbcc <= n: remain = n - aabbcc if debug: print(f"\t\t(7x{a} x 5x{b} x 3x{c}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, 0] # 余った数で続きをやる dd = 2 ** d_max for d in reversed(range(0,d_max)): dd /= 2 aabbccdd = aabbcc * dd if aabbccdd <= n: remain = n - aabbccdd if debug: print(f"\t\t\t(7x{a} x 5x{b} x 3x{c} x 2x{d}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, d] if __name__ == "__main__": print("""\ ある正の整数 n があるとする。 とりあえず n は 1~100 ぐらいを考えておく。 n を 2, 3, 5, 7 の素数で素因数分解する。 答えがいくつかあるとき、大きな数を多く使ったものを 1つ 選ぶことにする。 """) print("Please input number:") n = int(input()) print(f"Anser:{factorize(n)}") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 このソースは <code>Time: 138.23809385299683 seconds</code>、 遅くなってるなあ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 状態なんか持ったら 遅いか」</p> <pre><code class="py"># 素因数分解の練習 # # cd math/prime_factorization # python step1_1_1_0.py import math def factorize(n, debug=True): # int( ... ) だと、取りこぼしてしまうようだ。 math.ceil( ... ) とした # + 1 が必要 a_max = math.ceil(math.log(n, 7))+1 b_max = math.ceil(math.log(n, 5))+1 c_max = math.ceil(math.log(n, 3))+1 d_max = math.ceil(math.log(n, 2))+1 reversed_a_list = list(reversed(range(0,a_max))) reversed_b_list = list(reversed(range(0,b_max))) reversed_c_list = list(reversed(range(0,c_max))) reversed_d_list = list(reversed(range(0,d_max))) for a in reversed_a_list: aa = 7 ** a # n 以下の小さな合成数 7a なら、とりあえず n から、それを引く if aa <= n: remain = n - aa if debug: print(f"(7x{a}) remain:{remain}") # 割り切れた if remain == 0: return [a, 0, 0, 0] # 余った数で続きをやる for b in reversed_b_list: bb = aa * 5 ** b if bb <= n: remain = n - bb if debug: print(f"\t(7x{a} x 5x{b}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, 0, 0] # 余った数で続きをやる for c in reversed_c_list: cc = bb * 3 ** c if cc <= n: remain = n - cc if debug: print(f"\t\t(7x{a} x 5x{b} x 3x{c}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, 0] # 余った数で続きをやる for d in reversed_d_list: dd = cc * 2 ** d if dd <= n: remain = n - dd if debug: print(f"\t\t\t(7x{a} x 5x{b} x 3x{c} x 2x{d}) remain:{remain}") # 割り切れた if remain == 0: return [a, b, c, d] if __name__ == "__main__": print("""\ ある正の整数 n があるとする。 とりあえず n は 1~100 ぐらいを考えておく。 n を 2, 3, 5, 7 の素数で素因数分解する。 答えがいくつかあるとき、大きな数を多く使ったものを 1つ 選ぶことにする。 """) print("Please input number:") n = int(input()) print(f"Anser:{factorize(n)}") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 リストの作成を ループの外に出したら <code>Time: 98.08642745018005 seconds</code> 10秒速くなったぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ビットコイン掘ってるみたいで 不毛な計算ねえ」</p> <h1 id="計算回そう"><a href="#%E8%A8%88%E7%AE%97%E5%9B%9E%E3%81%9D%E3%81%86">計算回そう</a></h1> <pre><code class="py"># 素因数分解の練習 # # cd math/prime_factorization # python step3_1_0.py import time #from step1 import factorize #from step1_1_0 import factorize from step1_1_1_0 import factorize # これが高速 #from step1_2_0 import factorize print("Start") start = time.time() n = 1 with open('data_time.txt', mode='w') as f_t: with open('data.txt', mode='w') as f: f.write("""\ i, n, 7, 5, 3, 2 ------, ----------, ----, ----, ----, ---- """) for i in range(0,1000001): # 答えが出るまで繰り返す while True: answer = factorize(n, debug=False) if answer is not None: f.write(f"{i:6}, {n:10}, {answer[0]:4}, {answer[1]:4}, {answer[2]:4}, {answer[3]:4}\n") n += 1 if answer is not None: break # 100件ごとにタイムを入れる if i % 100 == 0: end = time.time() f_t.write(f"# (i={i}) Time: {end-start} seconds\n") f_t.flush() # バッファーが溜まると書き出されるが、とりあえず毎回書きだす end = time.time() f_t.write(f"# (Finished) Time: {end-start} seconds\n") print("Finished") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 出力は、CSV フォーマットにしよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 終わったら、テキストファイルに保存したいな。<br /> ログみたいに 垂れ流した方がいいか」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 処理時間も出力しよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 100万件 計算するようにして、 これを寝ている間に実行しようぜ?」</p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18665 2023-11-28T21:56:53+09:00 2023-12-24T14:09:15+09:00 https://crieit.net/posts/Haskell-Ubuntu Haskell を Ubuntu にインストールできねーの(^〜^)? <h1 id="情報"><a href="#%E6%83%85%E5%A0%B1">情報</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/haskell-practice-on-ubuntu">haskell-practice-on-ubuntu</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 Haskel を Ubuntu にインストールできねーの?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 何度も失敗してるよな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 また イチからトライしましょう」</p> <h1 id="(📅2023-11-28 tue) Git Hub の使い方わかんねー(^〜^)"><a href="#%28%F0%9F%93%852023-11-28+tue%29+Git+Hub+%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%82%8F%E3%81%8B%E3%82%93%E3%81%AD%E3%83%BC%EF%BC%88%EF%BC%BE%E3%80%9C%EF%BC%BE%EF%BC%89">(📅2023-11-28 tue) Git Hub の使い方わかんねー(^〜^)</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 Windows と Ubuntu で Git Hub が違う」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 CLaunch の Ubuntu 版は無いの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 Visual Studio Code の Ubuntu 版は無いの?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ↓ うーん、そのうち 願いが叶えられそうなのは これかな?」</p> <h2 id="Visual Studio Code をインストールしようぜ(^〜^)?"><a href="#Visual+Studio+Code+%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%82%88%E3%81%86%E3%81%9C%EF%BC%88%EF%BC%BE%E3%80%9C%EF%BC%BE%EF%BC%89%EF%BC%9F">Visual Studio Code をインストールしようぜ(^〜^)?</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/yoshiyasu1111/items/e21a77ed68b52cb5f7c8">UbuntuにVSCodeをインストールする3つの方法</a></p> <p>Input:</p> <pre><code class="shell">sudo snap install --classic code </code></pre> <p>Output:</p> <pre><code class="plaintext">code 1a5daa3a from Visual Studio Code (vscode✓) installed </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ インストールされたらしいけど、どうやって起動する?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 <code>code</code> って打ちゃあ いいんじゃないの?」</p> <p>Input:</p> <pre><code class="shell">code </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ うおっ、CUI から GUI が出てきた メモ帳みたいだ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 コマンド・プロンプトと 似たようなもんなんじゃないか?」</p> <h2 id="git をインストールしようぜ(^〜^)?"><a href="#git+%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%82%88%E3%81%86%E3%81%9C%EF%BC%88%EF%BC%BE%E3%80%9C%EF%BC%BE%EF%BC%89%EF%BC%9F">git をインストールしようぜ(^〜^)?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 次、 git」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ↓ ほらよ」</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/tommy_g/items/771ac45b89b02e8a5d64">UbuntuにGitをインストールする</a></p> <p>Input:</p> <pre><code class="shell"># インストール sudo apt-get install git </code></pre> <p>Input:</p> <pre><code class="shell"># インストールできたか確認 dpkg -l git </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 バージョンは <code>1:2.34.1-1ubuntu1.10</code> って書いてあるぜ」</p> <pre><code class="shell"># git の初期設定 git config --global user.name [任意のユーザ名] git config --global user.email [任意のユーザ名] </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 覚えてねーっ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 メールアドレスは覚えてるだろ。 Git Hub を見ると お父んの名前は <code>muzudho</code> だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 初期設定したぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ↓ あとは ここを読めだぜ」</p> <p><a target="_blank" rel="nofollow noopener" href="https://tech-blog.rakus.co.jp/entry/20200529/git">【超入門】初心者のためのGitとGitHubの使い方</a></p> <p>Input:</p> <pre><code class="shell">git config --list </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 初期設定の中身が丸見えだぜ」</p> <h2 id="Git Hub にリポジトリを作ろうぜ(^〜^)?"><a href="#Git+Hub+%E3%81%AB%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86%E3%81%9C%EF%BC%88%EF%BC%BE%E3%80%9C%EF%BC%BE%EF%BC%89%EF%BC%9F">Git Hub にリポジトリを作ろうぜ(^〜^)?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↓ Web ブラウザーで Git Hub を開いて リポジトリーを作っておいたぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/haskell-practice-on-ubuntu">haskell-practice-on-ubuntu</a></p> <h2 id="Ubuntu にローカル・リポジトリを作ろうぜ(^〜^)?"><a href="#Ubuntu+%E3%81%AB%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%83%BB%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86%E3%81%9C%EF%BC%88%EF%BC%BE%E3%80%9C%EF%BC%BE%EF%BC%89%EF%BC%9F">Ubuntu にローカル・リポジトリを作ろうぜ(^〜^)?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 Ubuntu のローカルって、どこよ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ユーザーのホームになんかないか?」</p> <p>Input:</p> <pre><code class="shell">cd ~ ll </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 いっぱいあるが、ユーザーのホームって どこよ?」</p> <pre><code class="shell">cd Documents ll </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 GUI で見ると <code>Home/Documents</code> というところに いろいろ置くといいんじゃない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあそこで」</p> <pre><code class="shell">mkdir git_hub cd git_hub mkdir example1 cd example1 git init </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 おっ、 <code>Home/Documents/git_hub/example1</code> フォルダーの中に .git フォルダーが作られたぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ローカル・リポジトリを 新規作成するのではなくて、<br /> Git Hub のリポジトリを クローンしたかったのでは?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あっ、そうか……」</p> <h2 id="Git Hub のリポジトリをクローンしようぜ(^〜^)?"><a href="#Git+Hub+%E3%81%AE%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%81%97%E3%82%88%E3%81%86%E3%81%9C%EF%BC%88%EF%BC%BE%E3%80%9C%EF%BC%BE%EF%BC%89%EF%BC%9F">Git Hub のリポジトリをクローンしようぜ(^〜^)?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↓ Git Hub で こんなコマンドライン コピーしてきたけど、使えるのかな?」</p> <pre><code class="shell">gh repo clone muzudho/haskell-practice-on-ubuntu </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>gh</code> なんていうコマンド無かった」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 カレントディレクトリーを <code>Home/Documents/git_hub</code> へ移動」</p> <pre><code class="shell">git clone https://github.com/muzudho/haskell-practice-on-ubuntu </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 おっ、思ってる通り クローンできたぜ」</p> <h2 id="コミットとプッシュの練習をしようぜ(^〜^)?"><a href="#%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%A8%E3%83%97%E3%83%83%E3%82%B7%E3%83%A5%E3%81%AE%E7%B7%B4%E7%BF%92%E3%82%92%E3%81%97%E3%82%88%E3%81%86%E3%81%9C%EF%BC%88%EF%BC%BE%E3%80%9C%EF%BC%BE%EF%BC%89%EF%BC%9F">コミットとプッシュの練習をしようぜ(^〜^)?</a></h2> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 Git Hub へ ファイルをアップロードする練習をしなさいよ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>Home/Documents/git_hub/haskell-practice-on-ubuntu</code> へ、フォルダーやファイルを追加して」</p> <p>Input:</p> <pre><code class="plaintext">cd haskell-practice-on-ubuntu git add Docs git commit </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 なんか コメントを入れろと出てきたが 無視したった」</p> <p>Input:</p> <pre><code class="plaintext">git push origin </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ユーザー名と パスワードを入れろと 出てきたな、忘れたな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 思い出せだぜ!」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ダメだ 認証に失敗する」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↓ パスワード入力による認証は 削除されたそうよ」</p> <p><a target="_blank" rel="nofollow noopener" href="https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls">HTTPS URL を使用したクローン作成</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 文章を読んだだけで 難しそうだ」</p> <h2 id="Git Hub CLI をインストールしてみようぜ(^〜^)?"><a href="#Git+Hub+CLI+%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%E3%81%9C%EF%BC%88%EF%BC%BE%E3%80%9C%EF%BC%BE%EF%BC%89%EF%BC%9F">Git Hub CLI をインストールしてみようぜ(^〜^)?</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↓ なんだか分からないが Git Hub CLI をインストールしてみよう」</p> <p><a target="_blank" rel="nofollow noopener" href="https://docs.github.com/en/github-cli/github-cli/about-github-cli">About GitHub CLI</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 Ubuntu って、 Debian ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 Ubuntu は Debian ねえ」</p> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/cli/cli/blob/trunk/docs/install_linux.md">Installing gh on Linux and BSD</a></p> <p>Input:</p> <pre><code class="shell">type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y) curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ && sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ && sudo apt update \ && sudo apt install gh -y </code></pre> <p>Input:</p> <pre><code class="shell">sudo apt update </code></pre> <p>Input:</p> <pre><code class="shell">sudo apt install gh </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 手順は 踏んだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>gh</code> をインストールしたところで push できないぜ」</p> <pre><code class="shell">gh auth login </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 認証トークンを貼れ、とか出てくるが、なんのことだか」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 逆だ、コマンドラインからウェブ・ブラウザを開いて こっちから 認証コードを打ち込みに行くんだ。認証できた」</p> <p>Input:</p> <pre><code class="shell">git push </code></pre> <p>Output:</p> <pre><code class="plaintext">Everything up-to-date </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 別に何も起こってない」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>git commit</code> 、 nano エディターの使い方が分からんな。コメント入れて保存して」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>git push</code> 、これでどうか?」</p> <h2 id="よく使うコマンド"><a href="#%E3%82%88%E3%81%8F%E4%BD%BF%E3%81%86%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89">よく使うコマンド</a></h2> <pre><code class="bash">#cd レポジトリのディレクトリ git commit -a </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>git commit -a</code> で ローカルのリポジトリに ぶち込むらしい」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんか コメントを打鍵して <code>[Ctrl] + [O]</code> キーで <code>COMMIT_EDITMSG</code> ファイルを保存、<br /> <code>[Ctrl] + [X]</code> キーでエディターを終了」</p> <pre><code class="bash">git push </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>git push</code> で リモートのリポジトリに ぶち上げるらしい」</p> <h1 id="(📅 2023-12-20 ⏰ 19:18) まだ Haskell をインストールできていない"><a href="#%28%F0%9F%93%85+2023-12-20+%E2%8F%B0+19%3A18%29+%E3%81%BE%E3%81%A0+Haskell+%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84">(📅 2023-12-20 ⏰ 19:18) まだ Haskell をインストールできていない</a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 長いなあ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=haskell.haskell">VS Code Haskell Extension</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ Visual Studio Code に Haskell の拡張があるらしいんで、それを探してみるか」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.haskell.org/ghcup/">GHCup</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ さらに <code>GHCup</code> の説明を読めとあるぜ」</p> <pre><code class="bash">curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ さらに コマンドを叩けということらしい」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↓ イエスと答え続けていくと コマンドを打てと出てきた」</p> <pre><code class="bash">System requirements Please ensure the following distro packages are installed before continuing (you can exit ghcup and return at any time): build-essential curl libffi-dev libffi8ubuntu1 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ エンターキーを押したら処理が進んでるぜ」</p> <pre><code class="bash">=============================================================================== OK! /home/muzudho/.bashrc has been modified. Restart your terminal for the changes to take effect, or type "source /home/muzudho/.ghcup/env" to apply them in your current terminal session. =============================================================================== All done! To start a simple repl, run: ghci To start a new haskell project in the current directory, run: cabal init --interactive To install other GHC versions and tools, run: ghcup tui If you are new to Haskell, check out https://www.haskell.org/ghcup/steps/ </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ どうなった?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.haskell.org/ghcup/steps/">https://www.haskell.org/ghcup/steps/</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↑ URL を開いたらいいんじゃない?」</p> <pre><code class="bash">ghc --version Command 'ghc' not found, but can be installed with: sudo apt install ghc </code></pre> <pre><code class="bash">ghci --version Command 'ghci' not found, but can be installed with: sudo apt install ghc </code></pre> <pre><code class="bash">ghci Command 'ghci' not found, but can be installed with: sudo apt install ghc </code></pre> <pre><code class="bash">sudo apt install ghc </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ GHC がまだインストールされてなかった?」</p> <pre><code class="bash">ghc --version The Glorious Glasgow Haskell Compilation System, version 8.8.4 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ このハスケルが新しいか、ネットで調べるか」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://wiki.haskell.org/Haskell">https://wiki.haskell.org/Haskell</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 9.4.8 にアップデートするには どうすればいい?」</p> <pre><code class="bash">curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 分からんから もう1回コマンドを叩いて アペンドする」</p> <pre><code class="bash">ghci GHCi, version 8.8.4: https://www.haskell.org/ghc/ :? for help Prelude> </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ダメだ 古いやつが入ってしまう」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.haskell.org/ghc/blog/20231009-ghc-9.8.1-released.html">https://www.haskell.org/ghc/blog/20231009-ghc-9.8.1-released.html</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ こいつを どうやってインストールするか 調べてみるか」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 分からん」</p> <pre><code class="haskell">ghci GHCi, version 8.8.4: https://www.haskell.org/ghc/ :? for help Prelude> main = putStrLn "Hello, Haskell!" Prelude> Prelude> main Hello, Haskell! Prelude> </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 自分が何をやっているのか分からん」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.haskell.org/ghcup/steps/">https://www.haskell.org/ghcup/steps/</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ハスケルのファイル名は <code>hello.hs</code> みたいに名付けるそうよ」</p> <p>🗒 <code>hello.hs</code> :</p> <pre><code class="hs">main = putStrLn "Hello, Haskell!" </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ テキストファイルは こんなんでいいのかだぜ?」</p> <pre><code class="bash">ghc hello.hs </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ コンパイルが必要なようだぜ。 <code>hello</code>, <code>hello.hi</code>, <code>hello.o</code> ファイルが生成されたぜ」</p> <pre><code class="bash">./hello Hello, Haskell! </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>hello</code> コマンドができたのかだぜ? あっ、動いた」</p> <h2 id="ハスケルの構文とか何も分からん"><a href="#%E3%83%8F%E3%82%B9%E3%82%B1%E3%83%AB%E3%81%AE%E6%A7%8B%E6%96%87%E3%81%A8%E3%81%8B%E4%BD%95%E3%82%82%E5%88%86%E3%81%8B%E3%82%89%E3%82%93">ハスケルの構文とか何も分からん</a></h2> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 <code>ghci</code> がインタープリター・モードになってんじゃないの? それで練習するんじゃないの?」</p> <pre><code class="ghci">ghci GHCi, version 8.8.4: https://www.haskell.org/ghc/ :? for help Prelude> 1 + 1 2 Prelude> putStrLn "Hello, world!" Hello, world! </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ そのようだなあ」</p> <pre><code class="hs">Prelude> double x = x + x Prelude> double 2 4 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 数を2倍にする double 関数を作って 実行したようだぜ、飽きてきた」</p> <pre><code class="hs">Prelude> :{ Prelude| map f list = Prelude| case list of Prelude| [] -> [] Prelude| x : xs -> f x : map f xs Prelude| :} Prelude> Prelude> Prelude> </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ どうやって このモードから抜ける?」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://qiita.com/Izawa_/items/6fc0a7583dc71be48c2a">GHCiの基本的な使い方まとめ</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 <code>:q</code> じゃないの?」</p> <pre><code class="hs">Prelude> :q Leaving GHCi. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 確かに」</p> <pre><code class="hs">Prelude> :{ Prelude| map f list = Prelude| case list of Prelude| [] -> [] Prelude| x : xs -> f x : map f xs Prelude| :} Prelude> map <interactive>:7:1: error: • No instance for (Show ((t0 -> a0) -> [t0] -> [a0])) arising from a use of ‘print’ (maybe you haven't applied a function to enough arguments?) • In a stmt of an interactive GHCi command: print it Prelude> map (+1) [1, 2, 3] [2,3,4] </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 抜けたらダメだった 続けるのだった」</p> <pre><code class="hs">Prelude> :load hello.hs [1 of 1] Compiling Main ( hello.hs, interpreted ) Ok, one module loaded. *Main> main Hello, Haskell! </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ファイルの読み込み」</p> <pre><code class="hs">*Main> import Data.Bits *Main Data.Bits> shiftL 32 1 64 *Main Data.Bits> clearBit 33 0 32 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ モジュールをインポートして論理左シフトか?」</p> <pre><code class="hs">:type putStrLn putStrLn :: String -> IO () </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 型のヘルプでも見てんのか?」</p> <pre><code class="hs">:quit Leaving GHCi. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 終了」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 練習が全然足りないな」</p> <h1 id="キャベルもスタックも無い"><a href="#%E3%82%AD%E3%83%A3%E3%83%99%E3%83%AB%E3%82%82%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%82%E7%84%A1%E3%81%84">キャベルもスタックも無い</a></h1> <pre><code class="shell">cabal repl --build-depends async,say Command 'cabal' not found, but can be installed with: sudo apt install cabal-install stack exec --package async --package say -- ghci Command 'stack' not found, but can be installed with: sudo apt install haskell-stack </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ キャベルもスタックも無いが?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 Visual Studio の拡張ですからねえ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.haskell.org/ghcup/install/">https://www.haskell.org/ghcup/install/</a></p> <p>📺 <a target="_blank" rel="nofollow noopener" href="https://www.youtube.com/watch?v=bB4fmQiUYPw">https://www.youtube.com/watch?v=bB4fmQiUYPw</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 動画もあるが Windows で参考にならねー。飽きてきた」</p> <pre><code class="bash">curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh </code></pre> <pre><code class="bash">[ Warn ] [GHCup-00110] ghc-9.4.7 is already installed; if you really want to reinstall it, you may want to run 'ghcup install ghc --force 9.4.7' [ Info ] GHC 9.4.7 successfully set as default version [ Warn ] [GHCup-00110] cabal-3.6.2.0-p1 is already installed; if you really want to reinstall it, you may want to run 'ghcup install cabal --force 3.6.2.0-p1' </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ cabel はインストールされてるらしいが、コマンドは無い」</p> <pre><code class="bash">ghcup install cabal --force 3.6.2.0-p1 ghcup: command not found </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ <code>ghcup</code> コマンドも無いぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 <strong>Visual Studio Code を再起動</strong> してみては?」</p> <pre><code class="bash">ghcup --version The GHCup Haskell installer, version 0.1.20.0 </code></pre> <pre><code class="bash">ghc --version The Glorious Glasgow Haskell Compilation System, version 9.4.7 </code></pre> <pre><code class="bash">ghci --version The Glorious Glasgow Haskell Compilation System, version 9.4.7 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ インストールされてる……」</p> <pre><code class="bash">cabal repl --build-depends async,say </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 何をやってるか分からないが コマンドを叩くぜ」</p> <pre><code class="bash">Resolving dependencies... Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - hashable-1.4.3.0 (lib) (requires download & build) - say-0.1.0.1 (lib) (requires download & build) - async-2.2.5 (lib) (requires download & build) - fake-package-0 (lib) (first run) Downloading hashable-1.4.3.0 Downloaded hashable-1.4.3.0 Downloading async-2.2.5 Starting hashable-1.4.3.0 (lib) Building hashable-1.4.3.0 (lib) Downloaded async-2.2.5 Downloading say-0.1.0.1 Downloaded say-0.1.0.1 Starting say-0.1.0.1 (lib) Building say-0.1.0.1 (lib) Installing hashable-1.4.3.0 (lib) Installing say-0.1.0.1 (lib) Completed hashable-1.4.3.0 (lib) Starting async-2.2.5 (lib) Completed say-0.1.0.1 (lib) Building async-2.2.5 (lib) Installing async-2.2.5 (lib) Completed async-2.2.5 (lib) Configuring library for fake-package-0.. Preprocessing library for fake-package-0.. Warning: No exposed modules GHCi, version 9.4.7: https://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from /tmp/cabal-repl.-149129/setcwd.ghci ghci> </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 何のこっちゃ」</p> <pre><code class="hs">ghci> import Control.Concurrent.Async ghci> import Say ghci> concurrently_ (sayString "Hello") (sayString "World") Hello World </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 並行処理をしたんかな?」</p> <pre><code class="bash">:quit Leaving GHCi. </code></pre> <pre><code class="bash">cabal install --lib async say --package-env . </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ 何をやってるか分からないが コマンドを叩くぜ」</p> <pre><code class="bash">Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.6.2.0 supports 'ghc' version < 9.4): /home/muzudho/.ghcup/bin/ghc is version 9.4.7 Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.6.2.0 supports 'ghc' version < 9.4): /home/muzudho/.ghcup/bin/ghc is version 9.4.7 Resolving dependencies... Up to date </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ だんだん 嫌になってきた」</p> <h1 id="パッケージを作る?"><a href="#%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E4%BD%9C%E3%82%8B%EF%BC%9F">パッケージを作る?</a></h1> <pre><code class="bash">mkdir haskell-project cd haskell-project cabal init --interactive </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ わけもわからず打鍵」</p> <pre><code class="bash">Should I generate a simple project with sensible defaults? [default: y] Guessing dependencies... Generating LICENSE... Warning: unknown license type, you must put a copy in LICENSE yourself. Generating CHANGELOG.md... Generating src/MyLib.hs... Generating app/Main.hs... Generating haskell-project.cabal... Warning: no synopsis given. You should edit the .cabal file and add one. You may want to edit the .cabal file and add a Description field. </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんのこっちゃ」</p> <p>Input:</p> <pre><code class="bash">cabal build </code></pre> <p>Output:</p> <pre><code class="bash">Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.6.2.0 supports 'ghc' version < 9.4): /home/muzudho/.ghcup/bin/ghc is version 9.4.7 Resolving dependencies... Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - haskell-project-0.1.0.0 (lib) (first run) - haskell-project-0.1.0.0 (exe:haskell-project) (first run) Configuring library for haskell-project-0.1.0.0.. Preprocessing library for haskell-project-0.1.0.0.. Building library for haskell-project-0.1.0.0.. [1 of 1] Compiling MyLib ( src/MyLib.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/haskell-project/dist-newstyle/build/x86_64-linux/ghc-9.4.7/haskell-project-0.1.0.0/build/MyLib.o, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/haskell-project/dist-newstyle/build/x86_64-linux/ghc-9.4.7/haskell-project-0.1.0.0/build/MyLib.dyn_o ) Configuring executable 'haskell-project' for haskell-project-0.1.0.0.. Preprocessing executable 'haskell-project' for haskell-project-0.1.0.0.. Building executable 'haskell-project' for haskell-project-0.1.0.0.. [1 of 1] Compiling Main ( app/Main.hs, /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/haskell-project/dist-newstyle/build/x86_64-linux/ghc-9.4.7/haskell-project-0.1.0.0/x/haskell-project/build/haskell-project/haskell-project-tmp/Main.o ) [2 of 2] Linking /home/muzudho/Documents/git_hub/haskell-practice-on-ubuntu/haskell-project/dist-newstyle/build/x86_64-linux/ghc-9.4.7/haskell-project-0.1.0.0/x/haskell-project/build/haskell-project/haskell-project </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんのこっちゃ」</p> <p>Input:</p> <pre><code class="bash">cabal run </code></pre> <p>output:</p> <pre><code class="plaintext">Up to date Hello, Haskell! someFunc </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんのこっちゃ」</p> <h1 id="依存性の追加"><a href="#%E4%BE%9D%E5%AD%98%E6%80%A7%E3%81%AE%E8%BF%BD%E5%8A%A0">依存性の追加</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>haskell-project.cabal</code> ファイルを Visual Studio Code で開くぜ」</p> <p>🗒 <code>haskell-project.cabal</code>:</p> <pre><code class="cabal">cabal-version: 2.4 name: haskell-project version: 0.1.0.0 -- A short (one-line) description of the package. -- synopsis: -- A longer description of the package. -- description: -- A URL where users can report bugs. -- bug-reports: -- The license under which the package is released. -- license: author: muzudho maintainer: [email protected] -- A copyright notice. -- copyright: -- category: extra-source-files: CHANGELOG.md library exposed-modules: MyLib -- Modules included in this library but not exported. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: build-depends: base ^>=4.17.2.0 hs-source-dirs: src default-language: Haskell2010 executable haskell-project main-is: Main.hs -- Modules included in this executable, other than Main. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: build-depends: base ^>=4.17.2.0, haskell-project hs-source-dirs: app default-language: Haskell2010 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんのこっちゃ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 <code>src/MyLib.hs</code> ファイルを Visual Studio Code で開くぜ」</p> <p>🗒 <code>src/MyLib.hs</code> :</p> <pre><code class="hs">module MyLib (someFunc) where import System.Directory someFunc :: IO () someFunc = do contents <- listDirectory "src" putStrLn (show contents) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんのこっちゃ」</p> <h2 id="モジュールの追加"><a href="#%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E8%BF%BD%E5%8A%A0">モジュールの追加</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 以下のファイルを新規作成しろとのことだぜ」</p> <p>🗒 <code>src/OtherLib.hs</code> :</p> <pre><code class="hs">module OtherLib where otherFunc :: String -> Int otherFunc str = length str </code></pre> <pre><code class="bash">cabal repl ghci> import OtherLib <no location info>: error: Could not find module ‘OtherLib’ It is not a module in the current program, or in any known package.``` </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ ダメだ エラーだ 終わった」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 何やってんの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 わからない。コピー貼り付けしてるだけ」</p> <p>🗒 <code>haskell-project.cabal</code>:</p> <pre><code class="cabal">library exposed-modules: MyLib </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↑ この部分を」</p> <p>🗒 <code>haskell-project.cabal</code>:</p> <pre><code class="cabal">library exposed-modules: MyLib OtherLib </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ↑ こう書き換えたらいいんじゃない?」</p> <pre><code class="bash">cabal repl Resolving dependencies... Build profile: -w ghc-9.4.7 -O1 In order, the following will be built (use -v for more details): - haskell-project-0.1.0.0 (lib) (configuration changed) Configuring library for haskell-project-0.1.0.0.. Preprocessing library for haskell-project-0.1.0.0.. GHCi, version 9.4.7: https://www.haskell.org/ghc/ :? for help [1 of 2] Compiling MyLib ( src/MyLib.hs, interpreted ) [2 of 2] Compiling OtherLib ( src/OtherLib.hs, interpreted ) Ok, two modules loaded. ghci> import OtherLib ghci> otherFunc "Hello Haskell" 13 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↑ なんか動いた。何をやってるか分からないぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 エグザンプルは ここで終わってるぜ。あとは勝手に調べろとのことだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 サンプル・プログラムを探そうぜ?」</p> <h1 id="(📅 2023-12-23 sat) サンプル・プログラムを探そうぜ?"><a href="#%28%F0%9F%93%85+2023-12-23+sat%29+%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%BB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E6%8E%A2%E3%81%9D%E3%81%86%E3%81%9C%EF%BC%9F">(📅 2023-12-23 sat) サンプル・プログラムを探そうぜ?</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ↓ ハスケルの素人はこれを観ろ、ということだぜ」</p> <ul> <li>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/haskell-beginners-2022/course-plan">https://github.com/haskell-beginners-2022/course-plan</a> <ul> <li>📺 <a target="_blank" rel="nofollow noopener" href="https://www.youtube.com/watch?v=6MsQcUprO9o&list=PLOJjn67NeYg9cWA4hyIWcxfaeX64pwo1c">Haskell Beginners 2022: Lecture 1</a> - 1時間23分</li> </ul></li> </ul> <h2 id="FP - Functional Programming"><a href="#FP+-+Functional+Programming">FP - Functional Programming</a></h2> <pre><code>fx(x) = x^2 </code></pre> <p>プログラミングの関数は、この数学の関数ではない</p> <ul> <li>無限ループでハングするから</li> <li>副作用があるから</li> <li>例外があるから</li> <li>メモリがなくなるから</li> </ul> <p>プログラミングの関数は</p> <ul> <li><p>ブロックを組み立てるようなもの</p> <ul> <li>Define</li> <li>Call</li> <li>Compose</li> <li>Pass as an argument</li> <li>Inspect</li> </ul></li> <li><p>FP Concepts</p> <ul> <li>Higher-Order Functions (HOF)</li> <li>Algebraic Data Types (ADT)</li> <li>Pattern Matching</li> <li>Purity</li> <li>Immutability</li> <li>Totality</li> <li>Laziness</li> </ul></li> <li><p>Haskell Features</p> <ul> <li>Static typing</li> <li>Polymorphisms</li> <li>Type inference</li> <li>Layout-sensitivity</li> <li>ML syntax</li> <li>Automatic currying</li> <li>Garbabe collector</li> <li>Green threads</li> <li>Software Transactional memory (STM)</li> <li>etc...</li> </ul></li> <li><p>Haskell Toolchain</p> <ul> <li>GHC (Glasgow Haskell Compiler) - the compiler</li> <li>GHCi (GHC interactive) - interactive interpreter aka REPL(Read-Eval-Print-Loop)</li> <li>cabal - a Haskell build tool, the .......</li> <li>stack</li> <li>HLS (Haskell Language Server)</li> <li>ghcup</li> </ul></li> <li><p>Haskell Toolchain / GHCi</p> <ul> <li>Arithmetic</li> <li>Logic</li> <li>Calling functions <ul> <li><code>()</code> are important!</li> </ul></li> <li>Types - 式は型を持つ。 <code>:t</code> や <code>:tpye</code> で型を見れる。 型の型は見れない</li> <li>Types of numbers - <code>:t +d</code> で調べる</li> <li><p>Types of functions -> <code>:t div</code> より、 <code>:t +d div</code> を使って調べる。2項の引数のとき、見やすい</p></li> <li><p>List</p> <ul> <li>List literals - <code>[]</code> の話。 <code>[] ++ []</code> とか</li> <li>List: head/tail/last/init <ul> <li>空リストの head は例外</li> </ul></li> <li>List: more functions <ul> <li>reverse</li> <li>take</li> <li>drop</li> <li>null</li> <li>elem</li> <li>concat</li> <li>length</li> <li><code>!!</code> - この操作は処理が遅い。インデックスを使ったランダムアクセスか?</li> </ul></li> <li>List: ranges <ul> <li><code>[1 .. 10]</code> や、 <code>[1, 3 .. 20]</code></li> <li><code>[10 .. 1]</code> は空っぽ。 <code>[10, 9 .. 1]</code> はできる</li> <li><code>[0 .. ]</code> インフィニティもできる</li> </ul></li> </ul></li> </ul></li> <li><p>Lazy evaluation</p> <ul> <li><code>take 3 [0 .. ]</code> で、 <code>[0, 1, 2]</code></li> <li><code>take 3 (drop 5 [0 .. ]</code> で、<code>[5,6,7]</code></li> <li><code>length [0 .. ]</code> - 終わらない。無限のリストには注意</li> </ul></li> <li><p>ディスプレイの信号が消えた</p></li> <li><p>Syntax</p> <ul> <li>Define a function</li> <li>Loading a module</li> </ul></li> <li><p>Packages</p> <ul> <li>module</li> <li>package</li> <li>Hackage</li> <li>base</li> <li>prelude</li> </ul></li> <li><p>if-then-else</p> <ul> <li><code>def list = if null list then def else head list</code></li> </ul></li> </ul> <pre><code class="hs">headOfDefault def list = if null list then def else head list </code></pre> <ul> <li>続き <ul> <li>guards - マッチ構文みたいなやつ</li> </ul></li> </ul> <pre><code>sign n | 略 </code></pre> <ul> <li><p>続き</p> <ul> <li><code>let-in</code> - リストに含まれているか調べる?</li> <li><code>where</code> - 関数定義で使う?</li> <li><code>immutablirity</code> - 1回だけ代入できるというもの</li> <li>How do you change if you can't? <ul> <li>Recursion</li> <li>No more loops</li> </ul></li> </ul></li> <li><p>Higher-order functions</p> <ul> <li>First-Class Functions</li> <li>Lambda functions</li> <li>Partial application</li> <li>Standard HOFs <ul> <li>map</li> <li>filter even</li> <li>filter</li> <li>any</li> <li>concatMap replicate</li> <li>take iterate</li> </ul></li> <li>Functions inside lists</li> <li>Recap: GHCi commands <ul> <li><code>:q</code></li> <li><code>:t</code></li> <li><code>:t +d</code></li> <li><code>:l</code></li> <li><code>:i</code></li> </ul></li> <li>More sources</li> </ul></li> </ul> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 フーム」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ↓ 基礎勉強は もういいだろ、コンピューター将棋を作ろうぜ?」</p> <p>📖 <a href="https://crieit.net/posts/Haskell-o">Haskell でコンピューター将棋を作ろうぜ(^o^)?</a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 レクチャーの動画は あと3本 あるみたいよ?</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 基礎勉強ばっかりだと飽きるんで 並行してやろう」</p> <h1 id="レクチャー2"><a href="#%E3%83%AC%E3%82%AF%E3%83%81%E3%83%A3%E3%83%BC%EF%BC%92">レクチャー2</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 すぐ 詰まる。動画見よ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.youtube.com/watch?v=rf-lie7U04Q">Haskell Beginners 2022: Lecture 2</a></p> <ul> <li>Pattern Matching <ul> <li>Pattern</li> <li><code>case-of</code> - スイッチ文みたいなやつか?</li> </ul></li> </ul> <pre><code class="hs">eval :: Char -> Int -> Int -> Int eval op x y = case op of '+' -> x + y '-' -> x - y '*' -> x * y '/' -> div x y _ -> 0 </code></pre> <ul> <li><p>続き</p> <ul> <li>Patterns on lists</li> <li>Structural List Patterns</li> <li>Heads or Tails?</li> <li>List Recursion</li> <li><code>What's wrong, Haskell?</code> - 書き方でコンパイル・エラーが出る例、エラーは出ないが悪い書き方の例</li> <li><code>Totality</code> - すべての入力に対して出力が定義されていることか? <ul> <li><code>Partial</code> - 非 total</li> </ul></li> </ul></li> <li><p>Data</p> <ul> <li>Tuples</li> <li>Working with tuples</li> <li>Algebraic Data Type (ADT) <ul> <li><code>Product Type</code> - 異なる型などを結合したもの <ul> <li><code>data: Product</code></li> <li><code>data: Working with data</code> - セッターとゲッターの書き方</li> <li><code>data: Records</code> - 構造体みたいなもん</li> </ul></li> <li><code>Sum Type</code> <ul> <li><code>Sum Types: Enumerations</code> - いわゆる列挙型</li> <li><code>Sum Types</code> - Result とか</li> <li><code>Recursive data types</code> <ul> <li><code>Empty list</code></li> <li><code>An eleement prepended to a list</code></li> </ul></li> <li><code>type</code> - type キーワード。型の別名? 式が見やすくなる</li> <li><code>newtype</code> - コンストラクタの別名??</li> </ul></li> </ul></li> </ul></li> <li>Polymorphism <ul> <li><code>Parametric polymorphism</code> - ジェネリクスみたいなやつ</li> <li><code>Real types</code></li> <li><code>Hoogle</code> - Haskell Search Engine</li> <li><code>Polymorphic types</code></li> <li><code>Common types</code> - Optional Value とか、左右とか</li> <li><code>Common Functions</code></li> </ul></li> <li>Back to Functions <ul> <li><code>Eta-reduction, part1</code></li> <li><code>Eta-reduction, part2</code></li> <li><code>Function Composition</code> <ul> <li><code>ELI5 Composition</code></li> </ul></li> <li><code>Composition + Eta-reduction</code></li> <li>More sources</li> </ul></li> </ul> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 はー、ふーん、うーん?」</p> <h1 id="レクチャー3"><a href="#%E3%83%AC%E3%82%AF%E3%83%81%E3%83%A3%E3%83%BC%EF%BC%93">レクチャー3</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.youtube.com/watch?v=Vs-vvlYLtRI">Haskell Beginners 2022: Lecture 3</a></p> <ul> <li>Common properties</li> <li>Polimorphisms <ul> <li><code>Parametric Polymorphism</code></li> <li><code>Ad-hoc polymorphism</code></li> </ul></li> <li>class</li> <li>instance</li> <li>Separation of concerns <ul> <li>data</li> <li>class</li> <li>instance</li> </ul></li> <li>Default methods</li> <li>Not Java Interfaces</li> <li><code>{-# LANGUAGE #-}</code> - ランゲージ・プラグマ。</li> <li>Standard Typeclasses <ul> <li>Eq</li> <li><code>Ord</code> - Ordering 比較演算子 <ul> <li>LT</li> <li>EQ</li> <li>GT</li> </ul></li> <li>Show</li> <li>Read</li> <li>Bounded</li> <li>Enum</li> <li>Num</li> </ul></li> <li>Type interface <ul> <li><code>deriving</code> - 派生</li> <li>Generaliz(s)edNewtypeDeriving</li> <li>Algebra <ul> <li><code><></code> - ダイヤモンド演算子</li> </ul></li> <li>newtype again</li> </ul></li> <li>Everything is Semigroup, Okay, not really everything... <ul> <li><code>Semigroup</code></li> </ul></li> <li>Algebra, part2 <ul> <li><code>Monoid</code></li> <li>Not everything is Monoid</li> </ul></li> <li>Modules</li> <li>Kind <ul> <li>Be kind to us, Haskell <ul> <li><code>Kind</code> - a type of a type</li> <li>Kindly check your types</li> </ul></li> </ul></li> <li>typeclass for type constructors</li> <li>Functor</li> <li><code>Functor laws</code> - 10種類 <ul> <li><code>1: Identity</code></li> <li><code>2: Composition</code></li> </ul></li> <li>Folds <ul> <li><code>ステップ関数</code></li> <li>Everything is a Fold</li> <li>How foldr folds <ul> <li>コンスピレーター</li> </ul></li> <li>How foldl/foldl' folds</li> <li>foldr vs foldl</li> <li>Foldable</li> </ul></li> <li>Strict evaluation <ul> <li><code>等式推論</code></li> </ul></li> <li><code>{-# LANGUAGE BangPatterns #-}</code></li> <li>Use strict/lazy evaluation wise.....</li> <li>More sources</li> </ul> <h1 id="レクチャー4"><a href="#%E3%83%AC%E3%82%AF%E3%83%81%E3%83%A3%E3%83%BC%EF%BC%94">レクチャー4</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.youtube.com/watch?v=12D4Y2Hdnhg">Haskell Beginners 2022: Lecture 4</a></p> <ul> <li>Monad: The Idea <ul> <li>Maybe, yes? Maybe, no? <ul> <li><code>andThen</code> - Ordinary helper function</li> <li>ワンライナーで書けるようになる</li> </ul></li> <li>Either way</li> <li>Multiple combinations</li> <li>It there a pattern?</li> <li>What to do when we see a pattern? <ul> <li><code>1. Nothing</code></li> <li><code>2. Recognize</code></li> <li><code>3. Copy-paste</code></li> <li><code>4. Abstract</code></li> <li><code>5. Put in a library</code></li> </ul></li> </ul></li> <li>Monad is a pattern <ul> <li>数学の圏論と違う。 Haskell は概念を借りてきただけ。</li> <li>Monad</li> <li><code>return</code> も関数</li> <li>Just a typeclass</li> <li>Instance</li> <li>Laws</li> </ul></li> <li>Generalizing <ul> <li><code>(:[])</code> - robot monkey operator</li> </ul></li> <li>Refactoring</li> <li>Actually, in Haskell... <ul> <li><code>pure</code> - ハスケルでは return の代わりに pure をよく使う</li> </ul></li> <li>And that's the Monad</li> <li>Real World <ul> <li><code>Purity</code> - 純粋。副作用がない関数。 <ul> <li><code>1. Determinism</code></li> <li><code>2. Easier reasoning</code></li> <li><code>3. Simpler testing</code></li> <li><code>4. Composability</code></li> <li><code>5. Optimizations</code></li> <li><code>6. Parallelism</code></li> </ul></li> <li>Purity + Laziness <ul> <li><code>getLine</code></li> </ul></li> <li>Input/Output(IO)</li> <li>Concept of IO</li> <li>How to run IO? <ul> <li><code>unit type</code> - 空の丸括弧</li> </ul></li> <li>How to run Haskell programs? <ul> <li><code>main</code> - メイン関数</li> <li>ハローワールド</li> <li>Printing twice</li> </ul></li> <li><code>do 構文</code> - do-notation <ul> <li><code>let-in rule</code></li> <li><code>Example with do</code></li> </ul></li> </ul></li> <li>Cabal - カバール <ul> <li>独自の形式。拡張子は <code>.cabal</code></li> <li><code>app</code> フォルダーと、 <code>src</code> フォルダーに分ける。 app は実行可能で、 src はライブラリーか?</li> <li>Typical main</li> <li><code>build-depends</code> <ul> <li><code>Hackage</code> - ユーザー作成のパッケージが置いてる?</li> </ul></li> </ul></li> <li><code>Functional,Imperative</code> <ul> <li><code>Imperative style</code> - 命令型スタイル</li> <li><code>Functional style</code> - 関数型スタイル</li> </ul></li> <li>More sources</li> </ul> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ふーむむむ?」</p> <h1 id="次の関連記事"><a href="#%E6%AC%A1%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">次の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/Haskell-o">Haskell でコンピューター将棋を作ろうぜ(^o^)?</a></p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18663 2023-11-27T20:15:37+09:00 2023-12-05T02:01:00+09:00 https://crieit.net/posts/35bb78372fdb17061111e859632f839f 【将棋】千日手は後手何勝分か(^~^)? <h1 id="先手くんと後手くん"><a href="#%E5%85%88%E6%89%8B%E3%81%8F%E3%82%93%E3%81%A8%E5%BE%8C%E6%89%8B%E3%81%8F%E3%82%93">先手くんと後手くん</a></h1> <p><a href="https://crieit.now.sh/upload_images/ec5aa45f48a41e3e315de5ebb3cbc08965646ff09d050.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ec5aa45f48a41e3e315de5ebb3cbc08965646ff09d050.png?mw=700" alt="202311__character__27-1910--SenteKun-small.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>先手くん</strong> というのが居るとしよう。<br /> 対局しようとすると、必ず 先手番を引いてしまうんだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 つよい」</p> <p><a href="https://crieit.now.sh/upload_images/c85bc8a2745799361d83a43ef59aec7f6564708206f9a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c85bc8a2745799361d83a43ef59aec7f6564708206f9a.png?mw=700" alt="202311__character__27-1916--GoteKun-small.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>後手くん</strong> というのも居るとしよう。<br /> 対局しようとすると、必ず 後手番を引いてしまうんだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 かわいそうに……」</p> <p><a href="https://crieit.now.sh/upload_images/0b775b79212bd497f0bf0ac86fd548aa6564729b57354.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0b775b79212bd497f0bf0ac86fd548aa6564729b57354.png?mw=700" alt="202311__character__27-1938--ShogiBan-Small.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <strong>将棋盤</strong> があるぜ。 駒のイラストは描くのが めんどくさいから省くぜ」</p> <h1 id="強さ別、先手勝率"><a href="#%E5%BC%B7%E3%81%95%E5%88%A5%E3%80%81%E5%85%88%E6%89%8B%E5%8B%9D%E7%8E%87">強さ別、先手勝率</a></h1> <div class="table-responsive"><table> <thead> <tr> <th>強さ</th> <th>勝率</th> </tr> </thead> <tbody> <tr> <td>アマチュアの うわさ話</td> <td>先手が 51% ~ 53% ぐらい有利</td> </tr> <tr> <td>2021年のプロ棋士のタイトル戦</td> <td>先手が 57% ぐらい有利</td> </tr> <tr> <td>2023年のコンピュータ将棋選手権の決勝レベル</td> <td>先手が 68% ぐらい有利</td> </tr> </tbody> </table></div> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ここで、将棋は アマチュア・レベルなら関係ないが、<br /> 強い者同士だと 先手有利という話しもある」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://shogibu.com/kansenki/titlesente.html">やはり先手が有利なのか?</a> - プロ棋士のタイトル戦<br /> 📖 <a target="_blank" rel="nofollow noopener" href="https://ykakinoki.hateblo.jp/entry/2023/05/07/083059">第33回世界コンピュータ将棋選手権の戦型分析</a> - コンピュータ将棋</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 アマチュアと 強い者とでは 別のゲームになってんのね」</p> <h1 id="勝ち星の偏り"><a href="#%E5%8B%9D%E3%81%A1%E6%98%9F%E3%81%AE%E5%81%8F%E3%82%8A">勝ち星の偏り</a></h1> <p><a href="https://crieit.now.sh/upload_images/17fb767c09e3dc03635e0b68c4d4cd0965647161aa0a6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/17fb767c09e3dc03635e0b68c4d4cd0965647161aa0a6.png?mw=700" alt="202311__character__27-1910--SenteKun-Small-FacingRight.png" /></a><a href="https://crieit.now.sh/upload_images/a93f1f9dfdd498baff04e5294a4137f065647169528b1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a93f1f9dfdd498baff04e5294a4137f065647169528b1.png?mw=700" alt="202311__character__27-1916--GoteKun-Small-FacingLeft.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ここで、先手くんと 後手くんは 同じ強さとするぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 どれぐらい強いんだぜ? アマチュアレベルなのか、 プロ棋士のタイトル戦レベルなのか、 コンピュータ将棋選手権の決勝レベルなのか?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 コンピュータ将棋選手権の決勝レベルだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/17fb767c09e3dc03635e0b68c4d4cd0965647161aa0a6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/17fb767c09e3dc03635e0b68c4d4cd0965647161aa0a6.png?mw=700" alt="202311__character__27-1910--SenteKun-Small-FacingRight.png" /></a> <a href="https://crieit.now.sh/upload_images/986cc85b673f198894239bf3e65e8f8565647872384aa.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/986cc85b673f198894239bf3e65e8f8565647872384aa.png?mw=700" alt="202311__character__27-2004--ShogiBan-Seven.png" /></a> <a href="https://crieit.now.sh/upload_images/a0578d265de1afb10fb3066e22657387656478b4d1911.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a0578d265de1afb10fb3066e22657387656478b4d1911.png?mw=700" alt="202311__character__27-2004--ShogiBan-Three.png" /></a> <a href="https://crieit.now.sh/upload_images/a93f1f9dfdd498baff04e5294a4137f065647169528b1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a93f1f9dfdd498baff04e5294a4137f065647169528b1.png?mw=700" alt="202311__character__27-1916--GoteKun-Small-FacingLeft.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 1000局ぐらいやれば、 先手くんが70%勝利、後手くんが30%勝利 に近づいていくんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ、 先手で勝ったら 3点、 後手で勝ったら 7点 といったように、<br /> 手番に ウェイト(Weight;おもり)を付けるといった 小谷先生が例会の雑談の中で言っていた案ならどうだろうか?」</p> <p><a href="https://crieit.now.sh/upload_images/17fb767c09e3dc03635e0b68c4d4cd0965647161aa0a6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/17fb767c09e3dc03635e0b68c4d4cd0965647161aa0a6.png?mw=700" alt="202311__character__27-1910--SenteKun-Small-FacingRight.png" /></a> <a href="https://crieit.now.sh/upload_images/4cb1ec8f961100fe177df64f1b40d61765647d3882b98.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4cb1ec8f961100fe177df64f1b40d61765647d3882b98.png?mw=700" alt="202311__character__27-2020--Sente-3x7.png" /></a> <a href="https://crieit.now.sh/upload_images/b49a9781990bfecb844d89b1e2f71c4a65647d6be3075.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b49a9781990bfecb844d89b1e2f71c4a65647d6be3075.png?mw=700" alt="202311__character__27-2023--Gote-7x3.png" /></a> <a href="https://crieit.now.sh/upload_images/a93f1f9dfdd498baff04e5294a4137f065647169528b1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a93f1f9dfdd498baff04e5294a4137f065647169528b1.png?mw=700" alt="202311__character__27-1916--GoteKun-Small-FacingLeft.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 例えば 先手くんの7勝、後手くんの3勝だとすると、<br /> 後手から見た白星の絵図を描くと、<br /> 後手くんの 21勝、 21敗で 釣り合っているように見えるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 先手くんと 後手くんの強さが アマチュアレベルだったら どうなるんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/17fb767c09e3dc03635e0b68c4d4cd0965647161aa0a6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/17fb767c09e3dc03635e0b68c4d4cd0965647161aa0a6.png?mw=700" alt="202311__character__27-1910--SenteKun-Small-FacingRight.png" /></a> <a href="https://crieit.now.sh/upload_images/b35fb5a16fa180107c2870a605d5251965647bed55150.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b35fb5a16fa180107c2870a605d5251965647bed55150.png?mw=700" alt="202311__character__27-2020--Sente-3x5.png" /></a> <a href="https://crieit.now.sh/upload_images/25c445e7fbdd942e142ccc2f7d9d094265647caa95908.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/25c445e7fbdd942e142ccc2f7d9d094265647caa95908.png?mw=700" alt="202311__character__27-2023--Gote-7x5.png" /></a> <a href="https://crieit.now.sh/upload_images/a93f1f9dfdd498baff04e5294a4137f065647169528b1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a93f1f9dfdd498baff04e5294a4137f065647169528b1.png?mw=700" alt="202311__character__27-1916--GoteKun-Small-FacingLeft.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 例えば 先手くんの5勝、後手くんの5勝だとすると、<br /> 後手から見た白星の絵図を描くと、<br /> 後手くんの 35勝、 15敗で、 2と3分の1倍、後手くんが有利だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 強いクラス(階級)に合わせて レギュレーション(規制)を作ると、<br /> 弱いクラスで バランスがゆがむわよ」</p> <h1 id="強さで広がる差"><a href="#%E5%BC%B7%E3%81%95%E3%81%A7%E5%BA%83%E3%81%8C%E3%82%8B%E5%B7%AE">強さで広がる差</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 すると 例えば アマチュアのときは 先手52%、後手48%の差 <strong>4%</strong> を埋め、<br /> プロ棋士のタイトル戦で 先手57%、後手43%の差 <strong>14%</strong> を埋め、<br /> コンピューター将棋の決勝レベルで 先手68%、後手32%の差 <strong>36%</strong> を埋めるような、<br /> 都合のいい何かが欲しいところだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 プロ棋士で 千日手の登場する確率は <strong>2%</strong> ぐらいだという説もネットにはあるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 フーム」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 永瀬先生の 千日手の確率は <strong>8%</strong> ぐらいだそうだぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://bunshun.jp/articles/-/11567?page=2">“軍曹”永瀬拓矢七段の「千日手伝説」――やはり出現率はダントツトップだった</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ウーン」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 コンピュータ将棋選手権の決勝レベルでは 2019年以降 <strong>8~10%</strong>、 2023年は <strong>0%</strong> だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 18% 無いのかあ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 将棋の千日手が 真の分布として どれぐらいあるのかも分からないし、<br /> 将棋エンジンが <strong>水面下</strong> で千日手を避けるように動いているとしたなら 真の分布は ずっと分からないし、<br /> 千日手の出現確率を基準にしたレギュレーションを作ったら ぶれるんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 先手勝率70%を、60%に減らすだけでもできたなら、コンピュータ将棋の延命の 効果はあるんじゃないか?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 それは将棋なのかしらねえ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 最近のコンピュータ将棋は 将棋であろうとしてないぜ。<br /> 先手と後手の勝率が 52%、48% ぐらいだった頃に戻りたい人たちだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 くじで 先手を引いた方が 勝つのだ! で よくない?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 それを くじ と言う」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 無い頭を 絞ってるわけだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 タイトル戦で 先手番で勝ってるプロ棋士が これ制限されると 先手持っても5割しか勝てないような自縄自縛の制限、<br /> 考えてくれればいいのにな」</p> <h1 id="試算 千日手は、後手の3.6勝"><a href="#%E8%A9%A6%E7%AE%97%E3%80%80%E5%8D%83%E6%97%A5%E6%89%8B%E3%81%AF%E3%80%81%E5%BE%8C%E6%89%8B%E3%81%AE%EF%BC%93%EF%BC%8E%EF%BC%96%E5%8B%9D">試算 千日手は、後手の3.6勝</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 仮に、 <strong>先手勝率70%</strong>、 <strong>持将棋の出現事後確率10%</strong> と仮定して、<br /> 千日手の先手の勝ち星は 何% にしたら、<br /> 先手と後手の勝率が 50%、50% ぐらいだった頃に戻れるか、計算してみようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 持将棋の出現事後確率10% というのは計算で使いづらいから、 <strong>決着率90%</strong> と言い換えることにしようぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 分母を揃えましょう。<br /> 3と7と9の最小公倍数は63なので、100分率ではなく、6300分率を使うとします」</p> <p>.<a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 わらう」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 決着率 5670、 持将棋率 630 として、<br /> 先手の勝率は 3969、 後手の勝率は 1701」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 五分五分に戻したいのだから、<br /> 3969 ー 1701 = 2268<br /> 後手に 2268 を足すようなものが欲しいわけだぜ、630 を使って」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 2268/630 = 3.6<br /> かだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 持将棋は 後手の3.6勝にしたらいいの? 検算してみましょう」</p> <pre><code class="plaintext">10000 局対局する。 先手 6300 勝 = 10000 * 0.9 * 0.7 後手 2700 勝 = 10000 * 0.9 * 0.3 千日手 1000 局 1000局 * 3.6 = 3600勝 2700勝 + 3600勝 = 6300勝 </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 合ってるわねえ」</p> <h1 id="3.6敗するぐらいなら投了する"><a href="#%EF%BC%93%EF%BC%8E%EF%BC%96%E6%95%97%E3%81%99%E3%82%8B%E3%81%90%E3%82%89%E3%81%84%E3%81%AA%E3%82%89%E6%8A%95%E4%BA%86%E3%81%99%E3%82%8B">3.6敗するぐらいなら投了する</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 えっ? じゃあ 先手は 千日手のとき 3.6敗 するのかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 そうなるわねえ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 投了したら 1敗 だろ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 千日手を選ぶぐらいなら、投了するし、投了するぐらいなら 打開するわねえ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 じゃあ 3.6勝 なんて もらえない狸の皮算用だ。真の期待値は 1勝」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 1勝なんかもらったって 釣り合わないぜ。 3.6勝 くれないと」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 1局について、1勝より多くの勝ちを もらえることはないぜ。なぜなら 投了されるから」</p> <h1 id="試算 千日手が後手の1勝なら 先手勝率70%→63%へ下がる"><a href="#%E8%A9%A6%E7%AE%97%E3%80%80%E5%8D%83%E6%97%A5%E6%89%8B%E3%81%8C%E5%BE%8C%E6%89%8B%E3%81%AE%EF%BC%91%E5%8B%9D%E3%81%AA%E3%82%89%E3%80%80%E5%85%88%E6%89%8B%E5%8B%9D%E7%8E%87%EF%BC%97%EF%BC%90%EF%BC%85%E2%86%92%EF%BC%96%EF%BC%93%EF%BC%85%E3%81%B8%E4%B8%8B%E3%81%8C%E3%82%8B">試算 千日手が後手の1勝なら 先手勝率70%→63%へ下がる</a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 とりあえず 千日手は 後手1勝 のケースも試算してみてくれだぜ」</p> <pre><code class="plaintext">10000 局対局する。 先手 6300 勝 = 10000 * 0.9 * 0.7 後手 2700 勝 = 10000 * 0.9 * 0.3 千日手 1000 局 1000局 * 1 = 1000勝 2700勝 + 1000勝 = 3700勝 先手 6300 勝 後手 3700 勝 </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 先手勝率70%が、63%まで下がったわよ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 そんなに嬉しくないな」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 52%まで下がって欲しいよな」</p> <h1 id="試算 千日手が後手の1勝なら 千日手が28%で起こると 先後は釣り合う"><a href="#%E8%A9%A6%E7%AE%97%E3%80%80%E5%8D%83%E6%97%A5%E6%89%8B%E3%81%8C%E5%BE%8C%E6%89%8B%E3%81%AE%EF%BC%91%E5%8B%9D%E3%81%AA%E3%82%89%E3%80%80%E5%8D%83%E6%97%A5%E6%89%8B%E3%81%8C%EF%BC%92%EF%BC%98%EF%BC%85%E3%81%A7%E8%B5%B7%E3%81%93%E3%82%8B%E3%81%A8%E3%80%80%E5%85%88%E5%BE%8C%E3%81%AF%E9%87%A3%E3%82%8A%E5%90%88%E3%81%86">試算 千日手が後手の1勝なら 千日手が28%で起こると 先後は釣り合う</a></h1> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃあ逆に、千日手を後手の1勝とするなら、千日手の真の分布は 何% 在ってほしいんだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 先手7勝と 後手3勝の間を埋めるには 後手に4勝加わったらいいわけだから、<br /> 全部で 14局 対局したということにして、その内の4局が 千日手 だったらいいのよ」</p> <pre><code class="plaintext">14 * 7 = 98 </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 14を 7倍したら だいたい 100 ねえ」</p> <pre><code class="plaintext">       7倍 計  14局  → 98局 先手  7勝  → 49局 後手  3勝  → 21局 千日手 4局  → 28局 </code></pre> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 👆 じゃあ だいたい 千日手が28% の確率で起こるんだったら 先手、後手は 5分5分の勝率になるんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 強い者同士で 28% 起こり、アマチュアのヘボ将棋で 2% も起こらないような、<br /> そんな都合のいい <strong>決着の仕方</strong> が 千日手でなくても 将棋の中で起こってるんだったら、<br /> それを <strong>コミ出し</strong> に利用するには 良さそうだけど……」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 10局やって 3局で それが起こる何かを制限するのなんか <strong>頭金禁止</strong> とか そんなんかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 <strong>水面下</strong> で起こってることは わたしたちには 分かんないのよ」</p> <h1 id="次の関連記事"><a href="#%E6%AC%A1%E3%81%AE%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B">次の関連記事</a></h1> <p>📖 <a href="https://crieit.net/posts/9b2ad234687e455fd78bfb9d979723f2">【廃案】きふわらべ式、将棋の先手勝率70%の時代に向けて、将棋のルールを変えない大会ルールの代案</a></p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18662 2023-11-26T14:16:59+09:00 2023-11-26T17:22:25+09:00 https://crieit.net/posts/Godot-GD-md Godot の GDスクリプトを、自前のスクリプトで置き換えようぜ(^~^)?.md <h1 id="親記事から来た"><a href="#%E8%A6%AA%E8%A8%98%E4%BA%8B%E3%81%8B%E3%82%89%E6%9D%A5%E3%81%9F">親記事から来た</a></h1> <p>📖 <a href="https://crieit.net/posts/Godot-65115761b6a17">Godot って何だぜ(^~^)?</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/2f52ebc9cafd8fb10a87757ff8b663ff6562d2dce2cb3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2f52ebc9cafd8fb10a87757ff8b663ff6562d2dce2cb3.png?mw=700" alt="202311__shogi__26-1403--KeyConfigModerator-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 キーコンフィグの こういうスクリプトを 全部 自前のシナリオのト書きで書けないかだぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 GD Script の表現力を 自前のスクリプトが上回ってないなら 苦労が増えるだけじゃない?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 その前に、お父んの 自前スクリプト の仕様を説明してくれだぜ」</p> <h1 id="キー・コンフィグが確定してないと動かない"><a href="#%E3%82%AD%E3%83%BC%E3%83%BB%E3%82%B3%E3%83%B3%E3%83%95%E3%82%A3%E3%82%B0%E3%81%8C%E7%A2%BA%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%AA%E3%81%84%E3%81%A8%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84">キー・コンフィグが確定してないと動かない</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 と、思ったんだが、キー・コンフィグが確定していないときに 自前スクリプトを動かすことは 無理だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 なんだ」</p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18659 2023-11-21T19:22:05+09:00 2023-11-21T23:05:06+09:00 https://crieit.net/posts/Godot-655c84cd156d9 Godot でノードパスを気にせずにシーン・ビューでノードを移動したいぜ(^~^) <h1 id="親記事から来た"><a href="#%E8%A6%AA%E8%A8%98%E4%BA%8B%E3%81%8B%E3%82%89%E6%9D%A5%E3%81%9F">親記事から来た</a></h1> <p>📖 <a href="https://crieit.net/posts/Godot-65115761b6a17">Godot って何だぜ(^~^)?</a></p> <h1 id="情報"><a href="#%E6%83%85%E5%A0%B1">情報</a></h1> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://github.com/muzudho/godot-practice">Git Hub / きふわらべRPG、他</a><br /> 📺 <a target="_blank" rel="nofollow noopener" href="https://t.co/ZvT1ICT9x8">Discord サーバー 招待 / きふわらべRPG</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/a9d8e33df75340cb3aae1214ee2b6af4655c82453f6c7.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a9d8e33df75340cb3aae1214ee2b6af4655c82453f6c7.png?mw=700" alt="202311__shogi__21-1906--folder-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 フォルダーを自由に作って そこにノードを移動できるようにしたいぜ。<br /> そのとき パスも リンク切れしないようにしたいぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 Godot エディター上で 移動すれば リンクは切れないんじゃないの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 ノードパスの仕様が難しい。もっと適当に ノードを移動したい」</p> <p><a href="https://crieit.now.sh/upload_images/105ecd83f2c980c07567a437ac60f97e655c845cc5d17.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/105ecd83f2c980c07567a437ac60f97e655c845cc5d17.png?mw=700" alt="202311__shogi__21-1919--node-path-o2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 このような ハードコーティングしたノードパスを 自動で修正してくれる仕掛けが<br /> Godot には あるらしいぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 やってみろだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/9667e2c6013a78af394fb214949ae487655c85bba0d19.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9667e2c6013a78af394fb214949ae487655c85bba0d19.png?mw=700" alt="202311__shogi__21-1925--node-moved.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 こんな風に ノードを移動しても、さっきのノードパスは 自動で変更されるといったことはないぜ」</p> <h2 id="変更案"><a href="#%E5%A4%89%E6%9B%B4%E6%A1%88">変更案</a></h2> <pre><code class="gd">#func hub(): # return $"../../🛩️ScenarioWritersHub" # シナリオライターズ・ハブ取得 func hub(): var cur_node = $".." while cur_node != null: if cur_node.has_node("🛩️ScenarioWritersHub"): return cur_node.get_node("🛩️ScenarioWritersHub") cur_node = cur_node.get_parent() return null </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 例えば 上記のように書きかえれば 親をさかのぼって探してくれるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 キャッシュした方が よくないか?」</p> <pre><code class="gd">var cached_hubs = {} # シナリオライターズ・ハブ取得 func hub(): var target = "🛩️ScenarioWritersHub" if target in self.cached_hubs: return self.cached_hubs[target] var cur = $".." while cur != null: if cur.has_node(target): var hub = cur.get_node(target) self.cached_hubs[target] = hub return hub cur = cur.get_parent() return null </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 じゃあ こうだぜ」</p> <h1 id="モジュール化"><a href="#%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%8C%96">モジュール化</a></h1> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 そのコードを使い回せるようにしたら いいんじゃない?」</p> <p>📄 <code>monkey.gd</code>:</p> <pre><code class="gd">extends Object class_name Monkey # ーーーーーーーー # メモリ関連 # ーーーーーーーー var cached_ancestor_children = {} # ーーーーーーーー # 親パス関連 # ーーーーーーーー # 親の直下の子を調べる。なければ、祖先の直下の子を調べる func find_ancestor_child( current_node, # Node target_node_name): # StringName var cur = current_node var target = str(target_node_name) if target in self.cached_ancestor_children: return self.cached_ancestor_children[target] while cur != null: if cur.has_node(target): var hub = cur.get_node(target) self.cached_ancestor_children[target] = hub return hub cur = cur.get_parent() return null </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 じゃあ <code>monkey.gd</code> を作るぜ」</p> <pre><code class="gd"># ーーーーーーーー # メモリ関連 # ーーーーーーーー var monkey = Monkey.new() # ーーーーーーーー # 親パス関連 # ーーーーーーーー # シナリオライターズ・ハブ取得 func hub(): return monkey.find_ancestor_child( self, "🛩️ScenarioWritersHub") </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 あとは それを使うだけだぜ」</p> <h2 id="トレードオフ"><a href="#%E3%83%88%E3%83%AC%E3%83%BC%E3%83%89%E3%82%AA%E3%83%95">トレードオフ</a></h2> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 ノードの置き場所が自由になった分、<br /> ノードパスによるノードの識別が できなくなるわね」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 運用でカバーしろだぜ」</p> <h2 id="フォルダーの深い所に置いたから、探索しろだぜ"><a href="#%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E3%81%AE%E6%B7%B1%E3%81%84%E6%89%80%E3%81%AB%E7%BD%AE%E3%81%84%E3%81%9F%E3%81%8B%E3%82%89%E3%80%81%E6%8E%A2%E7%B4%A2%E3%81%97%E3%82%8D%E3%81%A0%E3%81%9C">フォルダーの深い所に置いたから、探索しろだぜ</a></h2> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 しまった!」</p> <p>📄 <code>scenario_writers_hub.gd</code> :</p> <pre><code class="gd"># 指定の部門下の scenario_document 辞書を全てマージして返します。 # この処理は、最初の1回は動作が遅く、その1回目でメモリを多く使います func get_merged_scenario_document(department_name): if not (department_name in self.cached_scenario_document): var book_node = self.get_scenario_writer().get_node(str(department_name)) self.cached_scenario_document[department_name] = {} # 再帰。結果は外部変数に格納 self.search_merged_scenario_document(department_name, book_node) return self.cached_scenario_document[department_name] func search_merged_scenario_document(department_name, current_node): for child_node in current_node.get_children(): if "scenario_document" in child_node: self.cached_scenario_document[department_name].merge(child_node.scenario_document) # 再帰。結果は外部変数に格納 self.search_merged_scenario_document(department_name, child_node) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 フォルダーの下まで 再帰的に探索するコードを書いてないぜ」</p> <p>📄 <code>programs_hub.gd</code> :</p> <pre><code class="gd"># 全ての部門名一覧 func get_all_department_names(): if self.cached_all_department_names == null: self.cached_all_department_names = [] # StringName の配列 # 結果は変数に格納される self.search_all_department_names( self.get_scenario_writer()) return self.cached_all_department_names # 結果は変数に格納される func search_all_department_names(current_node): for child_node in current_node.get_children(): # 部門のノード名は `📗` で始まるものとする if child_node.name.begins_with("📗"): self.cached_all_department_names.append(child_node.name) # `📂` で始まるノード名は、さらにその中も再帰的に探索されるものとする elif child_node.name.begins_with("📂"): self.search_all_department_names(child_node) </code></pre> <p>📄 <code>scenario_writers_hub</code> :</p> <pre><code class="gd"># 指定の部門下の scenario_document 辞書を全てマージして返します。 # この処理は、最初の1回は動作が遅く、その1回目でメモリを多く使います func get_merged_scenario_document(department_name): # キャッシュになければ探索 if not (department_name in self.cached_scenario_document): # [📗~]ノードの位置が変わっていることがあるので探索する var book_node = self.search_scenario_book_node( self.get_scenario_writer(), str(department_name)) self.cached_scenario_document[department_name] = {} # 再帰。結果は外部変数に格納 self.search_merged_scenario_document(department_name, book_node) return self.cached_scenario_document[department_name] # [📗~]ノードを探索 func search_scenario_book_node( current_node, department_name_str): if current_node.has_node(department_name_str): return current_node.get_node(department_name_str) for child_node in current_node.get_children(): var book_node = self.search_scenario_book_node( child_node, department_name_str) if book_node != null: return book_node func search_merged_scenario_document(department_name, current_node): for child_node in current_node.get_children(): if "scenario_document" in child_node: self.cached_scenario_document[department_name].merge(child_node.scenario_document) # 再帰。結果は外部変数に格納 self.search_merged_scenario_document(department_name, child_node) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 まず 部門名を再帰的に探すことにするぜ。<br /> <code>📗</code> で始まるノード名なら 部門名、<br /> <code>📂</code> で始まる名前のノードなら、その中を探索されるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/2fbd3bae185f7f365aa2c7aa99dbb5be655ca6da8efff.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2fbd3bae185f7f365aa2c7aa99dbb5be655ca6da8efff.png?mw=700" alt="202311__shogi__21-2146--folder-2o0.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これで フォルダーの中に 台本を置いて 任意に整理できるようになったぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 任意に置くことができるフォルダーと、<br /> 置く場所が決まってるフォルダーのアイコンを 変えた方がよくない?」</p> <p><a href="https://crieit.now.sh/upload_images/db8bdc476c0df3ea89b44a88e09bc562655cb0319b04c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/db8bdc476c0df3ea89b44a88e09bc562655cb0319b04c.png?mw=700" alt="202311__shogi__21-2226--globe.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 固定のディレクトリーのアイコンをグローブ(Globe;地球)に変えたぜ。<br /> ハブ(Hub;中心地)が飛行機なんで、合うぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 ストII のキャラクター選択画面のイメージだろ」</p> <p><a href="https://crieit.now.sh/upload_images/10798fd3a84fe096dcec4676844abf38655cb8deccad1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/10798fd3a84fe096dcec4676844abf38655cb8deccad1.png?mw=700" alt="202311__shogi__21-2303--addon.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 <code>📂Imported</code> より、 <code>📂Addon</code> の方がイメージをつかめるか。変えたろ」</p> <h1 id="親記事へ戻る"><a href="#%E8%A6%AA%E8%A8%98%E4%BA%8B%E3%81%B8%E6%88%BB%E3%82%8B">親記事へ戻る</a></h1> <p>📖 <a href="https://crieit.net/posts/Godot-65115761b6a17">Godot って何だぜ(^~^)?</a></p> <p>.</p> むずでょ tag:crieit.net,2005:PublicArticle/18657 2023-11-20T18:57:11+09:00 2023-11-20T20:41:53+09:00 https://crieit.net/posts/Godot-LabelSettings Godot の LabelSettings 外部ファイルの名前の付け方を考えようぜ(^~^)? <h1 id="親記事から来た"><a href="#%E8%A6%AA%E8%A8%98%E4%BA%8B%E3%81%8B%E3%82%89%E6%9D%A5%E3%81%9F">親記事から来た</a></h1> <p>📖 <a href="https://crieit.net/posts/Godot-65115761b6a17">Godot って何だぜ(^~^)?</a></p> <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 既にあるのに、同じものを作ってしまうのは 失敗の初期工程だぜ」</p> <h2 id="実践1"><a href="#%E5%AE%9F%E8%B7%B51">実践1</a></h2> <pre><code class="plaintext">battle_light_blue.tres battle_light_green.tres credits_roll.tres game_title.tres label_setting_large.tres label_setting_medium.tres large_font.tres main_medium.tres </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ファイル名の付け方で 一番気にすることは、 同じものを何個も作ることがないようにすることだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 戦闘シーンとか タイトル画面とか 使う場所で分けるのはどうなの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 別れるばかりで整理ではない」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お父んが 分けたのに……」</p> <p><a href="https://crieit.now.sh/upload_images/2741cdcd70f4c6c908d44d87929a05f8655b2c59a89d3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2741cdcd70f4c6c908d44d87929a05f8655b2c59a89d3.png?mw=700" alt="202311__godot__20-1851--label-settings.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ひとまず ラベル設定で 1番優先される項目は 独断で フォント・サイズということにしよう。<br /> 上図では 32 ピクセルのフォントだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 この ラベル設定の外部ファイルの名前を <code>medium.tres</code> と名付けるとしようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/cc8e9af7e65aa0317707b0c9b31c7cc6655b2e8a087f5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/cc8e9af7e65aa0317707b0c9b31c7cc6655b2e8a087f5.png?mw=700" alt="202311__godot__20-1900--large-label.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 一辺が 2倍になったフォントのラベル設定は <code>large.tres</code> と名付けようぜ?」</p> <h2 id="実践2"><a href="#%E5%AE%9F%E8%B7%B52">実践2</a></h2> <pre><code>title_copyright.tscn </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 使う場面、使う箇所によって フォントを 細かく設定していては<br /> ファイルが増える一方なんで……」</p> <pre><code>medium_thin.tscn </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 文字サイズ中、線の太さは細い、みたいな 名前の方を 使うことにするぜ」</p> <p><a href="https://crieit.now.sh/upload_images/101bd96e6f8c52fd69d7d2789474b776655b45d83aa6b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/101bd96e6f8c52fd69d7d2789474b776655b45d83aa6b.png?mw=700" alt="202311__godot__20-2040--large-settings.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ひとまず これぐらいでいいだろう」</p> <h1 id="親記事へ戻る"><a href="#%E8%A6%AA%E8%A8%98%E4%BA%8B%E3%81%B8%E6%88%BB%E3%82%8B">親記事へ戻る</a></h1> <p>📖 <a href="https://crieit.net/posts/Godot-65115761b6a17">Godot って何だぜ(^~^)?</a></p> <p>.<br /> .</p> むずでょ