ToDo:
寝坊が怖くて寝れない。 家出て成田。早く着き過ぎ。 手続きしてぼんやり。 飛行機。 例のごとく隣は外人。 まぁ英語なので無問題ではないけど困りもしない。 寝まくったり酒呑んだり飯喰ったりしてから 飛行機内でおべんきょう。 論文と量力の歴史と。
ユーロをポンドに変換。 紙幣しか交換できんと言われて £38.5 ゲット。 結局手数料考えると日本で二段階変換したのとそんなに変わらない。 コインは機械で変換できるみたいだが、 2ユーロ0.8ポンドとか。 どう見てもぼったくりです意地でも交換するもんか。
着いた。異国なのに町の表示が読めるから困るけど死にはしない。 ヒースロー→パディントン £14.5 。 パディントン駅に回転寿司が。 パディントン→Bristol Temple Meads £48.5 。 殺す気か。 電車から馬とか牛とかが見える。
駅からバスに適当に乗る。 逆回りぽいのに乗ったけどまあいいか。 Cotham Road と伝えたつもりだったけど素通りされて 質問するが言葉が通じないけどまぁ死にはしない。 下りて迷いながらひょこひょこ歩いて Bill 邸へ。 22時なのに外はまだ明るい。
水とかもらってホテル行っていろいろやって寝た。 ホテルはネット無いぽい。
HP に TAXI 。 今にいたる。
(11:31)
http://tuch.blog66.fc2.com/blog-entry-148.html
じゃじゃ馬の単行本読んでヒッチで翌日北海道行ったけど、 行き倒れになったり牧場の美人4人姉妹の次女に拾われたりは しなかった。 まぁどっか行きたいなぁ。
(06:01)
発駅 9:30発 大塚(東京) 地図 | 時刻表 | 乗車位置 [ 9分 ] 電車 JR山手線(外回り) [上野方面 大崎行き] 150 円 9:39着 停車駅 9:42発 日暮里 地図 | 時刻表 [ 1時間7分 ] 電車 京成本線(特急) [成田空港行き] 1,000 円 △10:49着 着駅 成田空港(空港第2ビル) 地図 | 飛行機
(16:12)
class C {
void func() {}
}
template mem_fun(alias T) {}
alias mem_fun!(C.func) hoge;
が通ることを使ってなんかできないか。 できない。
(22:24)
これを inference って言うのかなぁ。
class C {}
class D : C {}
int main() {
auto add = (int x, float y) { if (true) return new C(); else return new D(); };
writefln(typeid(typeof(add(1,2))));
の返り値の部分を適当にかえてあそぶ。結局、 int & float, C & D, C & null あたり全滅。実に D らしい。 null は void* なんだね。
あー。
(13:47)
(20:53)
なんか色々感心した。
(21:09)
(let (x (getchar))
(while x
(putchar x)
(putchar (+= x 3))
(putchar x)
(putchar 10)
(= x (getchar))
))
くらいは動いた。
(08:54)
http://d.hatena.ne.jp/ytqwerty/20060628#p2
(00:13)
(00:26)
http://www.e-net.or.jp/user/kasagi/mizu/index.htm
via http://d.hatena.ne.jp/studiokingyo/20060626#p1
効くメカニズムが全然不明。 まぁニセ科学ぽい。
まぁせいぜい漢方じゃないかな…
あと高い。
(00:41)
イギリスはユーロじゃないらしい。
んじゃユーロ使う機会はしばらくなさげなので、 持ってるユーロを直接換金する方向で。
54ポンドくらいらしい。 まぁ1週間だしどうせクレジットカードあるから足りるんじゃね…
(18:08)
http://rko.jp/sherlock_holmes-hakushaku_reijou_yuukai_jiken/town-6.html
合言葉はアメノマチ
(19:22)
http://www.amazon.co.jp/exec/obidos/ASIN/4198607028/503-4855349-7085504
科学だけが本当に唯一、真理にアクセスできる方法なのだろうか…知性の本質を求めて 「プラトン的世界」=「精神の空間」へ決然として踏み入った天才ジョセフソンの封印さ れた科学的研究の足跡を辿る―。サイコキネス・テレパシー・遠隔透視から音楽の起源 に至るまで、未解明現象の謎に量子で迫る“禁断の研究”30年間の成果―。
すげーーー
(06:49)
なんか重力調節のゲームと六角形のヤツ。
見た目に重力の方が面白そうだったのでそっちをやる。 まぁ面白い。 ABボタンだけで2次元空間を移動する ゲームにちゃんとなってるのはたいしたもんかなぁ。 まぁ実際面白いんだけど、わりと退屈で、 カタルシスとかあんま無い。 まぁなるほどちゃんとできてるねぇ、という感じで、 あーそれ以上でもそれ以下でもなくて、 企画通り、試みとしては面白いっていうのはわかるし、 こういうことできる任天堂すげーとは思うんだけど、 ゲームの本質はココにアリ、みたいなのはまぁ違うだろうと。
そんで六角形の方は面白くないパズルだった。 まぁこれはまぁ微妙とかを越えて普通に面白くない。 パズルゲームってまぁルールは無数に考えられて、 深みにはそれほどの差は無いんだろうけど、 こう、だからこそ、わかりやすいカタルシスが 必要なんだろうなぁと。 テトリスは何を目指すかが十分わかりやすいし、 ぷよぷよは連鎖で爽快☆みたいな感じだし、 パネポンはまぁアクション連鎖とか見るからに楽しいし、 あとメテオスとかもなんかこう気持ち良さみたいなのは あるんだろうたぶんみたいな。 そういうのが無い以上、六角形のはパズルゲームとして ルールが妥当かどうかとか判断する次元にすら達せないというか。
ケータイとかのゲームとしてなら いい気がするんだけれども、 ゲーム機のゲームとしてはやはりこう物足りない系な。
あーでもなんか、今時のゲームの演出に慣れたウチらは 昔の薄味ではほげほげできんのですよ、みたいな、 ええと聖学では逆だった気もするけど、 どうでもいいや。 つまりそういう状態になってるとすれば 僕の方に問題があるとも考えられるし、 まぁ実際昔熱中したゲームウォッチとか 今じゃ絶対できんし、 結論はまぁよくある話だけど、 まぁ眠いなぁと。
あとなぜかアゴが痛い。なぜ?
(13:40)
i@u ~/wrk/bf> ghci sbf.hs ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 6.4.1, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package base-1.0 ... linking ... done. Compiling Main ( sbf.hs, interpreted ) Ok, modules loaded: Main. *Main> test sexpr "(a b (c (d) e) f)" Loading package parsec-1.0 ... linking ... done. [a,b,[c,[d],e],f]
動いたわー
import Text.ParserCombinators.Parsec
import qualified Text.ParserCombinators.Parsec.Token as P
import Text.ParserCombinators.Parsec.Language
import Text.ParserCombinators.Parsec.Expr
sbfStyle = emptyDef
{ commentStart = ""
, commentEnd = ""
, commentLine = ";"
, nestedComments = False
, identStart = identLetter sbfStyle
, identLetter = alphaNum <|> oneOf "_':!#$%&*+./<=>?@\\^|-~"
, opStart = oneOf ""
, opLetter = oneOf ""
, reservedOpNames = []
, reservedNames = []
, caseSensitive = True
}
lexer = P.makeTokenParser(sbfStyle)
whiteSpace = P.whiteSpace lexer
lexeme = P.lexeme lexer
symbol = P.symbol lexer
natural = P.natural lexer
parens = P.parens lexer
semi = P.semi lexer
identifier = P.identifier lexer
reserved = P.reserved lexer
reservedOp = P.reservedOp lexer
data Sexpr = IntConst Integer
| Ident String
| Expr [Sexpr]
instance Show Sexpr where
show (IntConst i) = show i
show (Ident i) = i
show (Expr e) = show e
expr = many sexpr >>= return . Expr
sexpr = parens (expr >>= return) <|>
(identifier >>= return . Ident)
test p s = case parse p "" s of
Left err -> print err
Right n -> print n
(19:17)
がホントかどうかチェックしよう。
昨日は gopku.rb
s = ''
`cpp #{ARGV[0]}`.split(/\n/).each do |l|
next if l =~ /^#/
s += l.sub(/^ */, '').chomp
end
File.open('out', 'w') do |o|
o.print s
end
p s.size
system("xclip < out")
PKU に Submit するために C のコードをコメント除去・空白削除して コピーバッファにつっこむ。
今日は prod.rb
|000>+|001>+|010>+|100>+|111> が 4項で書けないことを 証明したいらしいんで反例探しで 簡単なケースだけチェック。 まぁ結果見つからんかった。
def get(s, i)
s & (1 << i) != 0 ? 1 : 0
end
def st(s, t)
if (t == 0)
s.to_s
else
['0+1','0-1'][s]
end
end
def state_str(s, t)
r = ''
for i in 0...12
r += '(' + st(get(s, i), get(t, i % 3)) + ')'
end
r
end
def addterms(as, *ts)
r = []
ts.each do |t|
as.each do |a|
b = t.dup
e = a.dup
if e =~ /^-/
e.sub!(/^-/, '')
if b =~ /^-/
b.sub!(/^-/, '')
else
b = '-' + b
end
end
r.push(b+e)
end
end
r
end
def addminus(t, m)
if m == 1
if t =~ /^-/
t.sub(/^-/, '')
else
'-' + t
end
else
t
end
end
for m in 0...16
p m
for t in 0...8
for s in 0...4096
st = Hash.new(0)
for i in 0...4
a = []
minus = get(m, i)
if get(t, 0) == 0
a.push(addminus(get(s, i*3).to_s, minus))
else
if get(s, i*3) == 0
a.push(addminus('0', minus))
a.push(addminus('1', minus))
else
a.push(addminus('0', minus))
a.push(addminus('-1', minus))
end
end
if get(t, 1) == 0
a = addterms(a, get(s, i*3+1).to_s)
else
if get(s, i*3+1) == 0
a = addterms(a, '0', '1')
else
a = addterms(a, '0', '-1')
end
end
if get(t, 2) == 0
a = addterms(a, get(s, i*3+2).to_s)
else
if get(s, i*3+2) == 0
a = addterms(a, '0', '1')
else
a = addterms(a, '0', '-1')
end
end
a.each do |at|
e = at.dup
if e =~ /^-/
e.sub!(/^-/, '')
st[e] -= 1
else
st[e] += 1
end
end
end
if st.key?('000') && st.key?('111') && st.key?('001') && st.key?('010') && st.key?('100') && st.size == 5
p state_str(s, t)
p st
end
end
end
end
(21:35)
b,l,s[99];main(m,n,i,w,x,y,z){
for(;;){
for(;n=getchar(n)-10;l+=8)s[n]++;
if(l==24&&s['E']==s['N']==s['D']==1)break;
z=85;
x=55;
for(;;){
s[m=n=99]=9999;
w = 0;
for(y=i=x;i<=z;i++){
if(s[i]) {
if(!w)w=i;
y = i;
if(s[i]<s[m]){
if(s[i]<s[n]){m=n;n=i;}
else m=i;
}
}
}
x=w;
z=y;
if(m==99)break;
b+=(s[m]+=s[n]);
s[n]=0;
}
printf("%d %d %.1f\n",l,b,1.*l/b);
b=l=0;
}
}
適当にCで書いてその場しのぎの高速化しても通らなかった。 なんかCで通ってる人いるんだけどなぁ。 まぁC++の方が短くなりそうな気すらする。
(02:53)
#include<cstdio>
#include<set>
int m,n,b,l,i,k[99];main(){
std::multiset<int>s;
for(;;){
for(;n=getchar()-10;l+=8)k[n]++;
if(l==24&&k['E']==k['N']==k['D']==1)break;
for(i=55;i<=85;i++){if(k[i])s.insert(k[i]);}
for(;s.size()>1;){
std::multiset<int>::iterator i=s.begin();
m = *i;
s.erase(i++);
n = *i;
s.erase(i);
b+=(m+=n);
s.insert(m);
}
printf("%d %d %.1f\n",l,b,1.*l/b);
b=l=0;
}
}
おやこれでもTLE。ダメじゃん!
(03:09)
*m,*n,*i,s[99];main(b,l){
for(;m=n=memset(s,0,396);printf("%d %d %.1f\n",l,b,1.*l/b)){
for(l=0;b=getchar()-10;l+=8){
s[b]++;
if(b-l==60)return;
}
for(b=0;m-s-1;){
b+=*m+=*n;
*n=0;
m=n=s+1;
*m=99;
for(i=s+86;*i-99;)
*--i&&*i<*m?*i<*n?m=n,n=i:(m=i):0;
}
b=b?b:l/8;
}
}
250Byte。さっさとアルゴリズムいじれと
(04:53)
| 前 | 2025年 11月 |
次 | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 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 | ||||||
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ niha [イギリスは自分が一番じゃないのイヤなので、一番じゃないEU関係はまだアレみたいですね。ユーロも国民投票一度あったけど..]
_ YT [部屋が綺麗になりそうなのがいいですね!(Clean調べてたらFFIが要望のほうにありました……つまり無いのか)]
_ shinh [へーなるほど。とりあえず適当にぐぐるに国民投票があったのはデンマークかものようです。まぁイギリスも世論調査で反対多数..]