みその計算物理学
ホーム はじめに リンク集
フラクタルの数値計算例(C言語)
  • プログラムソース

    乱数を利用してシェルピンスキーギャスケットを描く。

    #include <stdio.h>
    #include <stdlib.h>
    
    #define n 50000         //繰り返し回数
    #define seed 1127       //乱数発生パターンを変えるタネ
    
    int main()
    {
            int i,m;
            double a[3]={0.0,100.0,100.0},b[3]={0.0,0.0,100.0};             //はじめの三角形
            double x,y,r;
    
            x=1.0;          //はじめの三角形の内部ならどこから始めてもよい
            y=2.0;
    
            FILE *output;
            output=fopen("output.data","w");
    
            srand(seed);
    
            for(i=0;i<n;i++) {
    
                    r=rand()/(RAND_MAX+1.0);                //0~1の間の乱数を発生
    
                    if(r<1.0/3.0) m=0;
                    else if(r>=1.0/3.0 && r<2.0/3.0) m=1;
                    else m=2;
    
                    x=(x+a[m])/2.0;
                    y=(y+b[m])/2.0;
    
                    fprintf(output,"%f %f\n",x,y);
            }
    
            fclose(output);
            
            return 0;
    }
    
  • GNUPLOT出力結果