配列処理-発展4

問題

条件分岐とループを使用した複雑な処理を実装してください:

  • グローバル変数として:
    • int c = 10 でカテゴリ数を定義してください
    • int[] 型の配列 card をサイズ c で初期化してください
    • int 型の変数 complete = 0, count = 0, get を宣言してください
  • while (complete == 0) ループ内で:
    • ランダムな値を取得 で 0~9 のランダムな値を取得してください
    • 配列の対応する要素をインクリメント(card[get] += 1)してください
    • count++ で試行回数をカウントアップしてください
    • complete = 1 と初期化してください
    • 内側の for ループで配列の全要素をチェックし、0 の要素があれば complete = 0 に戻してください
    • すべての要素が 1 以上になれば、ループが終了します
  • ループ終了後、以下を console に出力してください:
    • 「分布は以下の通り」と出力
    • 各カテゴリについて「カードn は x です」と出力
    • 合計試行回数について「x枚で完了」と出力してください
ヒントを見る
  • random(最小値, 最大値): 指定範囲のランダムな値を取得
  • このアルゴリズムはクーポン問題(コレクター問題)の実装です
  • すべてのカテゴリが少なくとも1回以上出現するまで試行を繰り返します
  • ネストされた whilefor で複雑な制御フローを実装できます

実行例