読者です 読者をやめる 読者になる 読者になる

猫尾製作所

あまりアテにしないでね

月の何日が素数日になりやすいだろう

先ほどの続き。メイン部分を次のように書き換えます。 if ARGV.length > 1 then y0 = ARGV[0].to_i y1 = ARGV[1].to_i else puts "Please give two integers" exit -1 end n = Array.new(32) for i in 0..31 do n[i] = 0 end for y in y0..y1 do for m in 1.…

素数日について

先ほどの続きというわけではありませんが。日付をyyyymmdd形式で8桁表記したとき(例えば、2013年1月3日なら 20130103)に、それを整数とみなして(例では二千十三万百三とみなす)その数が素数である日を「素数日」と呼ぶことにします。例えば、2013年1月3…

sqrt(d) の連分数展開

コード # sqrt(d) の連分数展開 # 最大公約数(2つの整数) def gcd2(a, b) if a == 0 || b == 0 then return 0 end while a % b != 0 do c = a % b a = b b = c end return b end # 最大公約数(3つの整数) def gcd3(a, b, c) return gcd2(gcd2(a, b), c) …

階乗進法と順列の対応のプログラミング

# 階乗の定義 def fact(n) if n > 0 then return (n * fact(n-1)) elsif n == 0 then return 1 else retrun nil end end # 自然数 n から階乗進法に変換 def numtofactb(n) d = 1 while fact(d+1) <= n do d += 1 end a = Array.new(d+1) while d > 0 do fd …

階乗進法

0 以上 N! 未満の自然数 n (つまり 0 自然数 n を表現するというアイディアです。式で書くと次のようになります。(☆) 2行目の制限も含めて具体的に解説いたします。例えば、85 を 階乗進法で表すとしましょう。4! = 24, 5! = 120 なので、4! 85 = 3 * 4! +…

Rubyによる連続する整数の積の多項式の展開

前回の記事では、 という連続するいくつかの整数の積のかたちの多項式を展開したときの各項の係数を求める漸化式を導出しましたが、今回はそのプログラミング編です。すなおに、漸化式を Ruby プログラムで実装すると次のようになるようです。 (あら、はて…

数値微分の応用(Newton 法)

今日は数値微分の応用として、関数を定義するだけで(微分した関数を式の形で得られなくても、自動的に数値微分を行う)その根(解)を求めるプログラムを書きました。ニュートン法とは次のような漸化式で、値域も定義域も実数(実数の部分集合でも可)であ…

数値微分(プログラミング編)

iruby の環境があれば、Ruby をインタプリタで実行することが出来ます。iruby は UNIX 環境上のみならず、Windows 環境上でも実行が可能です。また、スマートフォンでも実行可能である場合もあります。Ruby で数値微分を行うプログラムを書いてみました。 # …