今日の人気記事

  1. continue文 - ループをスキップ
  2. int main(void) - プログラムの基本
  3. while文 - 繰り返し処理
  4. 入力した2つの数値の掛け算・割り算する
  5. 入力した n個の整数から一番大きい数を探す

乱数の生成 - rand関数

当ページのリンクには広告が含まれています。

スポンサーリンク

ここではC言語のrand関数を使って、乱数を生成する方法を紹介します。

乱数

乱数とはランダムな数のことです。

サイコロを降ったときの「数」みたいなもので、何が出るかわからないランダムな数のことを「乱数」といいます。

ランダムな数(乱数)はゲームなどのプログラミングには必須なので、使い方を覚えておきましょう。

rand関数

rand関数を利用する場合は「stdlib.h」というヘッダーファイルを読み込む必要があります。

#include<stdlib.h>

rand関数は「0~RAND_MAX」の乱数を発生します。RAND_MAX は環境によって異なるので、お使いの環境で確認してみましょう。

それでは実際に rand関数を使ってみましょう。

サンプルプログラム

rand関数を使って、乱数を3つ表示、また RAND_MAX も表示するサンプルプログラムです。

#include <stdio.h>
#include <stdlib.h>

int main(void){

  int i;

  /* 乱数を生成 */
  printf("◆ 3つの乱数を生成\n");
  for(i=0;i<3;i++)
    printf("%dつ目の乱数 = %d\n", i+1, rand());

  /* 乱数の最大値を表示 */
  i = RAND_MAX;
  printf("\n◆ 乱数の最大値を表示\n");
  printf("RAND_MAX = %d\n", i);

  return 0;
}

実行結果です。

◆ 3つの乱数を生成
1つ目の乱数 = 16807
2つ目の乱数 = 282475249
3つ目の乱数 = 1622650073

◆ 乱数の最大値を表示
RAND_MAX = 2147483647

このように3つの乱数とRAND_MAXを表示します。

このプログラムを何度か実行すればわかるのですが、rand関数では同じ乱数しか発生しないようになっています。

乱数なのに……おかしいですね。

その問題を改良するために次は「乱数生成 - srand関数」をみていきます。

基本構文 の人気記事

  1. printf関数の変換指定子
  2. int main(void) - プログラムの基本
  3. 変数の値を出力 - printf 関数
  4. while文 - 繰り返し処理
  5. continue文 - ループをスキップ
  6. 条件演算子(3項演算子)「? :」
  7. 関数のプロトタイプ宣言
  8. (前置・後置)インクリメント演算子, ++
  9. 四則演算 - 算術演算子
  10. 数値の桁揃え

関連記事(一部広告含む)