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

猫尾製作所

あまりアテにしないでね

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つの予定を抽象的なもの、例えば整数で置き換え…

順列と階乗

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