#----------- # フィボナッチ数(fibonacci number)のリストを生成、テキスト形式で保存 #----------- # 環境変数、初期変数の設定 sfold="D:\\R\\fibonacci_number" #データ保存フォルダ maxval=100 #探索範囲最大値 viewval=as.integer(maxval/10) #画面表示判定用 sfile=paste("fnlist",maxval,".txt",sep="") #保存ファイル名 options(scipen=100) #---------- setwd(sfold) #カレントディレクトリの変更 arr_fn <- numeric(1) #フィボナッチ数を格納する配列(0を並べた配列を用意) i=1 #i番目のフィボナッチ数 arr_fn[i]<-1 #1番目のフィボナッチ数 i=i+1 arr_fn[i]<-1 #2番目のフィボナッチ数 i=i+1 sink("log.txt") sink() starttime<-proc.time() flag<-0 while(i<=maxval && flag==0){ #探索範囲 arr_fn[i]=arr_fn[i-1]+arr_fn[i-2] if(arr_fn[i]<1000000000000000){ if(i%%viewval==0){ #画面表示の条件 endtime<-proc.time() keika=(endtime-starttime)[3] sink("log.txt",append=TRUE) cat("Tn(",i,")=",arr_fn[i]," 経過時間=",keika,"\n") sink() cat("Tn(",i,")=",arr_fn[i]," 経過時間=",keika,"\n") } }else{ flag=1 cat("1000000000000000より大きい数字\n") } i=i+1 } write.table(arr_fn,sfile,quote=FALSE,row.names=FALSE,col.names=FALSE) #データファイル保存 rm(list=ls(all=TRUE)) #全体の初期化