算額あれこれ

算額問題をコンピュータで解きます

2014-01-01から1年間の記事一覧

10 を作る(その 2)

「10 を作る」の発展版 1158 で10 を 作れと... あんたは,ほんとに,「いい娘や」ねえ とはいえ,汎用のプログラムを書く気にはならないので,少しだけ変更・追加 Expr = c("n1 %s (n2 %s (n3 %s n4))", "(n1 %s n2) %s (n3 %s n4)", "( (n1 %s n2) %s n3) …

乱数の実装を問題にする?

C# で 0 から 9 の数字が入っている配列をシャッフルするコードを書いてください。 配列のサイズは 10 で全て異なる数値です。0 から 9 が順番に入っている配列になります。 ただし、配列のシャッフルではそれぞれの数値が出力される確率に偏りがあってはい…

モールス符号

小学校5,6年のとき,担任の先生にモールス信号の覚え方を教わった。「イ」は「伊藤」,「ロ」は「路上歩行」,「ハ」は「ハーモニカ」など。それ以外は数字とSOSは覚えている。灯火信号と言えば,まずはモールス信号だろう。モールス信号の「ツー」を 1,「…

圧力が不正を生む?

東大論文不正:33本に不正 規範委が最終報告、教員ら11人関与 群馬大の附属病院 来月にも立ち入り検査 衆院選で集計ミス隠蔽、仙台 976票水増し処理 STAP細胞なし確実 理研は幕引き図る 不正論文に関与、元特任講師の学位取り消し 徳島大

なんか,変な方向へ行ってるね(^_^)

クラウディアさんが鏡餅をご希望だぞ 勇者よ、きゃんちを仲間にするのじゃ! 池澤あやかとクリスマスコーディング! 林檎と城下の物語~16進数編~ 続!4ナンバー美女からの挑戦状 FizzBuzzっぽく愛の告白をして 天地創造 - 産めよ増えよ地に満ちよ 4ナン…

簡単な数列の問題

1,1,2,3,5,? ? の所にくる数値は? 解答は,この記事のコメントを参照

でかい数の階乗の末尾の 0

1000000! の末尾に連続する 0 はいくつあるか答え 249998プログラム例は,この記事のコメントを参照

数独(ナンプレ)

R の数独ライブラリはすごい。ブルートフォースで解くプログラムを書いてみたが,うまくいくときはまあまあだが,同じ問題でも,転置行列を入力すると数倍遅くなるなんてこともある。solve = function(arg) { if (length(arg) == 1) arg = scan(arg, what = …

10 を作る

9 を 4 個使って,+, -, *, / の演算子を適当に使って,かっこも適当に使って演算結果を 10 にせよ。全ての数を対象にしないので,以下のように適当にプログラムすればよい。余計な括弧もあるけど,間違いじゃないし。実行時間は 0.050 秒なので最適化する必…

ナンプレ

簡単なクイズを解けと。・2x2 のマス(Box)が縦横ふたつずつ並んだ 4x4 のマスがある・それぞれのマスには 1~4 の数字が入り、それらは行・列の 4 つのマスに同じ数字がくることはない(行・列の合計は 10 となる)・2x2 のマス(Box)にも同じ数字がくるこ…

約数の個数

指数表記を使わずに整数を素因数分解する。たとえば,72 = 2*2*2*3*3 のように表現する。このときに使う乗算記号 "*" の数は 4 つ。4 桁の数の「各桁の和」が「素因数分解した "*" の数」と等しくなるものを列挙せよ。 基本的には,約数の個数を求めること(…

階乗の約数の個数

2!,3!,4!,…,305! をそれぞれ素因数分解したときに,「2 が素因数として出てくる個数」と「2 ではない素数が素因数として出てくる個数の和」が一致するものがいくつあるかたとえば,7! を考える場合,2, 3, 4, 5, 6, 7 それぞれの数について,2 とそれ以…

左右対称な素数

1,000,000,000 より小さい最大の素数で,各桁の数が左右対称(10301 など)でなおかつ,その素数の各桁の数値の和(10301 なら 5) も素数であるような,まさにその素数を求めよ。 回答は,この記事のコメントを参照。

偶数の和

偶数を,以下のようにならべてゆく 1段目 0 2段目 2 4 3段目 6 8 10 4段目 12 14 16 18 : 1e100 段目に並ぶ数の総和はいくつになるか。 答は,この記事のコメントを参照。

パスカルの三角形の n 段目の数の二乗和

n 段目にある数の 2 乗和の桁数を求めよ。sum(choose(n-1, 0:(n-1))^2) ≡ choose(2*(n-1), n-1)よって,33 段目ならば,choose(2*(33-1), 33-1) = 1.832624e+18 であるが,「桁数を答えよ」ということなので,答は「19 桁」である。

おかしな仕様のプログラム

整数表記で,数字の 1 桁ごとに、0~9 の値は「00, 01, 02, 03, 04, 10, 11, 12, 13, 14」の 2 桁の値に変換する。「特定の言語で,特定の機能を使わないでプログラムする」ということだが,そんな条件にどんな意味があるというのかわからん。 func = functi…

積の総和

1, 2, 3, …, n の中から異なる 2 数を取り出してその積をつくる。これらの積の総和を求めよ。 n = 5 のときは,1*2 + 1*3 + 1*4 + 1*5 + 2*3 + 2*4 + 2*5 + 3*4 + 3*5 + 4*5 = 85 n = 1e3, n = 1e8 のときの総和を求めよ。 解答は,この記事のコメントを参照…

大きな数に関する問題

整数 220×330×550×770×11110×13130 において, (1) 末尾の 0 は何個あるか(初級)(2) 先頭 1 桁目の数字は何か(初級)(3) 全ての約数の総数はいくつか(中級)(4) 全ての約数の総和はいくつか(上級) 解答は,この記事のコメントを参照

暗号を解けという問題の前提は...

暗号解読には,若干のヒントが必須。それが,明示されていようが,暗示されたものであろうが2qlglkl9b4f8.xy 0qdmehう~~む。とっかかりがない。老婆心ながら l は,小文字のエル,0 はゼロ。暗号送出者(挑戦者)は日本的(?),受信者(被挑戦者)はそう…

約数の個数

要素が素数であるような数列がある。数列の要素どうしを掛け合わせることで得られる数字の個数を求めよ(全ての要素を使う必要はない)。前にもあったが,約数の個数を求めよというのと同じ。ただし,1 を除くということ。R で書くならば,数列のベクトルを …

コイン投げ賭博

コイン投げに一度勝つと所持金が 2 倍になる。コイン投げに一度負けると所持金が 1/16 になる。ギャンブルの終了条件は、以下の通り。・コイン投げに勝った回数が整数の 2 乗になっている・コイン投げに負けた回数が整数の 2 乗になっている・所持金が 0.5 …

n 進表記

文字を convert すると,数値になる。ヒントは「み・こ」。“123” |> convert |> 1298“abc” |> convert |> 12647“ff7” |> convert |> 18907“dq2” |> convert |> 16837“y2k” |> convert |> 4174010 以降を a, b, c, ... で表す n 進法で,最も大きい…

大きな数の先頭と末尾(3)

「大きな数の先頭と末尾(2)」を awk で書いてみると,「大きな数の先頭と末尾(2)」が R の特殊な機能を使っているのではないことが理解できるだろう。# file name : func.awkBEGIN { print fun(3863080011, 2613515386) # 254361 print fun(21321331, 12…

大きな数の先頭と末尾(2)

偶然,「大きな数の先頭と末尾」の後に類似問題が出たようだ。「大きな数の先頭と末尾」では本当は先頭1桁だけが必要なのだが,4 桁求めるようにしていた。更に,べき乗される数もそんなに大きいものは考えていなかった。なので,仕様を満たすために,以下の…

一休さんのとんち話

一休さんのとんち話にもあったが,「一日目は1粒,二日目は倍の2粒,三日目は更にその倍の4粒というように増やして行くとき,一日に 8000万粒以上になるのは何日目か」というもの。プログラムしてはいけない。ただ,そのためには log10(2)≒0.3010 を記憶して…

階乗とベンフォードの法則

8 バイト実数では,普通に階乗を計算しようとすると 171! は計算できない。> prod(1:170)[1] 7.257415615308e+306> prod(1:171)[1] Inf> factorial(171)[1] Inf 警告メッセージ: In factorial(171) : 'gammafn' 中の値が範囲を超えています フィボナッチ数列…

問題:大きな数の先頭と末尾

特別なライブラリや関数を用いずに,8 の 10000000 乗(8 ^ 1e7)の先頭 4 桁と末尾 4 桁を求めよ。 解答例はコメントを参照

フィボナッチ数列とベンフォードの法則

フィボナッチ数列は急速に大きくなり,普通に計算するとオーバーフローしてしまう。8 バイト実数での有効数字 16 桁なので,79 項目は 14472334024676220 と正確に表示できるが,それ以降は上位桁しかわからない。1476 項目は 1.306989e+308 となるが,1477 …

数理パズルなど

「難しいパズルを解きたい」と思うのは,「パズルを解くのが面白いから」というのが動機だろう パズルを解く参加者に制限を加えたり,正解が開示されなかったり,期限(?)が過ぎたら問題自体が参照できなくなったり,最初提示された締め切り日がズルズルズ…

サルベジオン社で宇宙船のデータを救え

「サルベジオン社で宇宙船のデータを救え」とのことで... 問題 1. キーは昇順になっているので,二分法で探索する。 求める値は "V406435859539156181269150751031" library(gmp)url = "http://salvageon.textfile.org/?db=1&index=%s"key = as.bigz("208050…