目次
概要
Kotlinで乱数を生成する。参考ページによると、乱数生成の仕方は複数ある。
本ページではおおよそ3通り紹介する。
ソースコード
MainActivity.kt
package com.seeking_star.test
import android.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import java.util.concurrent.ThreadLocalRandom
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<Button>(R.id.button4).setOnClickListener {
// 乱数生成部分(Double型)( 0<=x<=1.0 )
var random = Math.random()
// 範囲指定の乱数(Int型)
val range = (0 .. 100)
var rangeRandom = range.random()
// ThreadLocalRandomを使った乱数(next〇〇メソッドで型、範囲指定)
var secureRandom = ThreadLocalRandom.current().nextDouble(0.0, 4.9)
AlertDialog.Builder(this)
.setTitle("乱数生成")
.setMessage("生成された乱数 $secureRandom")
.setNeutralButton("閉じる") { dialog, which ->
}
.show()
}
}
}
Kotlinスクリーンショット
詳細
参考ページによると以下の4種類の方法がある様子
項目 | 内容 |
Math.random() | 0~1の実数(簡単に言うと小数)を返す。 型はDouble型。 |
Range型のrandom() | ([最小値] .. [最大値])のRange型の範囲の整数を返す。 型はInt型。おそらく最も使われるものと思われる。 |
Range型のshuffled() で得られるものの先頭 | 基本的にRange型のrandom()と同じ。 違うところは、randomメソッドを使わず、 shuffled メソッドを使用してランダムに取り出す処理にしていること |
ThreadLocalRandom | 状況に応じて様々なパターンの乱数を生成できる。 基本型はThreadLocalRandom.current().next〇〇([最小値], [最大値]) 型はInt, Doubleなど任意に指定できる。 |
HPとか残り時間とか、そういったメーターを表示するときはMath.random()がいいかもしれない。
参考ページ:
ヒヨコ プログラミング(ヒヨプロ)