R

Problem 140

Problem 140 - Project Euler 無限級数を考える。 ここで、で、、である。これに従うと1, 4, 5, 9, 14, 23,...のような数列ができる。 この問題では、が正整数となるようなxについて考える。 が自然数となるxのうち最初の5つを示すと次のようになる。 x 1 2/…

Problem 139

Problem 139 - Project Euler (a, b, c)を各辺の長さが整数であるような直角三角形の各辺の長さとする。このとき、この直角三角形を4つ組み合わせることで、直角三角形の長辺cを1辺の長さとする正方形を作ることができる(上記問題文リンク先参照)。 例えば、…

Problem 138

Problem 138 - Project Euler 底辺bの長さが16、斜辺Lの長さが17の二等辺三角形を考える。 ピタゴラスの定理によれば、この二等辺三角形の高さhはと求められる。この場合hはbよりも長さが1だけ短い。 b = 272, L=305とすると、h = 273であり、hはbより1だけ…

Problem 137

Problem 137 - Project Euler をk番目のフィボナッチ数(, , からなる数列で、1, 1, 2, 3, 5, 8, ...)として、無限級数を考える。 この問題では、の値が正整数となるようなxについて考える。 驚くべきことに、である。 最初の5つの自然数に対するxの値は次の…

Rでエラトステネスの篩

すごい暇だったのでエラトステネスの篩(Sieve of Eratosthenes)分かる範囲で調べてみようと思った。 数学において、エラトステネスの篩(エラトステネスのふるい)は、指定された整数以下の全ての素数を発見するための単純なアルゴリズムである。古代ギリシ…

Problem 136

Problem 136 - Project Euler 正整数かつ等差数列である3つの数x, y, zと、正整数nについての方程式を考える。n=20のとき、方程式はただ一つの解を持つ。 100未満のnについて、そのうち25個が方程式に対しだた一つの解を持つ。 5千万より小さいnについて、た…

Problem 135

Problem 135 - Project Euler 正整数x, y, zが等差数列として与えられたとき、方程式が丁度2つの解をもつ最小のnは27である。 1155は丁度10個の解を持つ最小のnである。 百万未満のnのうち丁度10個の解を持つものはいくつあるか?

Problem 134

Problem 134 - Project Euler 連続する2つの素数p1 = 19とp2 = 23を考える。1219は、末尾の桁にp1を含み、かつp2で割り切れるような最小の数である。 実際のところ、p1 = 3, p2 = 5の場合をのぞく全ての連続する素数p2 > p1についてこのような数nが存在する…

Problem 133

Problem 133 - Project Euler 1のみからなる数(1, 11, 111, ...)をrepunitと呼び、k桁のrepunitをR(k)と表す。 R()について考える。 R(10), R(100), R(1000)は17で割り切れないが、R(10000)は17で割り切れる。一方、どのようなnをもってきてもR()を19で割り…

Problem 132

Problem 132 - Project Euler 1のみからなる数(1, 11, 111, ...)をrepunitと呼ぶ。k桁のrepunitをR(k)で表すことにしよう。 さて、R(10) = 1111111111を素因数分解すると素因数は11, 41, 271, 9091であるから、素因数の総和は9414である。 R()の素因数のうち…

Problem 131

Problem 131 - Project Euler いくつかの素数pにはが立方数となるような自然数nが存在する。 例えば、p=19のとき、n=8であり、。 このような性質をもつ素数pに対するnは一意に定まる。また、100未満の素数に限るとこのような素数は4つしかない。 100万未満の…

Problem 130

Problem 130 - PukiWiki (A(n)についてはProblem 129を参照) 5より大きな全ての素数pに対し、A(p)はp-1を割り切る。例えばp=41のとき、A(41)=5であるが、5は40を割り切る。 また、少ないながらもA(n)がn-1を割り切るような合成数も存在する。はじめの5つを示…

Problem 129

Problem 129 - PukiWiki 1のみを並べて作った数(1, 111, 1111111, ...etc.)をrepunitと呼ぶ。また、k桁のrepunitをR(k)で表すことにしよう。例えば、R(6) = 111111。 10と互いに素である自然数nを考えたとき、R(k)がnで割り切れる、というようなkが必ず存在…

Problem 128

Problem 128 - PukiWiki 1から順に2, 3, 4,...と数字が書かれた六角形のタイルを中心から外側に向かって反時計回りに敷き詰めていく。周の開始は時計でいう12時の位置とする(詳しくはリンク先問題文中の図を参照)。 値nが書かれたタイルは6枚のタイルに囲ま…

sapply()でハマった

R

ので同じ過ちを避けるためメモ。 他のいくつかのapply系関数でも似たようなことが起こる(みんな内部でlapply呼んでたりするので)。 問題はsapplyに与える関数の返り値にnamesを設定していると起こる。 例示のため引数をnamesに設定した値を返す関数を定義す…

gnupackでESS+Rを使うとき用のinit.el

init.elの最後にコピペすると私好みの動作になります!!

なんでn-1なんですか

R

不偏分散を計算する際になぜnではなくn-1で割るのか。理由はともかくnで割ってマズイのは割ってみれば分かります。 やってみよう サイコロ: 1から6までが等しい確率で出る理想的なサイコロ様を用意 分散の計算: サイコロをn回振るごとに分散と不偏分散を計算…

ggplot2のセパレータをドットにしたい

アンダースコアは library(ggplot2) for(o in ls(pos = "package:ggplot2")) assign((gsub("_", ".", o)), eval(as.symbol(o))) p <- qplot(wt, mpg, data = mtcars) p + geom_smooth(aes(group=cyl), method="lm") p + geom.smooth(aes(group=cyl), method=…

R in a Nutshellメモ (3) - オブジェクト指向プログラミング: S4

R

前回まで R in a Nutshellメモ (1) - もうカツ丼でいいよな R in a Nutshellメモ (2) - もうカツ丼でいいよな 知らないところだけをメモしていたら知らないことばかりで長くなったのでオブジェクト指向プログラミング(S4)の部分だけまとめ直してみました. S…

R in a Nutshellメモ (2)

R

前回 R in a Nutshellメモ (1) - もうカツ丼でいいよな まとめ 油断するとメモった内容すら忘れるということに気付いたので先にメモった部分の要点まとめておきます. with()やwithin()を使えばattach()せずにデータフレームの成分に名前だけでアクセスでき…

R in a Nutshellメモ (1)

R

R in a Nutshell(R in a Nutshell - O'Reilly Media)のiPhoneアプリ版を買ってぼちぼち読んでるのですが,読んだそばから忘れる&後から参照がしにくいので気になった部分をメモしていくことにしました. あくまで気になった部分なので特に実用的ではないかも…

Planck distribution law for black body radiation

昔描きたくて色々やって結局諦めたようなことがあったのを思い出したので書いてみたけど、特に難しいことは無かった。 何に躓いていたのか思い出せないのは少しもったいない気分。 そーす ## Constants h <- 6.6260693 * 10^-34 # Planck's constant c <- 29…

細菌コロニー形成曲線(実践編)

前回の記事(細菌コロニー形成曲線 - もうカツ丼でいいよな)は「それで実際のデータはどうやって使えばいいんだよ!!!」という点が欠けていて面白みがないのでR使ってコロニー形成曲線求めてみました。 求めるパラメータ コロニー形成曲線は次の関係式によ…

Emacs + ESSでR(for Windows users)

むかーしむかしにWindowsでESSを使う方法についてメモったことがあるのですが(認証がかかっています)、今から見ると古いだけじゃなくて割といい加減なこと書いてるのにうっかり放置してたら某所でふわっと紹介されてしまったのでさすがにアレだなと思ってち…

ロトカ・ヴォルテラの捕食式

捕食者と被食者の個体数は捕食を通じて互いに影響しており、時に双方の個体数が共振動することがある。例えば、カナダのカンジキウサギ(被食者)とカナダオオヤマネコ(捕食者)の個体数は、約10年の周期で共振動している。野外では気象条件などの影響を排除し…

Problem 188

Problem 188 - Project Euler 正整数aのbによる"超冪",もしくは"テトレーション"をa↑↑bまたはbaと表現し,これを次のように再帰的に定義する.a↑↑1 = a a↑↑(k+1) = a(a↑↑k)よって例えば3↑↑2=33=27,3↑↑3=327=7625597484987,そして3↑↑4はおおよそ103.638334…

Problem 204

Problem 204 - Project Euler ハミング数とは5を超える素因数を持たない正整数のことである. 小さい方からいくつか示すと,1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15...がハミング数である. 10^8未満の正整数のうちハミング数は1105個ある.正整数のうち,nを超…

Problem 173

Problem 173 - Project Euler 正方形の輪郭と正方形の"穴"を持ち,縦横に対象なものをsquare laminaと呼ぶことにする.正方形のタイルを並べてsquare laminaを作成することを考えると,タイルを32枚ちょうど使うのであれば2種類のsquare laminaを作成できる…

Problem 187

Problem 187 - Project Euler 合成数とは少なくとも2つの素因数を含む数の事である.例えば,15=3×5,9=3×3,12=2×2×3などである. 30以下の数の中には素因数(異なる必要はない)を2つだけ含むものが10ある(4, 6, 9, 10, 14, 15, 21, 22, 25, 26). n の範囲…

logit法,probit法を用いてLD50等を求める

R

物質の毒性を調べる際などに,その指標としてLD50(50% Lethal Dose, 半数致死量)という値をしばしば求める*1.これはその濃度の物質を個体群に投与した場合に,半数の個体が死亡する濃度や量とされる. 素朴に考えると,濃度を説明変数,死亡率を従属変数と…