タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

プログラミングとパズルに関するomega314のブックマーク (2)

  • プログラムで解く数学パズル: 囚人とスイッチの部屋の問題 - 解答の自動チェックのしくみ - 貳佰伍拾陸夜日記

    この記事ははてなエンジニア Advent Calendar 2018の18日目の記事です. 昨日はid:WindymeltのSmart::Argsのパーサを書いたでした. 明日の担当はid:hokkai7goです. 他の担当者の記事は割と業務っぽいものが多いですが, 今回は趣味っぽいゆるゆるのネタです. 社内でとある数学パズルを紹介したところAdvent Calendarに書いてくれとリクエストがあったので, 紹介します. 単に問題を紹介するだけでは面白くないので, コードを書いて解答できるようにしてみました. 問題 あなたは100人の囚人の一人です. 全員で以下のようなゲームをして, 見事勝利できれば全員釈放, 負ければ全員死刑となります. ゲーム開始と同時に全員別々の独房に入ります 独房内や通路で他の囚人とやりとりすることはできません ランダムに1人ずつスイッチの部屋に呼ばれます 十分

    プログラムで解く数学パズル: 囚人とスイッチの部屋の問題 - 解答の自動チェックのしくみ - 貳佰伍拾陸夜日記
  • ビリヤードリング(魔円陣) - amori's blog

    森博嗣の「すべてがFになる」にシリーズの「笑わない数学者」で以下のようなパズルが紹介されている。 「ビリヤードの球(つまり1~15)から五個球を選んでリングに並べる。 この時、連続する球の数字の和が1~21になるようにするにはどうならべればいいか?」 こちらで実際にこのパズルをプレイできる。 〜〜 追記: この問題は一般に「魔円陣」と呼ばれているものでした。当ブログの別記事「Dobbleの数理」で参照している有限幾何の文献でも解説があります。 amori.hatenablog.com あと、「ガロアの数学 「体」入門、小林吹代 著、技術評論社、2018/6」にも解説がありました。 〜〜 21というのは5個のリングから作りうる最大数で、Combination(5,2)*2+1 =21 であるので、作りうる数字の和に重複がないということである。 5個未満については、 1個の場合は[1]で自明、

    ビリヤードリング(魔円陣) - amori's blog
  • 1