Pythonで解く数学パズル

「プログラマ脳を鍛える数学パズル」をPythonで解きます。

2016-05-01から1ヶ月間の記事一覧

つりあわない男女:「プログラマ脳を鍛える数学パズル」Q09の答え

問題 男性20人、女性10人がランダムに到着して行列を作る。ある位置で区切って行列を2つのグループに分ける時、どこで区切っても2つのグループのいずれかで男女の数が異なってしまうような到着順は何通りあるか。 この問題の元ネタをCode IQのサイトで探した…

日付の2進数変換:「プログラマ脳を鍛える数学パズル」Q07の答え

問題 年月日をYYYYMMDDの8桁の整数で表したとき、これを2進数に変換して逆から並べ さらに10進数に戻したとき、元の日付と同じ日付になるものを探してください。 期間は、前回の東京オリンピック(1964年10月10日)から、次回の東京オリンピック(2020年7月24日…

(改造版)コラッツの予想:「プログラマ脳を鍛える数学パズル」Q06の答え

問題 数学の未解決問題のひとつに「コラッツの予想」があります。 自然数nについて、 ・nが偶数の場合、nを2で割る ・nが奇数の場合、nに3をかけて1を足す という操作を繰り返すとき、初期値がどんな数であっても必ず1に到達する(1→4→2→1を繰り返す)というも…

いまだに現金払い?:「プログラマ脳を鍛える数学パズル」Q05の答え

問題 最近は電車もバスも電子マネーが当たり前。 でも、いまだに現金で払う人も意外と多いもの。 今回はバスに設置されている両替機を考えます。 この機械では、10円玉、50円玉、100円玉、500円玉の組み合わせに両替することができ、いずれの硬貨も十分な枚…

棒の切り分け:「プログラマ脳を鍛える数学パズル」Q04の答え

問題 長さn[cm]の一本の棒を1[cm]単位に切り分けることを考えます。 一本の棒を一度に切ることができるのは一人だけです。(切り分けられた棒が三本あれば、同時に三人で切ることができます。) 最大m人の人がいるとき、最短何回で切り分けることができるか…