ラベル code の投稿を表示しています。 すべての投稿を表示
ラベル code の投稿を表示しています。 すべての投稿を表示

2008年5月5日月曜日

code と algorithm 周辺のこと

数学オリンピック同様、ICPCなるプログラミングコンテストも世界大会があるようで。。

詳細はid:tanakh さんの2006ICPCの参加記から伺うことできます。


http://fxp.hp.infoseek.co.jp/icpc2005/wf/4.html
(前述のURLにもあるのだけど、出題問題PDF@ICPC20062007

それで、初めて耳にしたキーワード周辺を少し調べてみようかと。

ダイクストラ、ベルマンフォード、などのアルゴリズム名でGoogleってみると、適切な通信経路選択する上で利用されているとのこと。

実生活とアルゴリズムを意識するきっかけって改めて少ないなー、、暗号とかいじることもなく。
サーチエンジンの裏側でページランク算出するのに使われるとはいえ、公開されているのではないし。
 
 ・(検索エンジンを作ろう~記事)
 
 ・(Google検索ランキング要素の推測)
 
 ・(dan さんの「知っておきたい10のアルゴリズム」)
 

それとは別に、アルゴリズムとコードでは奥村晴彦先生の「『C言語による最新アルゴリズム事典』  技術評論社,1991年」を読んだものの、まだ活用するタイミングがなひ。


途中、コードアーカイブが発見されたので後日見てみる。

アルゴリズムコード

例えばSearch Algorithm 項目
EXACT STRING MATCHING ALGORITHMS
(http://www-igm.univ-mlv.fr/~lecroq/string/)
のページを開くと、「人名+algorithm」でコードとアルゴリズムが一覧できる。

各アルゴリズムページには "Visualization" ボタンが設置されていて、これを押すとテストデータに対してコードが実行されるというおもしろもの(Java appletの動作)。。

さっとデータ入れて動かせて、コードの挙動を見れる仕組みは良い学習素材と思う。



(追記)
計算幾何工学とアルゴリズム?画像解析とか複雑そう‥
http://tokweb.ics.es.osaka-u.ac.jp/toklab/research/compg/index-j.html

2008年4月25日金曜日

Mech::Googleサーチ 試し打ち

下記参照
http://d.hatena.ne.jp/hakobe932/20070131/1170266398
参照先のコードでは気をつけないと、"syntax error" "requires explicit package name" とか出てしまう。
「;」 と「my」の欠けは注意。

あと、コード末尾のエンコードはutf-8のままならエンコード/デコード処理は不要。。
そのまま実行すると文字化けします。
下は修正後。。


#!/usr/bin/perl
use strict;
use warnings;
#http://d.hatena.ne.jp/hakobe932/20070131/1170266398
use WWW::Mechanize;
use HTML::TreeBuilder::XPath;
use Encode;
use Readonly;

sub say {print @_, "\n";}

my $mesh = WWW::Mechanize->new();

# Googleにアクセス
$mesh->get('http://www.google.com');

# 検索フォームにPerlを入力してサブミット
my $res = $mesh->submit_form(
fields => {
q => 'Perl',
}
) or die 'submitting failed';

# レスポンスを取り出してパース
my $tree= HTML::TreeBuilder::XPath->new();
$tree->parse($res->content()) or die "parsing failed";

# 結果をXPathで取り出して表示
my @nodes = $tree->findnodes( '/html/body//div[@class="g"]/a[@class="l"]' );
for my $node (@nodes) {
say $node->as_text, ' (', $node->attr('href'), ')';
}


コードここまで。

出力結果は下記。

Perl - Wikipedia (http://ja.wikipedia.org/wiki/Perl)
Perl基礎入門 (http://www.kent-web.com/perl/)
とほほのperl入門 (http://www.tohoho-web.com/wwwperl.htm)
The Perl Directory - perl.org (http://www.perl.org/)
Perl講座[入門からデータベース連携なども] (http://www.site-cooler.com/kwl/perl/
)
Amazon.co.jp: Perl - プログラミング: 本 (http://www.amazon.co.jp/Perl-%E3%83%97%
E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E3%82%B3%E3%83%B3%E3%83%9
4%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BB%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%
8D%E3%83%83%E3%83%88-%E5%92%8C%E6%9B%B8/b?ie=UTF8&node=515826)
Perl.com: The Source for Perl -- perl development, conferences (http://www.perl.
com/)
Perl講座 [Smart] (http://www.rfs.jp/sb/perl/)
Perlとは 【Practical Extraction and Report Language】 - 意味・解説 ... (http://e
-words.jp/w/Perl.html)
Perlメモ (http://www.din.or.jp/~ohzaki/perl.htm)

以上、取れました。。

2008年1月1日火曜日

perl雑記 フレームワーク編

フレームワークCatalyst学習

環境:
Windows Vista
perl 5.8(Active Perlインストール済)
Catalyst 2.0(2.1が最新)

で、書籍「ずばりわかる!Webプログラミング2.0」からPerlに慣れるべく奮闘。


114ページあたりのCPANからCatalyst入れる際に、Task-Catalystのインストールにつまづく。

エラー内容が既存ファイルの衝突とのこと、しかしそのファイルが見当たらなかったため検索。
「C:/Perl/html/site/lib/Catalyst/Helper.html」

すると、Task-CatalystでなくBundle-Catalystでもいけるようなのでこちらをインストール。
以下、'Hello'スケルトンを作成するも、障害が起こらないので良しとした。

(参考URL)http://naoya.dyndns.org/~naoya/mt/archives/001682.html


Catalystは確かにMVCモデルに従うディレクトリ構成(フォルダ名がそのままMとVとC)をしていた。

単純にControlとView部のみを対象に'Hello'アプリを作成することにする。
Root.pmを適宜修正し、Helloアプリのrootディレクトリにroot.ttを追加すると"Hello!"表示がされた。

次は、SQLiteと合わせてやってみるつもり。

Blogger Syntax Highliter