サンプル有り。プログラミングでよく出る「乱数」とは何か?活用方法は?

ITリテラシー

プログラミングをやっていると、「乱数」という用語を目にすると思います。

今回はこの乱数について解説します。
この記事を読むと、乱数をプログラミングに組み込んで活用できるようになります。

目次

乱数とは

ランダムな数値のことです。
ランダムとは、規則性がない、無作為な、手当たり次第、何が出るかわからないことを言います

たくさんのプログラミング言語がありますが、そのほぼすべてで乱数を作り出す関数が標準で用意されています。

参考までに、WEB系言語で人気の高いPHP・Ruby・Python・JavaScriptの乱数の作り方です。
このコードは、1〜10までの値をランダムで表示するサンプルコードです。
実際に動作を確認してみたい方は、paiza.IOなどで実行してみてください。

PHP

echo mt_rand(1,10);

Ruby

puts rand(1..10)

Python

import random
print(random.randint(1,10))

JavaScript

console.log(Math.floor((Math.random() * 10) + 1));

※JavaScriptでは、整数を返すためにrandomで得られた結果から、floorで小数点を切り捨てる必要あり。

ちなみに、コンピュータで表現できる乱数は『擬似乱数』と呼ばれ、完全なランダムではありません。
暗号化のキーにするとか、重要な数値の決定には使わないよう注意してください。

乱数を活用した実例

私が作ったツールです。
GoogleフォームとGoogleスプレッドシートを使ってTwitter抽選ツールを作りました。
このツールでは、応募者の中から抽選で当選者をえらんでいます。
乱数を使ったシステムを作ってみたい方は、試してみてください。

他にも思いついたものを記載していきます。

  • カードゲームのカードシャッフル
  • RPGの敵とのエンカウント
  • FPSで打った弾のブレ
  • 麻雀の配牌
  • スマホゲームのガチャ
  • RDD(NHKが行っている世論調査の方法。ランダムで電話番号を発生させる)

などです。
やはりゲームでよく使うと思います。
実際に乱数を使う時は、時間経過やユーザーのコントローラー操作の値と組み合わせて、より実際のランダムに近い乱数を作り出すようです。

他システム系でいえば、業務系システムやWEBサービス制作ではあまり使う場面はないと思います。
私はSIer系のシステム会社で10年近く働きましたが、仕事では1回も乱数は使いませんでしたね。

乱数の使い方

サンプルコードで1〜10の数値をランダムで発生されるコードを先程紹介しました。
これをプログラムの具体的にどこに使うかですが、、それは、
主に配列の添字に使うことが多いかと思います。

私の作ったTwitter抽選ツールも、配列の添字を乱数で作って、その中身を取り出します。
画像の例でいくと、乱数が「1」を返したら、『そば』を出すということですね。

他にもランダムで「今日の一言」を出したり、自分のブログからランダムで1記事ツイートする、といったこともできますね。

是非、自分の作ってるサービスに一工夫いれるのに使ってみてください。

スポンサードリンク

ITリテラシー・プログラミングのまとめ記事