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

N個のサイコロの目をシミュレートするC++プログラム

本記事では、N個のサイコロを振る動作(Nダイスローラー)をエミュレートするC++プログラムを紹介します。サイコロの目は、1から6までの範囲の乱数を生成することで再現できます。

アルゴリズム

Begin
    Declare n
    Read n
    For i = 0 to n-1 do
        Generate sequence with rand() mod 6 + 1
        Print the sequence
    Done
End

サンプルコード

#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char **argv) {
    cout << "Enter the number of dice: ";
    int n;
    cin >> n;
    cout << "The values on dice are: ";
    for (int i = 0; i < n; i++)
        cout << (rand() % 6) + 1<<" ";
}

実行結果

Enter the number of dice: The values on dice are: 2 5 4 2 6 2 5

解説

このプログラムでは、標準ライブラリの rand() 関数を使用して乱数を生成しています。rand() % 6 によって0から5までの値が得られ、それに1を加算することで、サイコロと同じ1から6までの範囲の数値に変換しています。ユーザーが入力した個数分だけループ処理を行い、各サイコロの目を出力します。

なお、よりランダム性を高めたい場合は、<cstdlib> をインクルードした上で、プログラム冒頭に srand(time(0)); を追加して乱数のシードを初期化するとよいでしょう。これにより、プログラムを実行するたびに異なる結果が得られます。

  1. C++プログラムにおける二分探索(バイナリサーチ)の基本と実装

    二分探索(バイナリサーチ)とは二分探索は「半区間探索」「対数探索」「バイナリチョップ」とも呼ばれる検索アルゴリズムで、ソート済みの配列の中から目的の値が存在する位置を効率的に見つけ出します。基本的な仕組みは非常にシンプルです。まず、探したい値(ターゲット値)を配列の中央の要素と比較します。一致しなかった場合は、ターゲット値が存在し得ない半分を丸ごと排除し、残りの半分に対して同様の比較を繰り返します。この「中央との比較」と「範囲の絞り込み」を続け、ターゲット値が見つかるか、検索範囲が空になる(=配列にその値が存在しない)かのどちらかで処理が終了します。アイデア自体は簡単ですが、正しく実装するには

  2. C++プログラムの基本構造を徹底解説!Hello Worldで学ぶ入門

    C++プログラムの基本構造とは プログラミング言語を効率よく習得する最良の方法は、実際にプログラムを書いてみることです。初心者が最初に書くプログラムとして定番なのが、「Hello World」という文字列を画面に表示するだけのシンプルなプログラムです。ごく簡単な内容ですが、C++プログラムに必要な基本的な構成要素がすべて詰まっています。それでは、さっそくコードを見てみましょう。 #include<iostream> int main() {     std::cout << Hello World\n; } ここからは、このプログ