2014年3月31日月曜日

昨日は飲み過ぎたので今日はお茶で済ませている。酒を飲まないので酒の悪口を書こうとしたが、特になかった。

2014年3月26日水曜日

紙っぺら一枚を渡して、それを十年でも二十年でも保管しておけと要求するほうが気違いじみていると思うのだがどうか。社会の要請する事務処理能力が高すぎる。俺なんか確実に年金を貰えないタイプだもんな。書類不備とか判子が無いとかそんなんで。
洗濯機と空気清浄機を買ったらカードの利用限度額を超えて云々であれこれ。Amazon で雑誌を買おうとしたら手続きが進まなくてやっと気づいた。あと奨学金な。繰り上げ返済しようと思ったが奨学金番号が分からなくて一切手続きできず。詰んだわー。

2014年3月24日月曜日

夏は 1 本 40 円のソーダ水を毎日 2 本程度消費するので多少値段は上がる。湯冷ましは面倒だし、浄水器を買うのもなーと思う。ペットボトルの水を買うのは何だかバカバカしくて嫌だ。どうするのが良いのかしら。
ウィスキー、ジン、ウォッカというのは安い酒なのである。千円程度でも美味しくて度数も高くて言うことはない。体積と値段だけ見れば焼酎やワインのほうが安くなるのだろうが、単位濃度あたりの価格は紙パックの焼酎のほうが高くなるはずだ(計算はしていない)。
時々買っているヘッジス&バトラーは5年ものであることを知った。マルエツで 1,700 円程度。ネットで千円以下で買えるのはノーマルというかスタンダードというか、五年ではないものだった。これが美味しいのかどうか確かめねばならぬ。1,200 円で買えるジョニ赤でもいいんじゃないのという気はする。
あの頃, 理科年表 (を持ち歩くの) が猛烈に格好いいと思ったのでそうしたのだが, 今思っても最高にクールな判断だった. 理科年表, 読んで楽しくインテリアとしても最高にクールなので一家に一冊常備したい. 携帯版と机上版とあるので両方お勧めしていきたい. 気になるあの子のデータがいつでも手元にあるという感動を君に.
さすがに持ち歩きはしなかったが、私も格好良さにつられて買った口である。平成 12 年版を高校生の頃に買ってずっと使っている。色あせ、手垢で汚れ、開きぐせが付いている所がすごく良いのだ。

2014年3月23日日曜日

注文したった: http://www.amazon.co.jp/dp/B00F1P6SKA/

フィルターが安ければ AirEngine にしたかった。
アレグラが効かないのか最近の花粉飛散量が異常なのか知らないが鼻水が止まらない。今日は花粉が脳まで届いて何も考えられぬ。空気清浄機でも買おうかな。

2014年3月22日土曜日

何はともあれパニールは一度くらい作ってみようかと思う。
つまり、インドにはカレーなる料理など無い、という程度の意味でカレーを作ってカレーを食べているようでは素人なのである。酒と醤油とみりんを使った料理をすべて和食の一言で片付けるような乱暴さである。ここから先に進むには、一つ一つのスパイスに対する分解能を上げなければならない。
ほうれん草のカレーを作ったのだが、ほうれん草入りのカレーと言った体でどうも違う様子。手癖で作るとただ美味しいだけのカレーが出来てしまって、このあたりが普通に作る限界かと思う。カレーを作ってカレーを食べているようでは素人なのだ。

2014年3月17日月曜日

これな: http://www.jmuk.org/blog/post/z13whjgjoq3fi5wxh04cc3agzvjlivwib4g

主人公を「人形と話す痛い人」と見る読み方もあったのかー、と思った。人形が喋っているように描かれてるんだから人形が喋ってるんだろ、という以外の読み方があるなんて想像もしなかった(漫画脳)。
最近二度ほどアワビを食べる機会があったので言っておきたい: 期待ほどじゃない…
イカは一杯二杯と数えるが、スルメはどうなのか。
寸評:

  • 裸者と裸者: 話はそれなり。誰に影響を受けた絵柄か判るようなコマ多し。少々鼻白む。熱心な原作ファンは漫画版が嫌いらしいのできっと小説はより面白いのだろう。
  • エマノン:俺はもうすっかり疲れてしまっているし、エマノンもドラえもんもメーテルも迎えに来てくれないので失望している。俺はもうすっかり疲れてしまっていて、誰かが迎えに来てどこかに連れ去ってくれればいいと思っている。ここでなければどこでもいい。俺はもうすっかり疲れてしまっているので、アゴタ・クリストフを探してきて書き写す気も起きない。
  • 宗像云々:伝奇物は好きだ。
  • バナナ:中身をもう覚えてない。SFを一般小説に偽装するくらいならもっとハード側に振るか「良い夜を持っている」路線のほうが良いのではないか。いくつかの短編は面白かったのでそのうち読み返す。
  • これはペンです:姪たそ〜。
  • はだしのゲン:以前読んだのは小学生の頃か。絵柄が思ったよりもモダンだった。
  • 対数表:帯に曰く「待望の復刊」。誰が待望していたんだよ的。思わず買ってしまった。岩波の数学公式集も2,3巻を買っておかねばならぬとは常々思っている。
  • 数学セミナー:先日時枝さんの公演があったらしい。聴きたかったなー。
  • フラカン入門:深夜高速しか知らなかったので入門するのだ。
  • あんたへ:あんたがそれでいいならいいんだぜ的。
  • いきものばかり:まだ聴いてない。
  • 皇帝のかぎ煙草入れ:泥酔した際に電車内で読んだので全くかけらも記憶にない。ひと粒で二度美味しい。
  • 言葉をおぼえるしくみ:著者の頭の悪さがビシビシと伝わってくる。
  • パタリロ:50。
寸評ですらなかった。
切れ切れの細々とした暇しかなくて、作品を鑑賞するに足るまとまった時間が取れない。最近読んだもの(机のすぐ近くに積んであるもの):

2014年3月14日金曜日

「要するに」って言いながら他人の主張を繰り返す奴は何なの。そう言ったじゃん!

2014年3月10日月曜日

お盆にコーヒーを乗せて移動したら、ソーサーの上でカップが振動しだした。コーヒー、カップ、お盆、腕の揺れのいくつかがカップルしたようで、半分ほどこぼれてしまった。振幅が大きくなると、揺れの非線形性が効いてくるようで発散はしない様子。まあ発散はしないだろうが。強制振動、覆水盆に返らず、ソーサーの使い方などを思い出しながら盆に返した覆水をすすった。
気絶中は呼吸をしているのだろうか。

2014年3月8日土曜日

水と振動に曝される環境(風呂場に置いてあるのだ)でこれだけ頻繁に使う機械に対して「何もしてない」と言うのは酷い話ではある。
洗濯機が故障した。蓋の開閉判定のどこかが働いていない様子。今こそこれを言うチャンス:「何もしてないのに壊れた」

2014年3月7日金曜日

#16(0.024 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2016
n = 1
for i in range(1,1001):
    n*=2

print(sum(map(int, list(str(n)))))
#15: http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2015
print(4*39*37*35*11*31*29*3*23)
${}_{40}\mathrm{C}_{20}$=4*39*37*35*11*31*29*3*23 ってとこまで手で計算。私の感覚だと、最後の掛け算を計算機にさせても全体としては「手で解いた」と言って良いと思うのだがどうか。
#14(2.1 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2014
#Python 3.3

dic = {1:1}
def collatzSeqNum(n):
    if n in dic: return dic[n]
    if n%2==0: dic[n] = 1 + collatzSeqNum(int(n/2))
    else: dic[n] = 1 + collatzSeqNum(3*n+1)
    return dic[n]

res, maxSeq = 1, 1
for i in range(2, 1000000):
    t = collatzSeqNum(i)
    if t > maxSeq: res = i; maxSeq = t

print(res, maxSeq)

2014年3月6日木曜日

#13(0.024 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2013

int だの long だのと気にする必要のある人たちがかわいそうになるレベル。
# python3.3
f = open('input.dat')
ls = f.readlines()
f.close()
sum = 0 
for l in ls:
    sum += int(l)
print(str(sum)[0:10])
下の #12 のコードを、PyPy-2.1(CPython-2.7.3互換らしい)用にちょっと手直しして実行したら 0.15 sec で終了した。
#12(1.3 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2012
primes=[2]
def genPrime(n=3):
    while(True):
        for p in primes:
            if n%p==0: break
        else: primes.append(n); yield n 
        n+=2

def genTriNum(t=0, i=1):
    while(True):
         t+=i; i+=1; yield t 

def getFactDic(t):
    d = {}
    for p in primes:
        if t%p==0:
            d[p]=0
            while t%p==0:
                d[p]+=1; t/=p
        if t==1: return d 
        elif p == primes[-1]: pg.__next__()

def getDivNum(d):
    prod = 1 
    for v in d.values():
           prod *= (v+1)
    return prod

pg = genPrime()
tg = genTriNum()
while(True):
    t = tg.__next__()
    d = getFactDic(t)
    n = getDivNum(d)
    if n >= 500:
        print(t, d, getDivNum(d))
        break
今日もまた素数を計算する作業が始まるお…

2014年3月5日水曜日

#11(0.15 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2011

こういう問題は嫌いだな。

import numpy 
N=20

def l2r(ls):
    cl = []
    for l in ls:
        for i in range(0, N-3):
            if "00" in l[i:i+4]: break
            else: cl.append(l[i]*l[i+1]*l[i+2]*l[i+3])
    return max(cl)

def tl2br(ls):
    cl = []
    for l in range(0, N-3):
        for c in range(0, N-3):
            t = [ls[l+i, c+i] for i in range(0, 4)]
            if "00" in t: break
            else: cl.append(t[0]*t[1]*t[2]*t[3])
    return max(cl)

def tr2bl(ls):
    cl = []
    for l in range(0, N-3):
        for c in range(3, N):
            t = [ls[l+i, c-i] for i in range(0, 4)]
            if "00" in t: break
            else: cl.append(t[0]*t[1]*t[2]*t[3])
    return max(cl)

ls = numpy.loadtxt('input.dat', dtype='int')
candidates = [l2r(ls), l2r(ls.T), tl2br(ls), tr2bl(ls)]
print(max(candidates))
俺がXXX言語を使えます!と言った時は、for文・if文・配列/リストが使えますという程度の意味である。

2014年3月4日火曜日

素数の計算なんかは手癖で書けるんだけど、高速化するにはどうしたら良いかはまるでわからない。
#10(6.5 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2010

def calc(N):
    sum = 2
    primes = [2]
    for i in range(3, N):
        isPrime = True
        for p in primes:
            if i%p==0: isPrime = False; break
            elif p * p > i: break
        if isPrime: primes.append(i); sum+=i
    return sum

print(calc(2000000))
#9(0.10 sec). http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%209

def calc(c):
    aPlusB = 1000 - c
    c2 = c*c
    for b in range(1, aPlusB):
        a = aPlusB - b
        if a < b: break
        elif a + b + c != 1000: break
        elif 2*a*b >= c2: break
        elif a*a + b*b == c2: print(a, b, c)

for i in range(1,999):
    calc(i)
#9. http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%209

これはあれや。原子ピタゴラス数がどうとかいう奴や(わかってない)。
#8(0.043 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%208

s = "731671765313306249192251196744265747423553491949349698352031277450632623957
83180169848018694788518438586156078911294949545950173795833195285320880551112540
69874715852386305071569329096329522744304355766896648950445244523161731856403098
71112172238311362229893423380308135336276614282806444486645238749303589072962904
91560440772390713810515859307960866701724271218839987979087922749219016997208880
93776657273330010533678812202354218097512545405947522435258490771167055601360483
95864467063244157221553975369781797784617406495514929086256932197846862248283972
24137565705605749026140797296865241453510047482166370484403199890008895243450658
54122758866688116427171479924442928230863465674813919123162824586178664583591245
66529476545682848912883142607690042242190226710556263211111093705442175069416589
60408071984038509624554443629812309878799272442849091888458015616609791913387549
92005240636899125607176060588611646710940507754100225698315520005593572972571636
269561882670428252483600823257530420752963450"

def splt():
    return [e for e in s.split('0') if len(e) > 4]

def searchLocal(l):
    ll = []
    n = len(l)-4
    for i in range(0, n):
        ll.append("".join(sorted(list(l[i:i+5]), reverse=True)))
    return max(ll)

if __name__ == '__main__':
    l0 = splt()
    candidates = []
    for l in l0:
        candidates.append(searchLocal(l))
    max = max(candidates)
    res = 1
    for s in max:
        res *= int(s)
    print(res)
Maker's Mark 終了。ヘッジスバトラーをまとめて買いたいな。
7問目(4.6 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%207


def calc(N):
    primeList = [2] 
    n = 1
    i = 3
    while(True):
        for p in primeList:
            if p * p > i: pass
            elif i % p == 0: break
        else:
            primeList.append(i)
            n += 1
            print(n, i)
        if n > N: break
        i += 1

calc(10001)
すーががー: https://www.youtube.com/watch?v=k4_ZGeyBoow
今日は六問目まで解いた。この調子で何百問もあるのかよ。紙と鉛筆で解いたのは 1, 5, 6。

2014年3月3日月曜日

三問目。何を求めているのか謎。アルゴリズムは自明なのでどれだけ高速化できるか楽しめよってことなのかしら。
なので頭から愚直に足していって最後に半分こ。母関数ってなんだっけ。
二問目: http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%202

数列の和の半分なんだろ? とは思うが端っこがどうなっているかを考えなきゃいけなくて早くも手を動かしたくない。端っこ嫌い。
で、英語は読みたくないのでこれ: http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%201

一問目から紙と鉛筆で解けるじゃんっていう。
ゆーくんの薫陶宜しきを得て Project Euler になど手を出す。取り敢えず Registration は済ませた。面倒臭えな。