【PHP】レッスン1-07:乱数を生成しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:乱数生成

この記事の練習問題を解くために必要な知識:
PHPタグ入力と出力コメントの書き方変数と定数データ型とキャスト算術演算子文字列文字列の連結と埋め込み乱数生成

<<前のページ PHP記事一覧 次のページ>>

PHPの「乱数生成」とは

この章ではPHPにおける「乱数生成」の意味や使い方を学習します。用語の解説が不要な方はここをクリックして練習問題へ飛びましょう。




プログラミングでは、ランダムな値を生成する機能が必要になることがあります。

例えばゲームでサイコロの目を作ったり、抽選を行ったりする場合に乱数生成が使われます。

本節ではPHPで乱数を生成する方法について学びます。

乱数生成とは?

乱数生成とはプログラム内でランダムな値を作り出すことです。

この「ランダム」とは一定の範囲内で予測不可能な値を生成することを指します。

PHPでは乱数生成のためにいくつかの方法を提供しています。主に使用されるのは以下の関数です。

  • mt_rand (モダンな乱数生成器を使用)
  • rand (古い方法)
  • random_int (暗号論的に安全な乱数生成)

乱数生成の基本構文

以下はPHPの乱数生成に使う関数の基本構文です。

// mt_randを使用した乱数生成
$randomNumber = mt_rand($min, $max);

// randを使用した乱数生成
$randomNumber = rand($min, $max);

// random_intを使用した乱数生成
$secureRandomNumber = random_int($min, $max);

$min$max は乱数生成範囲を指定する数値です。

例えばmt_rand(1, 100) とすると、1から100までのランダムな整数が生成されます。

乱数生成の使用例

<?php
// 1から10までのランダムな整数を生成
$randomNumber = mt_rand(1, 10);
echo "生成された乱数: " . $randomNumber . PHP_EOL;

このコードはmt_rand 関数を使い、1から10までのランダムな整数を生成します。

まとめ

乱数生成はプログラミングで頻繁に使われる重要な機能です。

PHPでは mt_randrandom_int を使うことで、用途に応じた乱数生成が可能です。

本節で学んだ知識を活用して、ぜひさまざまなプログラムに応用してみてください。

乱数生成の練習問題:mt_rand関数を使おう

乱数を生成するプログラムを作成して、PHPで乱数生成を学びましょう。

指定された範囲の中でランダムな数値を生成し、その結果を出力します。

また、生成された乱数がどの範囲から選ばれたものかを日本語で説明してください。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • 変数 $min に最小値を格納し、1を代入すること。
  • 変数 $max に最大値を格納し、100を代入すること。
  • mt_rand 関数を使用して $min から $max の間の乱数を生成し、結果を変数 $randomNumber に格納すること。
  • 生成された乱数を "乱数生成の結果は: X" の形式で出力すること (X は乱数)。
  • "この数値は $min から $max の間でランダムに選ばれました。" の形式で、乱数が選ばれた範囲を説明する文章を出力すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

乱数生成の結果は: 42
この数値は 1 から 100 の間でランダムに選ばれました。

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:乱数の最小値を1として定義
2:乱数の最大値を100として定義
3:mt_rand関数を使用して、指定された範囲の乱数を生成し、変数$randomNumberに代入
4:「乱数生成の結果は: 」と生成された乱数を連結して出力
5:「この数値は $min から $max の間でランダムに選ばれました。」と出力

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

<?php

// 乱数を生成するための最小値と最大値を定義します
$min = 1; // 最小値
$max = 100; // 最大値

// mt_rand関数を使って、指定した範囲の乱数を生成します
/*
【穴埋め問題1】ここで$minから$maxの間で乱数を生成し、変数$randomNumberに代入してください。
*/

// 結果を出力します
echo "乱数生成の結果は: " . $randomNumber . PHP_EOL;

// ユーザーに対して生成された乱数の説明を日本語で出力
echo "この数値は $min から $max の間でランダムに選ばれました。" . PHP_EOL;

以上がこの問題の穴埋めコードです。

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



練習問題の解答と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

<?php

// 乱数を生成するための最小値と最大値を定義します
$min = 1; // 最小値
$max = 100; // 最大値

// mt_rand関数を使って、指定した範囲の乱数を生成します
$randomNumber = mt_rand($min, $max);

// 結果を出力します
echo "乱数生成の結果は: " . $randomNumber . PHP_EOL;

// ユーザーに対して生成された乱数の説明を日本語で出力
echo "この数値は $min から $max の間でランダムに選ばれました。" . PHP_EOL;

正解コードの解説

今回のコードは「乱数生成」を学ぶ内容が中心です。

このコードをブロックごとに分割し、それぞれの部分を解説していきます。

最小値と最大値の設定

$min = 1; // 最小値
$max = 100; // 最大値

ここでは乱数生成に使用する範囲を定義しています。

  • $min: 乱数の最小値として設定される変数です。このコードでは1が代入されています。
  • $max: 乱数の最大値として設定される変数です。このコードでは100が代入されています。

乱数の生成

$randomNumber = mt_rand($min, $max);
  • mt_rand($min, $max) は指定された範囲(ここでは $min から $max)の間でランダムな整数を生成する関数です。
  • この関数の結果は変数 $randomNumber に格納されます。

結果の出力

echo "乱数生成の結果は: " . $randomNumber . PHP_EOL;
  • echo は指定した文字列や値を画面に表示するためのPHPの基本的な出力機能です。
  • PHP_EOL は改行を表します。

乱数範囲の説明を出力

echo "この数値は $min から $max の間でランダムに選ばれました。" . PHP_EOL;
  • この部分では生成された乱数がどの範囲から選ばれたかを表示しています。
  • ダブルクォーテーション内で変数(例: $min$max)を使うと、その値が自動的に文字列に埋め込まれます。

まとめ

このコードではPHPの基本的な文法(変数、関数、文字列の埋め込み)を使いながら、乱数生成について学びました。

乱数生成はゲームやシミュレーション、データ生成など、さまざまな場面で活用されます。

<<前のページ PHP記事一覧 次のページ>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    PHPのテキスト&問題集トップへ戻る
    トップページへ戻る