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

猫尾製作所

あまりアテにしないでね

3月14日は「数学の日」

もう期日は過ぎてしまいましたが、3月14日は「数学の日」です。では、なぜ3月14日か、というと、数学で最も重要になってくる定数である円周率()の近似値が 3.14 であるためとのことです。ここで今、近似値といいましたが、円周率 は 3.1415926535897932384…

数学カルタ

『数学カルタ』を公開しました。 http://www.geocities.jp/thilogane/math_carta_2013.html2013年のアドベント企画 Mathematics Advent Calendar 2013 に私も参戦。 私は不勉強かつ偽数学徒なもんで、論文みたいなことは書けないんですけれど、せっかく参加…

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

先ほどの続き。メイン部分を次のように書き換えます。 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…

2013年初記事

新しい年2013年となりました。和暦は平成25年、皇紀(神武天皇即位紀元)2673年、干支は癸巳(みずのと・み)、九星では五黄土星の年です。 個人的には喪中(家族を亡くして最初に迎える新年)のため、挨拶は控えさせていただきますが。今年もまたなんとかや…

make 2013

来年は2013年、和暦では平成25年ですね。2012年1月7日に「2012」を、2011年1月4日に「2011」を作りました。 同様のことを来年の年号「2013」でおこなってみようと思います。 今回は平成25年の「25」の最小限回数の置数、及び(最小限の種類または個数の)演…

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) …

Q[sqrt(D)]は四則で閉じているか

前回の記事では、ある集合がある演算について閉じているとはどういうことかを説明いたしました。今回はその発展として整数 D に対して、有理数にその平方根を添加したもの(体と呼ばれるらしいですが、私もそこらへんは厳密には勉強不足です) は四則演算(…

集合がある演算について閉じているとは

定義 集合 S が、ある演算子 ☆ について閉じているとは次のようなことをいっています。∀ a, b ∈ S, a☆b ∈ S数学の言語を用いましたが、日本語で敢えて説明するならば「集合 S の中からどの2つの数(数でないとしても、2項演算が定義されるのであればOK)a, b…

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

# 階乗の定義 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 …

階乗進数と順列の対応付け

階乗進法で表した自然数と順列との対応付けについて考えます。まずは小さな例から考えます。3種類の自然数 {0, 1, 2} を並び替える順列は次の6つでした。6 = 3! です。 012 021 102 120 201 210 これに 0 から 5 までの整数*1を辞書式順に割り振ります。 012…

階乗進法

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

位取り記数法

最初にお知らせ。今回からは細かいところや、使うメリットがあまりないところまで TeX 記法を用いるのをやめます。n 個の異なる要素の並び替え(順列)の全て n! 種類を辞書に載せたとき、ある特定の番号(自然数)のところにはどんな順列が来るか、あるいは…

順列と自然数の対応付け

前回の続きです。前回の記事では3つのものを並び替える順列をお盆休みの予定(墓参り, 海水浴, 図書館)の配分という具体例で持って表現しました。そして、その予定の配分には6通りあることも示しました。この3つの予定を抽象的なもの、例えば整数で置き換え…

順列と階乗

異なる 個の対象の、重複しないいろいろな並び方を 個の順列(じゅんれつ)といいます。まず、辞書的な定義から入りました。しかし、これだけではわかりにくいので、次に順列の具体例について書きます。並び方、とありますが、一般的にいわれる並べるもので…

連分数展開の逆操作を行う

連分数展開 が与えられたとします。それを単一の分数に直す計算は単純な手計算では大変面倒です。ですが、次のような漸化式でもって の 途中までの連分数展開 を単一の分数 に直したときの の値が計算できます。, , , , , .それを利用して、有限連分数を単一…

空き巣の原理

2010年12月16日付の私のはてなダイアリーの記事で『鳩の巣原理』というものをご紹介しました。この原理、というか考え方は「巣の個数を超える数の鳩がいる場合、必ずどれかの巣には2匹以上の鳩が入っている」ということでした。で、昨日私がなんとなく思いつ…

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

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

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

前回の記事にて という連続するいくつかの整数の積のかたちの多項式を扱ったのですが、今回はその展開について考えます。この式を展開すると、 に関する 次式になりますが、それぞれの の係数はどのようになっているのでしょう。まず、最初のいくつかの つい…

連続する整数の積からなる数列の和

特別な数列の和において、次のような関係が成り立ちます。左辺は 項の掛け合わせ、右辺は 項の掛け合わせです。具体的に書くならば、 \sum_{k=1}^{n} k = \frac{1}{2} n(n+1) \\ \sum_{k=1}^{n} k(k+1) = \frac{1}{3} n(n+1)(n+2) \\ \sum_{k=1}^{n} k(k+1)(…

数値微分の応用(Newton 法)

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

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

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

数値微分(その3)

数値微分について、いちばん簡単に見える手法を示させていただきます。今、仮にいたるところで連続である関数 を想定します。そもそも、 の における微分係数 は数学的に次のように定義されるところでした。極限をとっているので、 は限りなく 0 に近づくの…

数値微分(その2)

前回(その1) の続きです。まずは、前回の記事に少々の補足を。一般に は必ずしも数式で表現されるとは限りません。むしろ、自然界の現象をパラメータ( に相当する。時刻や場所などの情報のこと。複数あるいは無限個の変数が必要な場合もある)を介して数…

数値微分(その1)

理系の大学に入学すると真っ先に微分積分学の洗礼を受けるものだと思われます。微分積分は高等学校の数学II・IIIでも扱います。大学の入学試験を経て大学初年級までの段階では数学というのはひたすら計算して慣れる、ということが重要視されるようになってく…