2008-04-01から1ヶ月間の記事一覧

Problem 27 - 素数生成式

素数な問題。Problem 27 オイラーは以下の二次式を考案している: n^2 + n + 41.この式は, nを0から39までの連続する整数としたときに40個の素数を生成する. しかし, n = 40のとき40^2 + 40 + 41 = 40(40 + 1) + 41となり41で割り切れる. また, n = 41のとき…

オイラー入門

「オイラーを読め、オイラーを読め」 最近ずっと頭の中でリピートしている。池袋のジュンク堂まで足を伸ばしてしまった。オイラー入門 (シュプリンガー数学リーディングス)作者: W.ダンハム,William Dunham,黒川信重,若山正人,百々谷哲也出版社/メーカー: シ…

Problem 26 - 循環節

やっと解けた。Problem 26 - PukiWiki 単位分数とは分子が1の分数である。分母が2から10の単位分数を10進数で表記すると次のようになる。1/2 = 0.5 1/3 = 0.(3) 1/4 = 0.25 1/5 = 0.2 1/6 = 0.1(6) 1/7 = 0.(142857) 1/8 = 0.125 1/9 = 0.(1) 1/10 = 0.10.1(…

数学ガールを読むぞぉ 8 - 下降階乗冪

さてと、出かける前にもうちょい。それほど難しくはなかったので6章まで読み進める。 数学ってスゲー難しい言葉がバンバン飛び出してくるので、名前を聞いただけでビビっちゃう。でも、落ち着いて読めば「ナンダそんなことか」って思えることが多くなった。 …

数学ガールを読むぞぉ 7 - フィボナッチ数列の一般項(2)

フィボナッチ数列の一般項の続きです。 フィボナッチの一般項は、なんですが、(1 + √5)^nの計算が重い。結局n回展開しなければならないため、計算回数は反復の時と変わらなかった。桁落ちしてしまうので、浮動小数点は使いたくないし・・・。 むむぅ・・・と…

数学ガールを読むぞぉ 6 - フィボナッチ数列の一般項

前回,フィボナッチ数列の母関数の一般項を求めることが出来たので、後は、フィボナッチ数列の一般項に向けてゴニョゴニョやるだけっす。 写経中・・・ 出来た!!フィボナッチ数列の一般項を手に入れた!! が・・・Schemeでやると誤差が出てしまう。四捨五…

数学ガールを読むぞぉ 5 - 漸化式

Schemeのお陰で息を吸うように再帰でプログラミング出来るようになりました。フィボナッチの定義をそのまま写せば、 (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 2)) (fib (- n 1)))))) (fib 10) ; 55 簡単ですね。が・・・ (fib 100…

数学ガールを読むぞぉ 4 - 無限級数

4章の前半戦。スゲー重要ポイントなので、キッチリやる。 初項1,公比xの0項からn項までの等比数列は、nを無限大まで伸ばす。 x ∞にすると、 なので、となって、等比数列の無限級数が得られた。 初項をaとしたときは、となる。 イマイチピンと来ないので、 実…

数学ガールを読むぞぉ 3 - ωのワルツ

三角関数の復習が終わったので、三章に入る。前読んだときははサッパリわからなかったんだけど、全然すんなり入ってくる。三角関数の復習して良かったかも。 写経中。・・・x^3 = 1はわかった。んじゃ、x^4 = 1はどうなる?x^4 = 1 (x^2 + 1)(x^2 - 1) = 0 (…

数学ガールを読むぞぉ 2 - 三角関数

Project Eulerやろうと思ったけど、数学の知識が足りなすぎる事に気づいた。ちと必要に迫られてきたので、高校数学の復習に数学ガールを再読することにした。 3章に進むといきなり倍角公式が出てくるけど、三角関数がヤバめだ。三角関数について復習してみた…

博士の愛した数式

一気に読んでしまった。博士の愛した数式 (新潮文庫)作者: 小川洋子出版社/メーカー: 新潮社発売日: 2005/11/26メディア: 文庫購入: 44人 クリック: 1,371回この商品を含むブログ (1054件) を見るWikipediaで友愛数について調べてたら、この本に出会った。 …

素数のお勉強 4 - 約数の和

数学ガールを再読中デス。2章のミルカさんの宿題より。 正の整数nが与えられていたとき、nの約数の和を求めよ。 紙に書いて写経中。・・・アレ?なんで掛け算ナンダ。(a + b)(c + d) = a(c + d) + b(c + d) = ac + ad + bc + bdと。これが分配法則。中学くら…

UVa # 100 The 3n + 1 problem - はじめてのUVa

C++

登録してみた。UVa Online Judge - Homeオイラーより断然むずそう。言語がC/C++, Java, Pascalしかないってのが悲しいところですが、あんま使ったことのないC++の練習にしようかと。 問題は、入力aから入力bの範囲でコラッツのステップ数が最大になるものを…

Problem 17 - 数字を数えると

面倒な問題が残っていたので片付ける。Problem 17 - PukiWiki 1 から 5 までの数字を英単語で書けば one, two, three, four, five であり、全部で 3 + 3 + 4 + 4 + 5 = 19 の文字が使われている。では 1 から 1000 (one thousand) までの数字をすべて英単語…

Problem 2の解答例を読む

これはショックだ。Problem 2の解答例も読んでみる。問題は、 フィボナッチ数列の項は前の2つの項の和である。最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...数列の項が400万を超えない範囲で、偶数の…

Problem 1の解答例を読む

Project EulerにProblem1の解答例がアップされていたので読んでみる。問題は、 10未満の自然数のうち、3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり、これらの合計は 23 になる。同じようにして、1,000 未満の 3 か 5 の倍数になっている…

Problem 97 - シェルピンスキー数

最近、素数ばっかりだなProblem 97 - PukiWiki 100万桁を超える初めての素数は1999年に発見された. これはメルセンヌ素数であり, 2^6972593-1 である. 実際, 2,098,960桁ある. それ以降も, より多くの桁になるメルセンヌ素数 (2p-1の形の数) が他にも発見さ…

Problem 23 - 2つの過剰数の和

結構大変だった。Problem 23 - PukiWiki 完全数とは, その数の真の約数の和がそれ自身と一致する数のことである. たとえば, 28の真の約数の和は, 1 + 2 + 4 + 7 + 14 = 28であるので, 28は完全数である.真の約数の和がその数よりも少ないものを不足数といい,…

素数のお勉強 3 - 過剰数

過剰数を求めてみる。過剰数は、約数の総和が元の数の2倍より大きい数のことである。 (define (divisor n) (letrec ((iter (lambda (m) (cond ((> m n) '()) ((= (modulo n m) 0) (cons m (iter (+ m 1)))) (else (iter (+ m 1))))))) (iter 1))) (filter (l…

ls -1

ls -1で1行表示。 % ls hage hoge moge % ls -1 hage hoge mogemanより。 -1 list one file per line 知らなかった。

素数のお勉強 2 - 完全数

Problem 23 - PukiWikiがよくわからないので、ちょっと勉強中。 2進数で表すと、1111...1と並んでいる数の事をメルセンヌ数という。M_p=2^p - 1の形で表せる。メルセンヌ数のなかで、素数となるものをメルセンヌ素数という。pが素数であるとき、メルセンヌ素…

素数のお勉強

ちと予習しとこう。素数 - Wikipediaより。オイラーの発見した式、f(n) = n^2 + n + 41 は、n = 0, …, 39 において全て素数となる。 (length (filter prime? (list-tabulate 40 (lambda (n) (+ (* n n) n 41))))) ; 40 ホントダ。それ以上だと。 (length (fi…

Problem 35 - 循環素数

簡単そうなのからいくよ。Problem 35 - Project Euler The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime.There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 3…

call/ccに関する疑問

call/ccで使われなかった部分はどこに行ってしまうんだろう。という疑問。Karetta|Gaucheプログラミング(立読み版)|継続渡しスタイルより。 (* 2)を使わないで継続を実行する。 (call/cc (lambda (cont) (* 2 (cont 10)))) ; 10 contの中には、PRINT-AND-NEX…

フェルマーの最終定理

オイラーについて調べてた。 まさに、オイラーは 「計算するために生まれてきた」 と言われるぐらい、天才的な数学の申し子だった。「人が息をするように、鳥が空を飛ぶように、オイラーは計算をする」 と評されるオイラーは、とにかく、計算が速く、長大な…

新関数を考えてみた

unfoldは便利なんだけど、cons邪魔杉なので新関数unを考えてみた。 (define (un p tail f seed) (if (p seed) (tail seed) (f seed (lambda (x) (un p tail f x))))) fは2個の引数、seedと手続きを取るようにする。 リストのコピー。 (un null? values (lamb…

unfoldのメモ

unfoldが便利っぽい。メモメモgaucheのマニュアルを見ると、 Function: unfold p f g seed &optional tail-gen [SRFI-1] 基本リスト再帰構築子です。以下のように再帰的に定義されています。 (unfold p f g seed tail-gen) == (if (p seed) (tail-gen seed) …

Problem 10 - 力業

お、やっと終わった。20分くらい放置。 (define (primers n) (define (iter l) (if (null? l) '() (cons (car l) (iter (filter (lambda (o) (not (zero? (modulo o (car l))))) (cdr l)))))) (iter (cons 2 (list-tabulate (quotient (- n 1) 2) (lambda (x…

ふつうに解ける問題が

30問を目前にしてふつうに解ける問題がなくなってきた。ちょっとペースを落とそう。 もう一段階上を目指さないと無理っぽい。 ここからが勝負。

Problem 29 - a^b

イマイチ。Problem 29 - PukiWiki 2 ≤ a ≤ 5 と 2 ≤ b ≤ 5について, a^bを全て考えてみよう: * 2^2=4, 2^3=8, 2^4=16, 2^5=32 * 3^2=9, 3^3=27, 3^4=81, 3^5=243 * 4^2=16, 4^3=64, 4^4=256, 4^5=1024 * 5^2=25, 5^3=125, 5^4=625, 5^5=3125これらを小さい順…