Android
 Computer >> コンピューター >  >> プログラミング >> Android

Kotlinで乱数を生成する方法まとめ|Randomクラス・random()・shuffled()の使い方

Kotlinでは、乱数を生成するための方法が複数用意されています。この記事では、代表的な乱数の生成方法をいくつか紹介し、それぞれのコード例とともに、プログラム内でどのように活用できるのかを解説します。

方法1:Randomクラスを使う

Random()は、指定した条件に基づいて乱数を生成するための抽象クラスです。使用する際は、kotlin.random.Randomをインポートする必要があります。

Kotlinの公式ドキュメントによると、コンパニオンオブジェクトであるRandom.Defaultが、Randomクラスのデフォルトインスタンスとして提供されています。次の例では、0以上30未満の範囲でランダムなInt値を5つ持つリストを生成しています。

コード例

import kotlin.random.Random

fun main() {
    val myRandomValues = List(5) { Random.nextInt(0, 30) }

    // 実行するたびに新しい数列が出力される
    println(myRandomValues)
}

実行結果

以下のような乱数が生成されました。乱数の性質上、実行するたびに異なる結果になります。

[8, 21, 16, 29, 16]

方法2:random()関数を使う

Kotlinには、乱数を手軽に生成できるrandom()関数も用意されています。この関数は数値の範囲(レンジ)を入力として受け取り、その中からランダムなInt値を1つ返します。

コード例

fun main() {
   // 0から10までの間でランダムな数値を生成
   println((0..10).random())
}

実行結果

実行すると、以下のような出力が得られます。

0

方法3:shuffled()を使う

Kotlinには、シーケンスの中からランダムな値を取得するもう一つの方法があります。shuffled()を使用すると、要素をシャッフルしたコレクションを作成できるため、たとえば1から100までの範囲でランダムな数値を簡単に取得できます。

コード例

fun main() {
   val random1 = (0..100).shuffled().last()
   println(random1)
}

実行結果

実行すると、以下のような出力が得られます。乱数の性質上、環境によって結果は異なります。

42

まとめ

Kotlinで乱数を生成する主な方法は以下の3つです。

  • Randomクラスkotlin.random.Randomをインポートして使う標準的な方法。範囲指定や複数個の生成に柔軟に対応できる。
  • random()関数:レンジに対して直接呼び出せる簡潔な方法。単発の乱数取得に便利。
  • shuffled()関数:コレクションをシャッフルしてから値を取り出す方法。シャッフル自体を活用したい場合に有効。

用途に応じてこれらの方法を使い分けることで、より読みやすく効率的なKotlinコードを書くことができます。

  1. Androidでデフォルトの電話番号を取得する方法を解説!サンプルコード付き

    このチュートリアルでは、Androidアプリでデフォルトの電話番号(端末のSIMカードに登録されている電話番号)を取得する方法を、実際に動作するサンプルコードとともに解説します。手順1:Android Studioで新規プロジェクトを作成するまず、Android Studioを開き、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。手順2:レイアウトファイル(activity_main.xml)を編集する次に、res/layout/activity_main.xml に以下のコードを追加します。<?xml

  2. Androidで指定した範囲の乱数を生成する方法【初心者向けサンプルコード付き】

    この記事では、Androidアプリで指定した範囲(最小値〜最大値)の中からランダムな数値を生成する方法を、実際に動作するサンプルコードとともに解説します。ユーザーが入力した最小値と最大値をもとに、ボタンをタップすると乱数が画面に表示されるシンプルなアプリを作成していきます。 乱数生成の基本的な仕組み Java標準のjava.util.Randomクラスを利用すると、簡単に乱数を生成できます。任意の範囲内の乱数を取得するには、次の式を使います。 output = r.nextInt((max - min) + 1) + min; nextInt(n)メソッドは「0以上 n 未満」の整数を返します