2015-01-01から1年間の記事一覧
ガラケーを使っている人が出した暗号というのが,ヒントなんだろうとピンときた。2 タッチ入力かと思ったが,ちょと違った。ケータイ入力の方だ。まずは,平文化decoding = function(x) { char = list(c("あ", "い", "う", "え", "お", "ぁ", "ぃ", "ぅ", "…
待ち合わせの時間と場所を表しているというヒント:2x+3解答2x+3=169 で,x=83=0x53 ASCII コードだろうR なら簡単intToUtf8 関数だけで答が出るx = c(169, 147, 161, 173, 145, 161, 67, 159, 149, 67, 171, 133, 153, 133, 161, 169, 133, 159, 67, 137, 1…
0 ~ 9 までの数字をすべて使った割り算の筆算のうち,「割られる数」が最も小さくなるような場合を求め,その式を答えよ。なお、「割られる数」と「割る数」はともに正の整数とし,整数の商と余りを求めるものとする。calc = function(numerator, denominat…
各人(name)の拘束日時(date, begin, end) について以下のような予定表がある(3人以上でもよい)。 name date begin end1 新井 2015/04/27 08:30 17:002 新井 2015/04/28 09:00 16:303 新井 2015/04/29 08:00 17:004 新井 2015/04/30 09:00 16:305 新井 201…
(ai, bi), i = 1,2,...n において,その部分集合 (am, bm), 1 ≦ m ≦ n を考える。部分集合の全ての要素において j > k のときに aj > ak && bj > bk が成り立つ最大の部分集合の個数を求める。(166, 71)(178, 84)(176, 94)(174, 65)(174, 65)のときには,(16…
2 つの時刻の間の時間数の筆算で,0 ~ 9 の全てが現れる計算は何通りあるか例 16時27分 - 5時38分========== 10時49分0x 時とか 0y 分のような zero fill の 0 は除くまた,0 時 zz 分も除くプログラム1以下の AWK(GAWK) プログラムが 4 秒ほどで,一番速か…
R だと,> ×> > s = 0> > for (n in 0:9)> {> s = s+n> }> > print(s)> > > > ◯> > s = 0:9> > Reduce("+", s)sum(s) で十分じゃないのかな? sum の中で何がどう扱われていようと,見かけは関数に過ぎないわけで。 主成分分析だって prcomp 関数一つででき…
フィボナッチ数列の各項には,行列を用いて以下のような関係がある。この行列を活用して,数同士の足し算や掛け算の回数を 200 回以内に抑えてフィボナッチ数列の第 1000 項の下 5 桁を求めよ。解答としては「フィボナッチ数列の第 1000 項の下 5 桁」と「計…
掛け算を筆算で行うとき,0 ~ 9 までの数字をすべて使う筆算のうち,掛け算の結果が最も小さくなるものを求めよ。lim = 245 # 後で再設定したmin.ans = lim^2for (i in 1:lim) { a = unlist(strsplit(as.character(i), "")) for (j in 1:lim) { n = as.nume…
10 進数の整数 n に対し,1 から n の整数を 2 進数で表したときの各々の 1 の個数の和を求めよ。F = function(n) { # 再帰関数 if (n <= 2) return(n) k = floor(log(n, base=2)) # 2 進数で表現したときの桁数 - 1 ones = numeric(k) # k 桁で表現される 0…
全ての 2 よりも大きな偶数は二つの素数の和として表すことができる 2 つの素数の和が 2014 になるのは? func = function(n = 2014) { tbl = 1:n tbl[1] = 0 for (i in 2:floor(sqrt(n))) { if (tbl[i]) tbl[2:(n%/%i) * i] = 0 } prime = tbl[tbl > 0] a =…
そんな言葉,聞いたことないよな~ということで調べてみたら, 「人に知られないようにひそかにする善行。隠れた、よい行い。「―を積む」⇔陽徳。」 そう。あなた,その意味がわかっていて使ったの? それは,ほかの人からの賞賛の言葉。, それは,自分自身…
何回いえばわかるんだ? あなたのその文脈での「標本数」の使い方は,間違えている。サンプルサイズといいなさい。 > AIC で選ばれる統計モデルは標本数に影響されますか? > > はい,影響されます> 標本数が少ないとき (情報が少ないとき): より単純なモデル…
二次式 αx^2+βx+γ を (ax+b)(cx+d) の形に因数分解せよと func = function(a, b, c) {## factorize = function(n) { div = function(n) { if (n%%2 == 0) return(2) else if (n%%3 == 0) return(3) maxitr = floor(sqrt(n)) i = 1 repeat { i = i + 4 if (i …
長い文章があって,その後に数字ベクトルが来れば,そのベクトルは一番単純には文章中の文字の位置番号を表しているのだろうと思う罠。 > s = "春は、あけぼの。やうやう白くなりゆく、山ぎは少し明りて、紫だちたる雲のほそくたなびきたる。 夏は、夜。月の…
> 昔もつぶやいた気がするけど、ggplot2の真の価値は見た目の美しさではないんだけどな。 「見た目も汚い!!」っていっているんだけど,わかってもらえないかな。 > 2変数だったらbaseでもどっちでもいい。でも多変数にな るとfacet、グラフタイプの入れ替え…
「邪智暴虐なエクセル王を倒そう」だの「邪智暴虐なエクセル王を倒そう readxl版」だのと R で Excel データを読むというのがあるけど...いずれも dplyr を使っているのも鼻につく(笑)生け贄にされた Excel ファイルなんて,かわいいもんですよ。 こんなチ…
「きれいなグラフ」の評価基準が理解できない。 パワーポイントの発表なら自己満足できるだろうけど,論文投稿や本に載せるとき,きっと編集者からクレームがつくだろう。そのままでは版下に使えない。 そもそも,Windows ではどうあがいても,フォント自体…
AWK(GAWK) で書いてみた。 このような場合は AWK の方がすっきり書ける。 #!/usr/local/bin/gawk -ffunction euclid(m, n, temp) { while ( (temp = n % m) != 0) { n = m m = temp } return m}function prog(s1, s2, a, b, gcm, denominator, numerator) { …
久しぶりに AWK(GAWK)で書いてみた。 やはり R で書くとすっきり書ける。 $ cat prog.awk#!/usr/local/bin/gawk -ffunction F(term, a, b, c, n, count, d) { a = 3 b = 0 c = 2 count = 1 for (n = 3; ; n++) { d = a+b if (d % n == 0 && ++count == ter…
素因数分解なんだけど > 対象の数を、まずは2でこれ以上割り切れなくなるまで割り尽くします。> 次にその商を3で割り尽くします。> さらにその商を4,5,6,・・・の順で割りつくしていけば...4 や 6... で割ることを試みるのは,無駄だと知らない訳か? 5 以上…
Q1. 数列 F(n) を以下の漸化式で定義する。F(0) = 3, F(1) = 0, F(2) = 2,F(n) = F(n-2) + F(n-3) (n>2のとき)このような数列において,n > 1 かつ F(n) の値が n が割り切れる場合を考える。たとえば,n = 2, 3, 5, 7, 11, 13, 17, 19 のとき,F(n) の値は…
文字列 "a/b" の形式で表される 2 つの分数の和を,同じ形式で表示する分母が 1 の場合は,分子だけを表示するfunc = function(s1, s2) { euclid = function(m, n) { # ユークリッドの互除法 while ( (temp = n%%m) != 0) { n = m m = temp } return(m) } a …
「探索を逆方向から攻める」は不完全であった。条件を満たす最小の整数を漏らしていた。 b = 0.111111 * 1:9 # b は 0.111111 ~ 0.999999 の 9 種類b2 = 2 * bb.sq = b^2n = 1e+05 # 探索範囲上限for (a in 1:n) { x = a * b2 + b.sq # 求める整数から a^2 …
1 ~ n までの整数乱数を発生する sample 関数を使うとき,第1引数はベクトルを指定しない方が速い。 system.time({ set.seed(1) a = sample(1:1e8, 1e5, replace=TRUE)})system.time({ set.seed(1) b = sample(1e8, 1e5, replace=TRUE)})all(a == b) 実行結…
符号付き 32 ビット整数を英語で読めとのお達しで...o1 = c("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")o2…
「カプレカ数」での,二番目の定義によるものを出力するプログラム。 かなり時間のかかるプログラムであり,5 番目のカプレカ数を出力するまでには 35 秒かかる。 N = 631764for (i in 0:N) { str = unlist(strsplit(as.character(i), "")) big = as.numeric…
0 から 1000 までのカプレカ数を求めよとのことだ...カプレカ数とは馴染みのないものであるが,定義は 2 通りあるそうだ。1. 2 乗して前の部分と後ろの部分に分けて(偶数桁 2n 桁である場合は先頭 n 桁と末尾 n 桁に分け,奇数桁 2n + 1 桁である場合は先頭…
「10000 以下の最大の完全数を答えよ」ということなのだが,完全数は小さい方から順に,6, 28, 496, 8128, 33550336, 8589869056, 137438691328, 2305843008139952128, 2658455991569831744654692615953842176, 1915619426082361072947933780843036381309973…
数字の 0 から 9 までを一度ずつ使ってできる数で,0 を除く全ての一桁の数で割り切れ,この数に含まれる任意の隣り合う二桁でも割り切れる,そんな数を探せ。 library(e1071) d = cbind(permutations(9), 0) # 2 と 5 を因数に含むので,末尾が 0 の数だ w …