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

problem 7

今日はもうやらないつもりだったのだけど,ちらっと見たらまた素数だったので problem 3 のコードを流用した. #include <stdio.h> #include <stdlib.h> #define SIZE 10001 int main() { unsigned long long int *primes = (long long int *)malloc(sizeof(long long int)*SIZE</stdlib.h></stdio.h>…

problem 5

Problem 3 のコードの使い回しを行った. #include <stdio.h> #define SIZE 20 int main() { unsigned int multiples[SIZE][2]; unsigned int primes[SIZE]; int result=1,max=20,n=4,i=2,j=0,k; primes[0]=2; primes[1]=3; for(;n <= max;n+=1) { int f=1; for(k=0;k</stdio.h>

problem 1-4

Problem 1: #include <stdio.h> int main() { int n=0,i=0,j; while(i<997)n+=(i+=3); for(i=5;i<1000;i+=15)n+=((j=i+5)<1000)?i+j:i; printf("%d\n", n); } Problem2: #include <stdio.h> int main() { int n=0,t1=1,t2=2; while(t2 < 4000000) { n+=(t2%2==0)?t2:0; t2+=t1;</stdio.h></stdio.h>…

優先順位つきキューを用いたエラトステネスの篩の変形

Haskellでエラトステネスの篩 - 簡潔なQ 上の記事に出てくる「優先順位つきキューを用いたエラトステネスの篩の変形」が C++ で書かれたコードを読んでもよく分からなかったので本人に尋ねてみた所,そもそも優先順位つきキュー自体がよく分かっていないこと…

SKI combinator calculus

*Main> termToString $ ski (E2 (E3 S (E2 K (Var 'x')) (E3 S I I)) (Var 'y')) "xyy"という感じで動作するプログラム.某 Skype チャットに SKI という単語が出てきてふと思い出したので書いてみた.例によって間違ってる可能性ありありなので適当に指摘し…

エラトステネスの篩

よく haskell コードの例として出される primes = sieve [2..] sieve (p:xs) = p : sieve [x | x <- xs, x `mod` p /= 0] は遅いよ,という割と有名な話を昨日読んでみたんだけど,なんだか腑に落ちない部分があったのでここに書いてみる.参考にした記事は…

isTaut 2

抜けている条件があったので補ったら先程の論理式も正しく判定するようになった.やりましたね! *Main> isTaut (Not (And (And (Or (Var 'x') (Var 'y')) (Or (Not (Var 'x')) (Var 'y'))) (And (Or (Var 'x') (Not (Var 'y'))) (Or (Not (Var 'x')) (Not (V…

恒真式判定は co-NP 完全

コメント欄で id:qnighy が「ソース読んでないけど、たしかisTautってco-NP完全でしたよね」と言っていたのだけどその辺を勉強していないボクとしては何を意図しているのかわけわかめな感じになったので Wikipedia の記事をざっくり読んでみた.まあそれでも…

isTaut

*Main> isTaut (Imply (And (Var 'A') (Var 'B')) (Var 'A')) Const True *Main> isTaut (Imply (And (Var 'A') (Not (Var 'A'))) (Const False)) Const True恒等式かどうか判定するプログラム.これも『プログラミング Haskell』に載っていた例題だけどあっ…

stackvm

なにやら『プログラミング Haskell』で足し算のみ可能なスタック型 VM を実装していたのを見て,普通に関数を与えられるように改良 (?) してみた.なんとなく要領を掴めてきた…はず…! data Expr = Const Int | OP Op | OPCODE Opcode type Op = (Int, [Int] …

lifegame

『プログラミング Haskell』を半分程度読み終えたのにコードを一行も書いたことが無いというのは流石にまずいだろうと思ってライフゲームを実装してみた.というかこのライフゲーム自体もプログラムとして書いた経験が無いという事が判明したのですが,大体…