忍者CODE

ログイン

2
サイコロを振ろう

PHPの問題

PHP

完了にする!
問題
8面ダイスを1000回振って各出目の確率を画面に表示しよう
(割り切れない場合は小数第2位を四捨五入)
期待する画面
1: 15.6%
2: 14.0%
3: 12.4%
4: 10.8%
5: 12.2%
6: 11.0%
7: 12.1%
8: 11.9%
※実行する度に変わります
ログインして解答を見る
コードのアイコン

解答ソースコード

              define('DICE_MIN', 1);
define('DICE_MAX', 8);
define('DICE_TRY', 1000);
$list = [];
// (a)サイコロの出目を初期化する
for ($i = DICE_MIN; $i <= DICE_MAX; $i++) {
    $list[$i] = 0;
}
// (b)サイコロを振り出目を記録する
for ($i = 1; $i <= DICE_TRY; $i++) {
    $r = rand(DICE_MIN, DICE_MAX);
    $list[$r]++;
}
// (c)サイコロの出目の確率を計算する
foreach ($list as $key => $val) {
    $a = round($val / DICE_TRY * 100, 2);
    $v = sprintf("%.1f", $a);
    echo "{$key}: {$v}%<br>";
}
// (d)おまけ
print_r($list);
¥PHP¥
            
答えのアイコン

解説

defineは定数を定義する機能だ。
プログラム中に仕様に使う数値や文字が現れると後からソースコードを見直したときに混乱するぞ。
マジックナンバーは定数化することにより保守性が高まる。
チーム開発では必須だ。

まず(a)でサイコロの出目を管理する配列を初期化している。
ループの開始値と終了値に定数を使うことによって無理なく初期化できている。

次に(b)において定数に定義した試行回数の数だけサイコロを振っている。
rand関数は引数の範囲内の乱数を返す。
乱数とはランダムな値のことだ。

最後に(c)で各出目の平均値を計算して画面に出力している。
roundは四捨五入、sprintfは文字列を整形する関数だ。

listがどのようになっているか理解できなければ(d)のおまけを実行してほしい。
配列を展開して視覚的に確認することができる。
print_rは配列のデバッグに使えるので覚えておこう。
twitterのアイコン
活動記録をTweetする
1.PHPについての説明と表示
続きの動画を見たい方は公式LINEから「PHP」と送信すると動画が見れます。

甲賀

なら実務レベルで使えるスキルを
体系的に学ぶことが可能です

Web制作学習は、決して楽ではありませんが
「正しい方向で」「コツコツ」と続ければ、
必ずスキルアップする事が可能です。

甲賀では、挫折せずに学習を継続するための
カリキュラム・サポート体制をご用意しています。

↓↓↓↓

ステップバイステップで
着実にスキルが身につくカリキュラム

  • step 01
    初心者でもよく分かる!
    Web制作の基礎の基礎
    • 1.知っておこうWeb制作に関する基礎知識の話

    • 2.HTMLの書き方や役割を基礎から学ぶマークアップ入門

    • 3.CSSで挫折しない為の基礎学習【超重要プロパティ】

    • 4.基礎を終えたらHTMLコーディングを鍛えよう(デザインから)

    • 5.初心者向けHTMLコーディング完全解説(STEP1総まとめ)

  • step 02
    真似して覚えるWeb制作
    (デザイン〜プログラミングまで)
    • 1.属性ってなに?などなどHTML,CSSの深堀り編

    • 2.デザイナーから直接学ぶ猫ちゃんサイトのデザイン解説

    • 3.鎧模写-YOROIMOSYA【銅の鎧】

    • 4.JavaScriptで学ぶプログラミングの基本のきほん【16項目】

  • step 03
    動きをつけたり、効率化!
    脱初心者を目指すためのスキルを学ぼう
    • 1.jQueryの基本的な使い方から応用まで【プラグイン解説あり】

    • 2.Web制作でCSSを簡単に書くためのSASS入門【小技あり】

    • 3.現場で使うCSS設計の考え方参考サイトを元に解説

    • 4.生のJavaScriptだけで英単語アプリを作ろう(音声読み上げ付き)

  • step 04
    ここまでくれば中級者!
    ちょこっと応用編のWeb制作
    • 1.JavaScriptの屋敷【鳳凰の間】

    • 2.JavaScriptで作るLINE風チャットボット

    • 3.コマンドラインとアプリ操作を同時に学べるGit【15選】

    • 4.EJSを使いコーディング力を中級者まで引き上げる

  • step 05
    実務で必須の制作スキル
    WordPressについて学ぶ
    • 1.鎧模写-YOROIMOSYA【銀の鎧】

    • 2.PHPを基礎から学びたい人向け14項目から学ぶ【入門】

    • 3.PHPで簡易的な掲示板を作ってみよう【コーディングあり】

    • 4.甘えを吹き飛ばす!WordPress開発

    • 5.WordPressで¥400,000の案件を徹底解説!

    • 6.WordPress有料テーマSnow Monkeyの解体書

甲賀を詳しく見る

プログラミングスキルが
一気に上がる!
有料級の解説動画19本
を今なら無料でGETできる!

忍者CODEの公式LINE登録後
LINE内にあるURLよりご覧になれます

  • プログラミング本気で学習してる方
  • もちろん完全無料で且つ手続き不要
  • 将来プログラミングで稼ぎたい方
  • 動画解説で真剣に学びたい方
スキルアップ動画をGET