裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

もっと変態チックな FizzBuzz

2012年02月18日 | ブログラミング

速いけど,この先にあるのは,答えの文字列を書き出すというプログラムになりそう(^_^;)

> system.time({
+ limit <- 1000000
+ ans3 <- rep(c("d", "d", "Fizz", "d", "Buzz", "Fizz", "d", "d", "Fizz", "Buzz", "d", "Fizz", "d", "d", "FizzBuzz"), ceiling(limit/15))[1:limit]
+ temp <- ans3=="d"
+ ans3[temp]<- which(temp)
+ })
   ユーザ   システム       経過  
     0.324      0.003      0.347
> all(ans1==ans3)
[1] TRUE

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

R らしいかもしれないがエレガントではない FizzBuzz

2012年02月18日 | ブログラミング

速度を求めるなら以下のように

> i <- 1:1000000
> system.time({
+ ans1 <- ifelse(i %% 15 == 0, "FizzBuzz", ifelse(i %% 3 == 0, "Fizz", ifelse(i %% 5 == 0, "Buzz", i)))
+ })
   ユーザ   システム       経過 
     3.214      0.141      3.334
> system.time({
+ ans2 <- i
+ l <- length(ans2)
+ ans2[1:(l%/%3)*3] <- "Fizz"
+ ans2[1:(l%/%5)*5] <- "Buzz"
+ ans2[1:(l%/%15)*15] <- "FizzBuzz"
+ })
   ユーザ   システム       経過 
     0.473      0.008      0.479
> all(ans1 == ans2)
[1] TRUE

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村