(アイン君がグレイズになってしまった)
概要
なんか、最近ズンドコキヨシチェックがFizzBuzzに代わるプログラマーの腕試しだと聞いて、自分も書いてみました。(PHPで書くと何番煎じだよって話なので、大学のころお世話になったVisualBasic先輩に出てきてもらいました。今でもたまに書くんですけどね。)
こういうことで投稿数を稼ぐ
結果だけを知りたいせっかちなホモのために結果を先にしますよ。
##実行結果
適当に数回実行して、キヨシるまでの時間を計ってみたら、(スマートフォンのストップウォッチだけど)
遅くて、7.25秒 早くて1.21秒 平均3.18秒
これがズンズンズンドコだったら、早くキヨシれていたなぁ。ズンが4つあるのがミソ?
回数 | 時間(分) |
---|---|
1回目 | 0.0725 |
2回目 | 0.0211 |
3回目 | 0.0139 |
4回目 | 0.0121 |
5回目 | 0.0611 |
6回目 | 0.0155 |
7回目 | 0.0269 |
平均 | 0.0319 |
ソースコード
zundoko.vb
Module Module1
Dim zundokoParts As String() = {"ズン", "ドコ"}
Dim Zundoko As String() = {zundokoParts(0), zundokoParts(0), zundokoParts(0), zundokoParts(0), zundokoParts(1)}
Dim generateList(4) As String
Dim sleep As Integer = 25
Sub Main()
Do
For i = 0 To Zundoko.Length - 1
Dim seed As Integer = System.Environment.TickCount '固定じゃない数値をシード値に使う
Dim rnd As Random = New Random(seed + 1)
Dim rndNum As Integer = rnd.Next(zundokoParts.Length)
generateList(i) = zundokoParts(rndNum)
Console.WriteLine(zundokoParts(rndNum))
System.Threading.Thread.Sleep(sleep) '連続生成したRandomクラスのシード値の重複防止
Next
Console.WriteLine()
Loop While (compareList() = False)
Console.WriteLine("キ・ヨ・シ!")
End Sub
Function compareList()
Dim result As Boolean = False
For i = 0 To Zundoko.Length - 1
result = Zundoko(i).Equals(generateList(i))
If (result = False) Then
Exit For
End If
Next
Return result
End Function
End Module