タグ

Algorithmとpythonに関するramda-phiのブックマーク (7)

  • Python言語による実務で使える100+の最適化問題 | opt100

    指針 厳密解法に対しては、解ける問題例の規模の指針を与える。数理最適化ソルバーを使う場合には、Gurobi かmypulpを用い、それぞれの限界を調べる。動的最適化の場合には、メモリの限界について調べる。 近似解法に対しては、近似誤差の指針を与える。 複数の定式化を示し、どの定式化が実務的に良いかの指針を示す。 出来るだけベンチマーク問題例を用いる。OR-Libraryなどから問題例をダウンロードし、ディレクトリごとに保管しておく。 解説ビデオもYoutubeで公開する. 主要な問題に対してはアプリを作ってデモをする. 以下,デモビデオ: 注意 基的には,コードも公開するが, github自体はプライベート そのうちにするかもしれない(予約はしているが, 保証はない). プロジェクトに参加したい人は,以下の技量が必要(github, nbdev, poetry, gurobi); ペー

  • 重み付け乱択 - Qiita

    重み付け乱択は、2段階で改良できます。 まず、1段階目として、リストを1回走査するだけで(重みの合計値を求めながら) 乱択することができます。 import random def random_weight_choice(L): choice = None total = 0 for item, p in L: total += p if random.random() * total < p: choice = item return choice def test_random_weight_choice(): from collections import defaultdict X = [('A', 3), ('B', 2), ('C', 5)] count = defaultdict(int) for _ in xrange(100000): item = random_weig

    重み付け乱択 - Qiita
  • pybrainでニューラルネットワーク入門 - mizchi log

    勉強しつつ書いてみる。微妙な知識で書いてるので、おそらく間違ったことをたくさん書いてる。 まあせめて初学者らしく、初学者に通じるように平易な言葉で! やりたいこと 関数(モデル)に乱数を与えて生成した訓練データから、元の関数の振る舞いを模倣(近似)できるようにする。 pybrain Pythonで扱えるニューラルネットワークのライブラリ、だそうで。 ギッハブからインスコ $ git clone git://github.com/pybrain/pybrain.git $ cd pybrain $(sudo) python setup.py install参考: 映像奮闘記: PyBrain - a modular Machine Learning Library for Python 概要 バックプロパゲーション(誤差伝搬法) 入力層 - 隠れ層 - 出力層の三層からなり、入力層のノードは

    pybrainでニューラルネットワーク入門 - mizchi log
  • RSA暗号で「ふっかつのじゅもん」を作る(1) - Pashango’s Blog

    オッス、オラ、トンヌラ! 前回は、高速素数判定を作りましたが、今回はRSA暗号を使って、昔懐かしの「ふっかつのじゅもん」を作ってみましょう。 Pythonを使って高速素数判定をしてみる - Pashango’s Blog あ、「今さらRSAかよ」と思いました? 自分でRSAを実装してみると、色々知らない事が出てきて面白いですよ。 あとRSAは、暗号化以外にも応用が利くんで覚えておいて損はしませんよ。 RSA暗号とはなにか? ゲームプログラマは基的にゲームばっかやってるんで、一般的な情報処理知識に欠けている場合がほとんどです。 まずはRSA暗号の説明から始めましょう。 RSA暗号とは、2つの鍵「公開鍵」と「秘密鍵」を使う暗号方式です。 「公開鍵」は暗号化キーです、みんなに公開してかまいません。 「秘密鍵」は復号化キーです、みんなにバレてはいけません厳重に保管してください、間違ってもネット上

    RSA暗号で「ふっかつのじゅもん」を作る(1) - Pashango’s Blog
  • すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog

    みなさん、こんにちは、今回は乱数の話です。 特に複数機種でのコンシューマ機でゲームを開発をしていると、機種間で乱数値を統一するために乱数生成アルゴリズムを自作しますよね。 そこでよく使われるアルゴリズムが「線形合同法」です、内容は至って簡単で、以下の漸化式を使います。 A,B,Mは定数で、どの値が入るかは処理系依存です。 例えばUnixなどの処理系ではA=1103515245,B=12345,M=2147483647などが入ります。 C言語ですと以下のようになります。 static unsigned int x=1; void srand(unsigned int s) { x=s; } unsigned int rand() { x=x*1103515245UL+12345UL; return x&2147483647UL; } この「線形合同法」は計算が簡単で高速ですから、いろいろな環

    すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog
  • Pythonを使って高速素数判定をしてみる - Pashango’s Blog

    みなさん、素数を数えてますか? 『素数』は1と自分の数でしか割ることのできない孤独な数字。 暗号化できたり、乱数を作れたり、心を落ち着いたりして、私達に勇気を与えてくれます。 素数といえば「エラトステネスのふるい」ですが、あれは大きい桁の素数を生成しようとすると、とんでもなく時間が掛ります。 今回は、どんな大きな桁の素数でも高速で素数判定するプログラムを作ってみます。 基は「フェルマーの小定理」 素数判定の基は「フェルマーの小定理」です、数式は1行だけのごく簡単なものです。 a^(p-1) mod p の答えが1以外ならpは合成数である ただし、aとpが素の関係(最大公約数が1)であること 2つの数を「べき剰余算」して答えが1以外なら合成数(not 素数)という事です。 aに2を代入してqが素数なら答えが1になる、たったこれだけです簡単でしょ? def is_prime(q): q =

    Pythonを使って高速素数判定をしてみる - Pashango’s Blog
  • Algorithms with Python

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1