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

Rubyにおける改行

オブジェクトとメソッドのあいだには改行があってはいけないようです。 ↓コンパイルエラー p(1 + 2)↓もちろんこれはOK p(1+ 2)

配列の順列の列挙

class Array def perm() if self.length <= 1 then [self] else a=self[1..-1].perm; c=[]; a.each { |x| 0.upto(x.length) { |y| c.push( (y==0 ? [] : x[0..y-1]) + [ self[0] ] + x[y..-1]) } } c.uniq end end end "123".split(//).perm.each{ |x| p x }…

C++におけるユニコード文字列は std

wstring で [programming][cxx] C++でユニコード文字といえば ICU4C があるけれど、 ・APIが非常にJava的なので、あまり使いたくない(STLと相性が悪い) ・正規化処理等を含んでいるので、単に格納して単なる文字列と同じように使いだけの場合にはオーバース…

均等分割

cxx

最初を適当に決めて、残りを再帰で均等に。 頭の悪いアルゴリズムなので、計算量とかスタックとかがいろいろ大変なことになっている。 #include <iostream> #include <list> #include <iterator> #include <locale> #include <cassert> using namespace std; pair<list<wstring>,size_t> divid_len(size_t num, const w</list<wstring></cassert></locale></iterator></list></iostream>…

なんどめかの「知っていない」

lx

「知ってる?」 に対するもっとも適切な応答が 「知ってる」 もしくは 「知らない」 という非対称なペアであること、あるいはもっと端的には、 「知っていない」という表現がほとんど非文法的であることが近年問題になっているわけですが、 簡単に内省による…