ラベル アルゴリズム の投稿を表示しています。 すべての投稿を表示
ラベル アルゴリズム の投稿を表示しています。 すべての投稿を表示

2009/08/18

カオス

アルゴリズムの本に載ってたんでProcessingで作ってみた。ストレンジアトラクタとかいう類のものなんだけど、僕はこういう数学的なの結構好きだ。
フラクタルとか面白いよね。
ちなみにこれは
p_{n+1}=p_n+kp_n(1-p_n)
という漸化式でn->無限大 にしたとき係数kの値によって収束したり、しなかったりするものです。
収束しないときはこれまた係数kによって何個かの値を交互に取ったり、もはや規則性が見えなくなってカオス状態になってしまったりというものです。
画像は横軸を係数、縦軸にpをとったもの。
以下ソースコード。

int i;
float k,p,dk,kmin,kmax,pmin,pmax;

kmin=1.5;
kmax=3.0;
pmin=0.0;
pmax=1.5;

size(600,400);
colorMode(HSB,100);
background(10);
smooth();

dk=(kmax-kmin)/(width-1);

for(k=kmin;k<=kmax;k+=dk){
p=0.3;
for(i=1;i<=1000;i++) p+=k*p*(1-p);
for(i=1001;i<=1400;i++){
if(p>=pmin&&p<=pmax){
float Pk=map(k,kmin,kmax,0,width);
float Pp=map(p,pmin,pmax,0,height);
//stroke(99);
//point(Pk,height-Pp);
noStroke();
float r=random(0.1,1.5);
fill(random(0,20),99,99);
ellipse(Pk,height-Pp,r,r);
}
p+=k*p*(1-p);
}
}

2009/06/30

予選通過

予選通過しました

2009/06/21

でけた!

最近は夏衣ちゃんと一緒にSuperConっつーやつの予選問題解いてました。

その問題ってのは、一辺の長さがdのn個の正方形が占める面積の合計を求めろってやつで。
与えられるデータはnとd、そして各正方形の左下頂点の座標。
ただし、この座標がとりうる範囲は0から10,000。
ついでに、nは1以上5万以下で、dは1以上100以下。
当然正方形どうしが重なりあうこともあるわけで、求めるのはそれら全体が覆う部分の面積。

アルゴリズム教えられへんけど、いまんとこ0.3秒くらいでn=50,000、d=100のやつの面積を求めることができてる。
本番まで比較相手がいないからこれが速いのか遅いのかよく分からないけど。
もうこれで出そうかな。締め切り明後日だし。と思ってる今日このごろでした。

あ・・・プレゼン・・・やばい・・・おわらんって・・・・・・
つかまず練習せなアカンやろ・・・スライドさえもまだ・・・テスト直後とか、やる時期ミスってるやろ・・・