タグ

アルゴリズムと数学に関するbutyricacidのブックマーク (11)

  • 乱数のたのしい話と遺伝アルゴリズム - きしだのHatena

    金曜日の「プログラマのための数学勉強会@福岡」で乱数の話をしてきました。 プログラマのための数学勉強会@福岡 #3 - connpass で、乱数の生成だとか、クイックソートや素数判定などの乱択アルゴリズムの話とかをしました。 乱数タノシイヨ 乱数のたのしい話 from なおき きしだ その中で、遺伝アルゴリズムで巡回セールスマン問題(TSP)を解くというのをやってみました。遺伝アルゴリズム、すいぶん昔から名前は知ってて、どういうアルゴリズムかも知ってて、実装もそんな難しくないと知りつつ、書く機会がありませんでした。なので、この機会に書いてみようと。 とりあえず最初に完全にランダムでTSPを解いてみます。 TSP with random ぐちゃぐちゃですね。 下部のグラフはその時点での最短距離。最初に距離が短いものをみつけていくけどだんだんみつかりにくくなる、という感じになっています。 1

    乱数のたのしい話と遺伝アルゴリズム - きしだのHatena
  • コロキウム室(Bezier曲線の問題)

    Bezier曲線の問題 Bezier曲線(ベジェ曲線)は、TrueTypeフォントやAdobe Illustrator等のソフト で利用されている、コンピュータグラフィクスでお馴染みの曲線です。 平面上の3次Bezier曲線とは、以下の様に媒介変数表示できる有限長の曲線です: 任意の4点P1(x1,y1)、P2(x2,y2)、 P3(x3,y3)、P4(x4,y4)を与え、 x = t3 ・ x4 + t2 ・ (1-t) ・ x3 + t ・ (1-t)2 ・ x2 + (1-t)3 ・ x1 y = t3 ・ y4 + t2 ・ (1-t) ・ y3 + t ・ (1-t)2 ・ y2 + (1-t)3 ・ y1 0≦t≦1 そこで、問題です。 『互いに異なる任意の4点を与えた時、この4点で描いた3次Bezier曲線C までの距離が定数L>0である点が描く軌跡Fを求めて下さい』 つまり

  • RSA公開鍵から素数の積を取り出す方法 - hnwの日記

    RSA暗号はHTTPSやSSHの通信で利用されている暗号化方式です。公開鍵として巨大な素数の積を交換しあって暗号に利用しており、この素因数分解が困難であることにより安全性が担保されています。このことは教科書にも載っているような内容で、ご存じの方も多いかと思います。 ところで、その素数の積を実際に見たことってありますか?少なくとも僕は見たことがありませんでしたし、大抵の人は見たことが無いのではないでしょうか。稿ではこの公開鍵の情報を見る方法を紹介します。 OpenSSH公開鍵の中身を見る まずはOpenSSHの公開鍵の情報を取り出してみます。OpenSSHの公開鍵は次のようなものです。 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCw+XdXSrhBcDFAXPcisrc8im4y8ytC46HEQ0GsWOph9OPK1elTQmBD5LATGfp4JG4

    RSA公開鍵から素数の積を取り出す方法 - hnwの日記
  • 平方数かどうかを高速に判定する方法 - hnwの日記

    平方数とは、ある整数の平方(=二乗)であるような整数のことを言います。つまり、0,1,4,9,16,...が平方数ということになります。 ところで、与えられた整数が平方数かどうかを判定するにはどうすれば良いでしょうか。与えられた整数の平方根の小数点以下を切り捨て、それを二乗して元の数になるかどうか、というのがすぐ思いつく実装です。 <?php function is_square($n) { $sqrt = floor(sqrt($n)); return ($sqrt*$sqrt == $n); } しかし、平方根の計算は比較的重い処理です。もっと高速化する方法は無いのでしょうか。 多倍長整数演算ライブラリGNU MPには平方数かどうかを判定するmpz_perfect_square_p関数が存在します(PHPでもgmp_perfect_square関数として利用できます)。稿ではこの実装

    平方数かどうかを高速に判定する方法 - hnwの日記
  • 朝日新聞グローブ (GLOBE)|数学という力 Power of Mathematics -- 折って1回切るだけで…

    [Part1] どんな形でも無限に作れる。エリックは証明した 一枚の四角い紙を何回も折りたたみ、はさみを一回だけ入れる。紙を広げると、様々な形や模様が生まれる。だれもが幼いときにやったことのある遊びだ。では、どれだけの種類の形が作れるのだろうか。そんな純粋な疑問に、真っ正面から取り組んだ数学者がいる。 折りたたんだ紙を組み合わせた「オリガミ」の作品を手にするエリック=宮地ゆう撮影 エリック・ディメイン(28)。2001年、米マサチューセッツ工科大(MIT)に20歳というMIT史上最年少の若さで招かれた天才数学者だ。「オリガミ数学」と呼ばれる分野で斬新なアイデアを次々と打ち出してきた。その研究は今や、車のエアバッグの折りたたみ方や、スペースシャトルに搭載する望遠鏡の収納などにも応用されている。 09年12月。エリックをMITに訪ねた。研究室は、不思議な立方体やくす玉などが、机と床いっぱいに転

  • はてなブログ | 無料ブログを作成しよう

    新米と秋刀魚のわた焼き お刺身用の秋刀魚を買いました。1尾250円です 3枚におろして、秋刀魚のわたに酒、味醂、醤油で調味して1時間ほど漬け込み、グリルで焼きました 秋刀魚のわた焼き わたの、苦味が程よくマイルドに調味され、クセになる味わいです 艶やかな新米と一緒に 自家製お漬物 土…

    はてなブログ | 無料ブログを作成しよう
  • ランダウの記号 - Wikipedia

    スターリングの公式はランダウの記号を用いてと書くこともできる。 ランダウの記号(ランダウのきごう、英: Landau symbol)は、主に関数の極限における漸近的な挙動を比較するときに用いられる記法である。 ランダウの漸近記法 (asymptotic notation)、ランダウ記法 (Landau notation) あるいは主要な記号として O (数字の0ではない)を用いることから(バッハマン-ランダウの)O-記法 (Bachmann-Landau O-notation[1])、ランダウのオミクロンなどともいう。 記号 O はドイツ語のOrdnungの頭字にちなむ[2]。 なおここでいうランダウはエトムント・ランダウの事であり、『理論物理学教程』の著者であるレフ・ランダウとは別人である。 ランダウの記号は数学や計算機科学をはじめとした様々な分野で用いられる。 ランダウの記号 は 、x

    ランダウの記号 - Wikipedia
  • 5 点と直線の距離を用いた回帰直線

    この節では、通常の回帰直線とは違い、 データ点と直線の距離の平方和を最小にする直線を求めることにする。 直線を として、3 節と同様に行なう。 ただし、この場合は の代わりに

  • 最小2乗法(1次式)

    最小2乗法により、1次多項式で近似を行うプログラムです。プログラム中で近似を行ったデータは、適当に決めたものです。ここではデータを直接プログラムソースコード内に記載しています。実際に近似を行うデータは膨大な量になる事が多いですから、その場合はファイルに書き込まれたデータを読み込んで処理するようにプログラムを変更すると良いでしょう。 #include <stdio.h> #define N 5 //データの個数 void sai1(double x[],double y[]) { int i; double a0,a1,p,q; double A00,A01,A02,A11,A12; FILE *output1; FILE *output2; output1=fopen("output1.data","w"); output2=fopen("output2.data","w"); A00=A

  • 1.縦の最小自乗直線でなく、点と線の間の距離の最小自乗直線による回帰分析を見た人はいますか?…

    1.縦の最小自乗直線でなく、点と線の間の距離の最小自乗直線による回帰分析を見た人はいますか?いたら教えてください。 2.もしくは、この件について、詳しい数学関係研究者の方で、情報をお持ちの方教えてください。

  • きまぐれ日記: 情報抽出アルゴリズムEspresso の謎、私の勘違いでした。

    昨日のエントリーは私の完全な勘違いでした。大学数学やりなおします。orz 行列表現にはまちがいはないのですが、あの形はマルコフ連鎖そのものなので、 x_instance = A * x_instance の解は、x_instance = A^{n} * x_instance0 なので、x_instance0 の初期値 に依存します。A^{n} が収束し B になるとすれば、x_instance = B * x_instance0 となります。 A^{n} が収束することが条件ですが、相互情報量の最大値で正規化されているので、たぶん収束するでしょう。 しかし、Espresso のおもしろいところは, B が求まってしまえば、どんな初期値でもただ1回の行列のかけ算で 最終的な答えがでてしまうところです。 B は、全パターンと全インスタンスの類似度から生成される行列で、信頼度とは無関係です。相互

  • 1