トップ «前の日記(2006-07-25) 最新 次の日記(2006-07-27)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2006-07-26

_ TODO

  • HPM
  • SDL.d
  • TSS
  • BF
  • ADVTR

ぱっと思いついたのはこんなのか。

(00:08)

_ 脳は計算機のよう

逆だろ。

(00:57)

_ 起動プロセス

http://d.hatena.ne.jp/toge/20060725#1153843313

そもそも sleep とか無駄に入ってるからなぁ。

/etc/rc.d/rc の action $"Starting $subsys: " $i start に & つけるだけで起動えらく速くなるし。 たぶん倍増くらいはいってる気も。 OK FAILED が見れなくなるけど、まぁ別に問題ない…

(01:11)

_ やる気おきない

から ADVTR でもやるかーとか思ったんだけど (プライオリティキューぶっこわれはやる気ない証拠) そうそうこのマシンではメモリが足りないのであった。 512MBで足りないというのはなんつーか UM が悪い気がしてならない。

(01:52)

_

(02:54)

_ めも

(02:54)

_ もけ

(02:54)

_ なんか mdiary がいかれてるのかなぁ

という結論

(02:58)

_ ほげ

とりあえず UM ちょっとイジったら メモリ使用量ずいぶんマシになって俺のアホアホと思った。

(02:58)

_ k.inabaさんはうそつきだ!

こんなもん手で解けるもんか!

(03:58)

_

XML とか S 式ってまじですか。

今回の ICFPC は、「関数型言語屋必死だな」っていう 印象を与えられなかったのも良かったかな。 なんか、先一昨年以来の2年は、 関数型つかえオーラを感じたんだけど、 今回は関数型言語のアジみたいなものを、 アフォードちゅうんかね、 さりげなく提示されてる印象を受けた。 というか全体的にアフォードが非常にうまいわけだけど。 まず練習をさせる、というか、 こういうのはたぶん、そんなに簡単じゃない。

(04:35)

_ どうでもいいけど

さっき積まれてるアイテムに ex できることに気付いたんですがね…

つーか本当は、 keypad 解いた後に ex コマンドで アイテムに必要なもの調べられると知ったんですがね…

つまり全パターン combine してたんだなー。 あほー。あほー。

(04:36)

_ いや…

記憶が錯綜してる。

これじゃあ antenna 無し radio に気付くわけないし、 ex で調べた記憶はある。

(04:39)

_ switch!!!

ANSI がかっこE

(04:41)

_ こんなん見るとますますやる気が起きない

(success (command (go (room (name "54th Street and Dorchester Avenue")(description "You are standing at the corner of 54th Street and Dorchester Avenue. From here, you can go north, east, south, or west. ")(items ((item (name "X-9247-GWE")(description "an exemplary instance of part number X-9247-GWE")(adjectives ((adjective "orange-red") ))(condition (pristine ))(piled_on ((item (name "V-0010-XBD")(description "an exemplary instance of part number V-0010-XBD")(adjectives ((adjective "magenta") ))(condition (broken (condition (pristine ))(missing ((kind (name "X-9247-GWE")(condition (pristine ))) ))))(piled_on ((item (name "F-1403-QDS")(description "an exemplary instance of part number F-1403-QDS")(adjectives ((adjective "pumpkin") ))(condition (pristine ))(piled_on ((item (name "P-5065-WQO")(description "an exemplary instance of part number P-5065-WQO")(adjectives ((adjective "heavy") ))(condition (broken (condition (broken (condition (broken (condition (pristine ))(missing ((! kind (name "T-6678-BTV")(condition (pristine ))) ))))(missing ((kind (name "B-4832-LAL")(condition (pristine ))) ))))(missing ((kind (name "F-1403-QDS")(condition (pristine ))) ))))(piled_on ((item (name "B-4832-LAL")(description "an exemplary instance of part number B-4832-LAL")(adjectives ((adjective "taupe") ))(condition (pristine ))(piled_on ((item (name "L-6458-RNH")(description "an exemplary instance of part number L-6458-RNH")(adjectives ((adjective "gray40") ))(condition (broken (condition (pristine ))(missing ((kind (name "P-5065-WQO")(condition (broken (condition (pristine ))(missing ((kind (name "T-6678-BTV")(condition (pristine ))) ))))) ))))(piled_on ((item (name "T-9887-OFC")(description "an exemplary instance of part number T-9887-OFC")(adjectives ((adjective "eggplant") ))(condition (broken (condition (broken (condition (pristine ))(missing ((kind (name "X-6458-TIJ")(condition (pristine ))) ))))(missing ((kind (name "H-9887-MKY")(condition (pristine ))) ))))(pi! led_on ((item (name "Z-1623-CEK")(description "an exemplary instance of part number Z-1623-CEK")(adjectives ((adjective "indigo") ))(condition (broken (condition (broken (condition (pristine ))(missing ((kind (name "D-4292-HHR")(condition (pristine ))) ))))(missing ((kind (name "L-6458-RNH")(condition (pristine ))) ))))(piled_on ((item (name "H-9887-MKY")(description "an exemplary instance of part number H-9887-MKY")(adjectives ((adjective "yellow-green") ))(condition (pristine ))(piled_on ((item (name "F-6678-DOX")(description "an exemplary instance of part number F-6678-DOX")(adjectives ((adjective "shiny") ))(condition (broken (condition (broken (condition (pristine ))(missing ((kind (name "J-9247-IRG")(condition (pristine ))) ))))(missing ((kind (name "V-0010-XBD")(condition (pristine ))) ))))(piled_on ((item (name "R-1403-SXU")(description "an exemplary instance of part number R-1403-SXU")(adjectives ((adjective "pale-green") ))(condition (pristine ))(piled_on ((item (nam! e "USB cable")(description "compatible with all high-speed Universal Sand Bus 2.0 devices")(adjectives )(condition (broken (condition (broken (condition (broken (condition (pristine ))(missing ((kind (name "T-9887-OFC")(condition (broken (condition (pristine ))(missing ((kind (name "X-6458-TIJ")(condition (pristine ))) ))))) ))))(missing ((kind (name "F-6678-DOX")(condition (pristine ))) ))))(missing ((kind (name "N-4832-NUN")(condition (pristine ))) ))))(piled_on ((item (name "N-4832-NUN")(description "an exemplary instance of part number N-4832-NUN")(adjectives ((adjective "sienna") ))(condition (pristine ))(piled_on ((item (name "J-9247-IRG")(description "an exemplary instance of part number J-9247-IRG")(adjectives ((adjective "slate-gray") ))(condition (pristine ))(piled_on ((item (name "B-5065-YLQ")(description "an exemplary instance of part number B-5065-YLQ")(adjectives ((adjective "dim-gray") ))(condition (pristine ))(piled_on )) ))) ))) ))) ))) ))) ))) ))) ))) ))) )))! ))) ))) ))) ))) ))))))

(04:42)

_

multmem の実装のしかたわかったぞ。 くそう今頃遅いよ。 でも今思いついたのだと点数少なそう。 しかしせっかくだから試してみようぞ…

(06:17)

_ ぜんぜんわかってなかった。

(06:23)

_ む、できた

ひどすぎて手では実装できそうもないけど。

a+a を計算しまくって、 0 になるまで M[4]=a, M[5]=a*2, M[6]a*4,... を並べる。 この右は M[12]=0 にしておく。 この並んだ数は例えば、奇数なら8個などと並ぶ。

で、これを左向きにたどる。 この時のメモリを i としよう。 i は最初は必ず 0x80 だ。 これを別な場所 d に記録しておく。 次の値 i を見たら、d から 2回ひいてみて、 0になるかをチェックする。 0になったら d XOR i を d に、 そうでないなら i を d に代入する。 これで 0x40 が手に入る。 これを終わりまで(M[3] は 0にしておく)繰り返すと、 a の最右 bit が立った値 d=2^e が手に入る。

a-=d を 0 になるまで計算して、 その回数だけ、 b を 0 に足し算して値 f を得る。

これで得られた数値 f (M[2] に入れてやる) は a*b/d になる。 さて、 M[11] から順に、 0 でない数値があらわれるまで f += f を計算する。 するとちょうど f*2^e つまり a*b が得られているはず。

ありえん。 本当にこんなめんどいのか。

(07:26)

_ 信じがたいものを見た気分

ubyte M[256];

ubyte mult(ubyte a, ubyte b) {
    int i = 4; // i is register
    ubyte c = a;
    M[i] = c;
    while (true) {
        c += c;
        if (!c) break;
        M[++i] = c;
    }
    ubyte d = 0;
    ubyte g = 0;
    while (true) {
        ubyte e = M[i--];
        if (!e) break;
        d = (e&g)^e;
        g ^= d;
    }
    ubyte f = 0;
    while (true) {
        a -= d;
        f += b;
        if (!a) break;
    }
    i = 11;
    while (true) {
        if (M[i--]) break;
        f += f;
    }
    return f;
}

void test_mult(ubyte a, ubyte b) {
    foreach (inout ubyte u; M) u = 0;
    ubyte c = a*b;
    printf("%d == %d ?\n", mult(a, b), c);
    assert(mult(a, b) == c);
}

int main() {
    test_mult(35, 27);
    test_mult(2, 11);
    test_mult(4, 11);
    test_mult(18, 11);
    test_mult(0xff, 0xff);
    test_mult(0xd1, 0xc3);
    return 0;
}

0x80 から落としていく部分のアルゴリズムはダメだったので少し変えた…

(08:06)

_ フォント職人

どうしよう。 どう見ても商用クオリティだ。

font.gif

(11:26)

_ フォント神

ちょっと修正した。

font2.gif

どうです?この風格。 これが王者の威光というものです。 このフォントでキリストを越えてしまったかもしれません。 少なくとも空海クラスは既にメじゃありません。 (当たり前です。私はこのフォントでノーベル文学賞を狙っているのですから) 世界中の亡者どもがこのフォントを狙ってくるでしょうね。

甘い。

これだから猿は甘いのです。 私はマイクロソフトと契約をする予定です うんぬんかんぬん…

案外難しい文体なんだなと思った。

下に GPL がどうとか書いてあるけどなー。

_ ソースコード

source.gif

これで pre タグとかもういらないな。

_ Pot Noodle

うんまずい…

メンがまずすぎる。 スープは喰えなくはないがおいしくない。

_ まさしく

codex.um 攻略サイト欲しいと思ってました! あと野良スコアタックとかしたいい。 ただ自分が全然上位とかにかめなさそうなのが萎えです。

_ そういう手作業がそれでもしんどく思ったのですが

でも僕がんばるよ!ADVTR解くから!

_ UM のソケット対応

またしても萎えかけてから、 UM をソケットで書き込めるようにした。 手で解く気無さげだぞ!

それはそうと、これはあれだ。 外部に公開すると面白くね? 外から UMIX に入れるんだぜ。

_ えー

同じ画面に無いアイテムあるのね…

_ 自動化

まぁこのくらいは。

{"USB cable"=>"eggplant T-9887-OFC", ["X-6458-TIJ", ["shiny F-6678-DOX", []], ["sienna N-4832-NUN", []]], "magenta V-0010-XBD"=>"orange-red X-9247-GWE", [], "eggplant T-9887-OFC"=>"!X-6458-TIJ", [, ["yellow-green H-9887-MKY", []]], "shiny F-6678-DOX"=>"slate-gray J-9247-IRG", [, ["magenta V-0010-XBD", []]]}

["USB cable", "sienna N-4832-NUN", "shiny F-6678-DOX", "magenta V-0010-XBD", "orange-red X-9247-GWE", "slate-gray J-9247-IRG", "eggplant T-9887-OFC", "yellow-green H-9887-MKY", "!X-6458-TIJ"]

あとは手動でいいや…

ああなんとか TIJ は存在しないけど、そもそも欠けてていいのね…

_ OK

USB 自動取得成功。

本日のツッコミ(全2件) [ツッコミを入れる]
_ shinh (2006-07-26 22:50)

コメントテスツ

_ shinh (2006-07-26 22:50)

もういちどコメントテスツ

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2006年
7月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
1.shinh(2006-07-31 02:31) 2.f#(2006-07-30 01:39) 3.shinh(2006-07-26 22:50)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h