LoginSignup
16
12

More than 5 years have passed since last update.

Rでズンドコキヨシ関数を

Last updated at Posted at 2016-03-10

元ネタ

コード

kiyoshi.R
kiyoshi<-function(){
  x <- c()
  repeat{
    x<-c(sample(c("ズン","ドコ"), 1,replace=T),x)
    print(x[1])
    if(length(x)>4&prod(x[1:5] == c("ドコ","ズン","ズン","ズン","ズン"))==1){
      cat("キ・ヨ・シ!(", length(x),"回ズンドコしました)\n",sep = "")
      break
    }

    if(length(x)>999){
      print("キ・ヨ・シ!はできませんでした")
      break
    }
  }
}

結果(画像)

test.JPG

要約

Rではsample関数によって復元抽出を行うことができます。
選ばれた"ズン" あるいは"ドコ" を用意したベクトルの先頭に挿入します。
"キ・ヨ・シ!" への分岐条件は、ベクトルの最初の5つの要素と
"ズン" "ズン" "ズン" "ズン" "ドコ" を逆さまにしたベクトルを比較することで行います。
この比較の結果はベクトルで返されるので、if文にあてはめるためにprod関数でベクトル内の要素を全てかけ合わせます。
TRUE = 1, FALSE = 0なので"ズン" "ズン" "ズン" "ズン" "ドコ" 全てがマッチしたときだけ1になります。
結果はcat関数で、せっかくなのでズンドコした回数もベクトルの長さを取得して出力します。

余談

Rはこういう仕事向いていないんじゃないかなあ

先人

16
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
12