2010-01-01から1年間の記事一覧

回文の判定(シーケンスをコピーして反転する)

文字列をスマートに反転するにはスライスを使うと良いと思う.リストにはreverseメソッドがあるので,インプレースでいいならそっちを使う.リストだが,元のインスタンスとは別に反転したものが必要ならlist(reversed(seq))などとするよりはスライスでseq[:…

平方数の無限リスト(っぽいもの)を作る

itertoolsモジュールのcountを使えば整数を無限に生成できる。countを使って例えば平方数を無限に生成しようとする。ビルトインのmapは有限のシーケンスに対してのみ動作するので、要素数に限りがないcountに適用することはできない。このような場合にはiter…

自動的に拡張される素数リストの実装

Pythonの素数ジェネレータの実装は結構有名なはず。ProjectEulerのために、ランダムアクセス可能で必要に応じて拡張される素数リストを、素数ジェネレータを利用して作成した。ジェネレータの実装は4 TopCoderより。 from itertools import ifilter from ite…

cutilDeviceInitの使い方

cutilDeviceInitを使えばマシンが複数のGPUを搭載しているときの切り替えが簡単にできる。 #include<cutil.h> 〜 int main(int argc, char** argv){ cutilDeviceInit(argc, argv); 〜 }実行時にコマンドラインオプションでデバイス番号を指定する。 $ a.out --device=</cutil.h>…

App Engine Helper for DjangoはModelFormが使えないといった問題があり,それらを改善したプロジェクトとしてapp-engine-patchが紹介されている.しかしapp-engine-patchも既に開発が止まっていてDjango-nonrelを使えとのこと.Django-nonrelを使えばApp En…

AppEngine Helper for DjangoでGoogleアカウントの認証を簡単にする

setting.pyで認証関係の設定を有効にする.以下の3カ所のコメントアウトを外します. MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', # 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.A…

RSA暗号

RSA暗号の解読といえば素因数分解に目が行きがちですが、RSA暗号の原理を理解しなければ素因数分解に成功しても暗号解読には至りません。 そこで、RSA暗号の原理及び鍵生成で重要な役割を持つ拡張ユークリッド互除法を概説するためのスライドを作成しました。…

PythonでMapReduceの真似事

MapReduceとはGoogleによって考案され,クラウドコンピューティングの要として注目されたアルゴリズムフレームワークです.Googleによる分散処理の実装自体をMapReduceと呼ぶことも少なくありませんが,アルゴリズムにおける分割統治法のように,並列コンピ…

multiprocessingでmap

Pythonのビルトイン関数であるmapは通常次のように使用されます. >>> def f(x): ... return x * x ... >>> map(f, range(10)) [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]多くの場合mapに渡す関数は副作用が少なく,map処理は並列可能性が高いと考えられます.Py…

Project Euler Problem 26 循環小数の循環節

循環小数の秘密というサイトによると,既約分数を少数になおしたものは次の3つに分類されます. 有限小数 純循環小数 混循環小数 これらは分母の値を素因数分解することで次のように区別できます. 素因数が2と5のみで構成されるならば,有限小数 素因数に2…

inputの落とし穴(SPOJ 11. Factorial)

今日のテーマはSPOJの11番Factorial.問題を要約すると,自然数が与えられて,その階乗の値の末尾に何個の0が続くかを求める問題.解法としては階乗の値を素因数分解したときに5がいくつ含まれているかを数えればいい.まずはシンプルに実装してみよう. #!/…

人材獲得作戦・4を解答してみた

物議を醸している下記の問題 人生を書き換える者すらいた。: 人材獲得作戦・4 試験問題ほか なかなかの良問だと思ったのでPythonで解答してみた.かかった時間は1時間ぐらい. #!/usr/bin/env python2.6 from __future__ import print_function import sys…

変数の入れ替え

Pythonはひとつの構文でいろいろなことを実現できるように設計されている気がします.ついさっき知ったそんな一例.変数の入れ替えを行っています. #!/usr/bin/env python2.6 a, b = 1, 2 print a, b a, b = b, a print a, b もちろん3個以上の変数を入れ替…

Pythonで漸化式

第n番目の素数の近似値を求める漸化式は次のように与えられます.この漸化式の第n項を求めるために,Pythonで漸化式の第n項を高速に求める実装を考えてみました.まず初めに検討したことはreduceで書くべきなのか,通常のループ構文で書くべきかということで…

はじめまして

はじめましてlikrと申します.プログラミングネタを書き留めておくためのブログとして開設しました.よろしくおねがいします.