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

F#をUbuntu上のMonoにインストールしてみた

fsharp.zipの入手 F# Downloads - Microsoft Research "For Mono, …"とあるのでクリックすると以下のページに飛ぶので Download: F# October 2009 CTP - Microsoft Download Center - Download Details "fsharp.zip"をダウンロード。 ここでは、fsharp.zipを…

はやく誰か「日本語基礎文法最速マスター」書けよ。EOM

Kruskalで迷路生成

Kruskalで全域木を求めることで迷路生成ができると聞いて。

分枝限定法を利用した巡回セールスマン問題の解法のデモ作った

Jarバイナリ ソース 説明 分枝限定法を用いた巡回セールスマン問題の厳密解の解法を可視化する。緩和問題を分割して探索木を構築しながら、長さの上界を使って枝刈りをする。簡単のため、ユークリッドTSPやメトリックTSPの性質は用いず、また有向辺を用いて…

JavaScriptで小町算を生成するサイト作った

初回計算時だけ重いけどドンマイ

かたわ少女のPersonasが出てるみたいですね

Katawa Shoujo Dev Blog: Are you ronesome tonight~♪ 抱き枕カバー画像も公開されているようです。先進的でステキです。Personas…Firefox3.6用のスキン。

C++でPerlのvoid contextを再現する

dump(1); string s = dump(2);と書いたときの動作を変える。 #include <iostream> #include <sstream> #include <string> using namespace std; template<typename T> class dump_context { private: const T& v; bool flag; public: dump_context(const T& v) : v(v), flag(true) {} ~dump_context(</typename></string></sstream></iostream>…

PerlとC++にしかできないような気がするアノ機能(挑戦者募集中)

PerlとC++は世界一。 #!/usr/bin/perl srand(time); my $a = 0; my $b = 0; for(my $i = 0; $i < 1000; $i++) { (rand(2)<1 ? $a : $b) += 1; } print "$a, $b\n" #include <cstdio> #include <cstdlib> #include <time.h> int main(int argc, char **argv) { srand((unsigned)time(NU</time.h></cstdlib></cstdio>…

IOI2009 "Salesman"

はじめてのあいおーあい。ろくに確認もせずテストデータにとりあえず投げた結果玉砕し、その後しょーもないことで時間を潰した。練習量が足りない。死にたい。 problem IPSJの雑誌とテレビの両方で見かけたので解いてみようと思った。問題の名称がどう見ても…

きをつけましょうリストそのいち //phpmyadmin/config/config.inc.php?p=phpinfo() //pma/config/config.inc.php?p=phpinfo() //admin/config/config.inc.php?p=phpinfo() //dbadmin/config/config.inc.php?p=phpinfo() //mysql/config/config.inc.php?p=php…

婚活に役立つ? 男の下心を一瞬で見抜く簡単な方法 婚活ニュース 婚活女子に捧ぐ。彼と結婚して大丈夫かどうか、簡単に見抜く方法。:【2ch】ニュー速VIPブログ(`・ω・´) % find ~/images|wc -l 3815二次元画像がメインです。

ボゾソート(Bozo Sort)

今日は結局何も書けなかったのでボゾソート(ボゴソートの仲間)を適当に書いた。 #!/usr/bin/ruby1.9.1 # -*- coding: utf-8 -*- class Array def bozo_sort! defined? yield or return bozo_sort!{|a,b|a<=>b} until (1...size).inject(true){|s,i|s && yiel…

最長共通部分文字列と最長共通部分列

今日から少し、典型DPを扱ってみようと思う。最長共通部分文字列(longest common substring)と最長共通部分列(longest common subsequence)。前者は連続という条件つきで、後者は連続でなくても順序が維持されていればよいというもの。 前者はO( (n+m)min(n,…

並列化における効率化の目安は(n/log n)倍。たぶん。

分散化の場合のイメージと大分違うような気がするけど、直感レベルでの話しかしてないからよくわからない。 まあなんで僕が(n/log n)倍かというと、実際並列アルゴリズムが大体そんな感じっぽいから。 畳みこみ(最大値や総和)の計算 O(n) → O(log n) ソート …

KMP法+ボイアームーア=有限オートマトン

という気がしてきたので、文字列検索の有限オートマトン化をしてみた。…普通にこれでいいじゃん!有限オートマトンの生成にかかる時間およびメモリはn=キーサイズ,c=文字の種類とおいてO(cn)なので、そこで少し遅れをとるけど、検索が非常にシンプルで高速(…

KMP法のお勉強

だが解説は面倒なのでしない。 maketableさえ覚えればsearchはそれと形が似ているので簡単そう。 #include <cstdio> void kmp_maketable(const char *key, int *table) { table[0]=-1;table[1]=0; int i=2,j=0; while(i==0 || key[i-1]) { if(key[i-1] == key[j]) { </cstdio>…

C++のための即席Makefile

最低限だけ書くと次のようになる。 CXXFLAGS = -O2 -Wall LDFLAGS = -lm all: hello # In Windows, it may be "hello.exe" clean: $(RM) hello CXXFLAGSは、C++コンパイラに対する引数。Cコンパイラに対する引数はCFLAGS。最適化や警告、インクルードディレ…

Dancing Linksを用いたKnuth's Algorithm Xによる「四角に切れ」ソルバーの実装

「四角に切れ」とは以下のような問題である。 あるサイズの格子(将棋盤タイプ)が与えられる。 マスには数字が書かれているか、書かれていない。 格子全体を長方形の集合に分割する。 全ての長方形にちょうど1つずつ数字が入り、かつ長方形の面積がその数字と…

warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result

UbuntuのGCCとかでこういうのが出る。 解説 「scanfの戻り値を使ってないよ」→つまり、scanfが失敗した場合について考えてないコードを書いてるから気をつけろという警告。 対策1 scanfの戻り値を検査する。 scanfの戻り値は、成功した変数の数、もしくは-1…

APIO2009 "The Siruseri Convention Centre"解いた

概要 番号つきの区間の集合が与えられ、被らない最大個数の区間集合を求める。ただし最大個数の区間集合が複数通りある場合、辞書順で小さいものを選ぶ。 手法 被らない最大個数の区間集合を求める問題は、簡単なDP(区間をendで整列し、ranges[upper_bound(r…

小町算を一瞬で生成するプログラム 例: 12*34*5+6*7-8*9 = 2010

piがHaskellで組んでこれより速くCで組めるわけないとか挑発されたので、つい… 性能 12*34*5+6*7-8*9 = 2010 のような小町算を生成します。 (1*2/3-4*56)/(7-8)*9 = 2010 のような、括弧を使うものも生成します。 2-(3-4)のような右結合は、等価の左結合、つ…

人材獲得作戦に応募してみた

人生を書き換える者すらいた。: 人材獲得作戦・4 試験問題ほか の問題を解いてみた。アルゴリズマーとしてはこの程度の問題20分で書けないとパソコン甲子園とかで辛いなあと思うのですが、40分でできました。頭を使って解けるかどうかは知りませんが、知識…

偏差値の有用な使い方

リソゴが何か言ってたから思いだしたんだけど、試験の科目合計点で単純総和ではなく、各科目の偏差値の重みつき平均をとると、科目の重みが保証されて非常にありがたい。こういう使い方をしてくれればいいのに。

CUDAコンパイラは糞。マクロを正常に展開しない。

某Hiroaki Softwareが、Win32APIコードをcuコードに混ぜてコンパイルしようとして妙なエラーに巻きこまれたらしいので調査したら、CUDAのコンパイラであるところのnvccはクソであることが判明した。具体的には、CreateWindow()中に一行コメントを書こうとし…

Objective-C++0xなう

Objective-Cとは SmalltalkのOOPをC言語にくっつけた、Mac王国の公用語。 Objective-C++とは Objective-CとC++をとりあえず一緒にした謎言語。 Objective-C++0x(造語)とは Objective-C++でC++0xを有効にした超言語。 Install(Ubuntu) % sudo aptitude instal…

「SKKを使用したら彼女ができました!ATOKでもGIMEでも無理だったのに…(17歳JK)」

SKKは、「変換の区切りを自分で指定する」という特徴的な日本語入力メソッドです。 ここでは、SKKIMEのインストールとかいろいろ説明しちゃいます。 特長 変換区切りの間違いによる誤変換がなくなる 送り仮名を覚えられる(!!) その場で単語登録できる機能 Z…

自分のサイトの検索キーワードを晒してみた

以下が僕のこのダイアリーのアクセス解析。 GCCのエラーメッセージがダントツ。2位のは掲示板名で、その掲示板が落ちたときに避難先を記した記事がひっかったみたい。次のやつはなんだろう。そういう話題あったっけか。 僕のIDやブログ名をピンポイントで検…

ソ・ラ・ノ・ヲ・ト 第一話

久しぶりのアニメ視聴。なんとなくオリジナルを見てみたくなった。あと今回はテレビで見ているのでハイビジョン。一話時点での評判はやや悪いようだけど、気にしない。あとけいおん見てないからその辺りもわからない。OPいいねあと音の高さ違うような。ちゃ…

バイトニックソート書いた

バイトニックソート(bitonic sorter)は、並列処理に適した「ソーティングネットワーク」という種類のソートアルゴリズムで、直列での時間計算量はO(n log^2 n)ですが、最大nで並列できて、その結果O(log^2 n)で計算できるようになります。 マージソートの類…

ヒープソートってかっこいいよね

/* ヒープソート(heapsort) ヒープ構造を用いたソート方法 特徴 1. 「その場」(in place)で実行できる(マージソートやバケットソートは別の配列が必要になる) 2. 最悪でもO(n log n)で実行できる(クイックソートの最悪ケースはO(n^2)) 3. かっこいい 4. 安定…