砂場で遊ぼう

c++/python/mathematica などの練習帳

2021-12-01から1ヶ月間の記事一覧

Project Euler 170 / 連結された積が0から9までのパンデジタル数になるパンデジタル数の最大値

問題概略 右から攻めるか左から攻めるか 実例を 1 つ探す 分割数などをしぼりこむ 高速化のための微調整 a は 3 の倍数 a は 50 未満 再計算 問題概略 6 を 1273 と 9854 にかけると次のようになる。\begin{align*} &6 \times 1273 = 7638\\ &6 \times 9854 …

Project Euler 175 / ある数を2のべき乗の和として表せる方法の数の比

問題概略 カルキン・ウィルフ・ツリー 手計算で解ける mathematica で解く 問題概略 整数 を 2 のべき乗の和で表すことを考える。ただし各数は高々 2 回しか使ってはいけないものとする。この表し方の数を とする。 と定義する。たとえば 10 には 5 通りの異…

Project Euler 176 / 隣辺を共有する直角三角形

問題概略 n の約数の個数の条件 n が奇数のとき n が偶数のとき n の素因数分解 問題概略 辺の長さが , , , の 4 つの直角三角形はすべて隣辺(直角に隣接する辺)として長さ 12 の辺をもっている。 長さ 12 の隣辺をもつ整数辺の直角三角形はこれら 4 つだ…

Project Euler 169 / ある数を2のべき乗の和で表せる方法の数の探査

問題概略 2 進法表示の桁数字に注目 実装 python で解く mathematica で解く 問題概略 整数 を 2 のべき乗の和で表すことを考える。ただし各数は高々 2 回しか使ってはいけないものとする。 この表し方の数を とする。 と定義する。例として を考える。 \beg…

Project Euler 304 / Primonacci

問題概略 どう解くか 素数は NextPrime で処理 フィボナッチ数は MatrixPowerMod で処理 実装 並列処理 前の項を使い回す 問題概略 より大きい最小の素数を であらわす。 これを用いて を次のように定義する。 また,次の式をみたすフィボナッチ数 を用いて …

Project Euler 199 / 反復円充填

問題概略 パターンを見抜く デカルトの円定理 計算に使う関係式 python と mathematicaで実装 python で解く mathematicaで解く 問題概略 半径が等しくて互いに外接する 3 つの円が大きい円に内接している。 この図形がもつ 4 つのすき間を円で埋める操作を…

Project Euler 209 / 循環論法

問題概略 何を求めればいい? mathematica で実験 実はリュカ数列 実装 mathematica python 問題概略 入力の 2 進真理値表は 個の入力ビット(2 進数で 0 は「偽」,1 は「真」)から 1 個の出力ビットへの写像である。 たとえば論理和(AND)と排他的論理和…

Project Euler 196 / 三つ子素数

問題概略 基本方針 実際の計算 実装 問題概略 正の整数すべてを使って下の図のような三角形を作る。各数は最大 8 個の数と隣接している。次の条件をみたす 3 つの素数の組を「三つ子素数」(prime triplet)と呼ぶ。「3 つの素数のうち 1 つが他の 2 つと隣…

Project Euler 200 / 連続する部分文字列に200を含む耐素数性スキューブ

問題概略 mathematicaで解く pythonで解く 問題概略 (, は異なる素数)で表せる数をスキューブ(sqube)と定義する。 , はスキューブである。 最初の 5 つのスキューブは 72, 108, 200, 392, 500 である。200 はどの位の数字を変更しても素数とならない最小…

Project Euler 186 / ネットワークの接続性

問題概略 mathematica で解く 首相を含む部分集合の大きさを計算 グラフの連結成分を求める python で解く 通話記録の中身はどうなってるか 問題概略 100 万人のユーザをもつ電話システムの通信記録がある。 RecNr Caller Called 1 200007 100053 2 600183 5…

Project Euler 329 / 素数カエル

問題概略 条件つき確率 メモ化再帰 python で解く 問題概略 素数カエルは 1 から 500 までの番号がついた 500 個の正方形の上を跳びまわる。 左右のいずれかの正方形に等確率で跳ぶことができ,正方形外に跳び出すことはない。 1 か 500 に着地した場合,次…

Project Euler 686 / 2の累乗数

問題概略 をとって評価 だけで評価 の候補をしぼりこむ 階差の候補は3つだけ コードに落とす 未証明の解法=嘘解法 問題概略 は 12 からはじまる最初の 2 の累乗数であり,2 つ目は である。 からはじまる 2 の累乗数のうち小さい方から 番目の数を とする。…