第10章 第3の基数

  • 予習
  • 当日の記事はこちら
  • p232 "スクエアフリーな数"についてこちらを参照
    • \mu(n)=0 \, \leftrightarrow \, nは平方数で割り切れる
    • "スクエアフリー" は \mu(n) \neq 0 と同値
  • p240 トゥエのアルゴリズム
    • 実際計算させてみると数が大きくなると桁落ちしてしまうのでアルゴリズムが本来の目的から外れた挙動になってしまった...
    • Rで文字列を扱うのはこちら参照
  • 修正版:文字列のまま扱うことで桁落ちさせないように改変
f<-function(x){
lx<-noquote(strsplit(as.character(x),split=NULL)[[1]])
ln<-length(lx)
ly<-c()
for(i in 1:ln){
if(lx[i] == 0){ly<-paste(ly,12,sep="")}
else if(lx[i]==1){ly<-paste(ly,102,sep="")}
else if(lx[i]==2){ly<-paste(ly,0,sep="")} 
}
return(ly)    #文字列のまま返す
#return(as.numeric(ly))   #数値に直すと桁落ちする
}

x<-1
f(x)

#10回繰り返してみる
v<-c()
for(t in 1:10){
	v<-c(v,x)
	x<-f(x)
	}
print(v)