首页 > 解决方案 > 滚模程序 php

问题描述

我在 IUPUI 上课,我收到了这些指示

  1. 在 NetBeans 中,在 htdocs\I210\Lab04 文件夹中创建一个名为 index.php 的新 PHP 网页。
  2. 将文档标题更改为“滚动六面模具结果的统计分析”;
  3. 在页面的最顶部,添加以下 PHP 代码块和注释。

    <?php
    /*
     * Author: Your name
     * Date: Today’s date
     */
    ?>
    
  4. 在正文部分中,在页面正文的开头创建一个 H2 标题,内容为“滚动六面骰子结果的统计分析”。

  5. 在 PHP 代码块中,创建六个变量来存储骰子每一面的频率。明智地选择变量名称。例如,您可以命名它们$frequency1$frequency2……</li>
  6. 要模拟掷骰子,请使用名为的内置 PHP 函数rand($min, $max)生成一个介于 1 和 6 之间的随机数,1 表示 Face 1,2 表示 Face 2,以此类推。以下语句生成 1 到 6 之间的随机数并将其存储在名为 的变量中$face$face = rand(1, 6);

  7. 使用条件结构(IF 或 SWITCH)来增加芯片发生的每一侧的频率。例如,如果 的值为$face1,则将 $frequence1 增加 1。

  8. 使用循环结构(FOR、WHILE 或 DO ... WHILE)重复执行最后两步中的 PHP 语句 5000 次。
  9. 使用表格显示模具面及其在 5000 次滚动期间出现的频率。
  10. 在表格下方,添加一个刷新按钮。

    <input type="submit" value="Refresh" onclick="window.location.reload()" />
    
  11. 添加 CSS 以使页面上的所有内容居中。

  12. 彻底测试您的页面。单击“刷新”按钮应生成一组新频率。注意:你的频率可能和我的不同。”

我不是要求有人为我做这项工作,因为我已经完成了大部分工作。我似乎无法弄清楚如何让我的代码循环 5000 次。这是我目前的代码。

<!DOCTYPE html>
<html>
    <head>
        <title>Statistical analysis of results from rolling a six‐sided die</title>
    </head>
    <body>
        <h2>Statistical analysis of results from rolling a six‐sided die</h2>
        <?php
        $frequency1=0;
        $frequency2=0;
        $frequency3=0;
        $frequency4=0;
        $frequency5=0;
        $frequency6=0;
        $face = rand(1, 6);

if ($face==1)
{
++$frequency1;
}
else if ($face==2) {
    ++$frequency2;
}
else if ($face==3) {
    ++$frequency3;
}else if ($face==4) {
    ++$frequency4;
}else if ($face==5) {
    ++$frequency5;
}else if ($face==6) {
    ++$frequency6;
}
 echo "<table>
            <tr>
                <th>Face</th>
                <th>Frequency</th>
            </tr>";
            $face_num=6;
            $face_count=1; 
            while ($face_count<=$face_num) {
                    $frequency = ${'frequency' . $face_count};
                echo "<tr>
                        <td> $face_count </td>
                        <td> $frequency </td>
                     </tr>";

                $face_count++;
                }
            ?>
        </table>
        <input type="submit" value="Refresh" onclick="window.location.reload()" />  
    </body>
</html>

标签: php

解决方案


您可以使用for()循环执行代码 5000 次。

$frequency = [0, 0, 0, 0, 0, 0];

for($i = 1; $i <= 5000; $i++):
    $face = rand(0, 5); // index's start at 0
    ++$frequency[$face];
endfor;

for($i = 0; $i <= count($frequency) -1; $i++):
    $n = $i +1;
    echo "Frequency {$n} is equal to {$frequency[$i]}";
endfor;

为了可读性,我添加了数组的使用,以便将来更容易管理。

运行此代码 10 次(不是 5000 次)会得到如下结果:

Frequency 1 is equal to 1
Frequency 2 is equal to 3
Frequency 3 is equal to 1
Frequency 4 is equal to 3
Frequency 5 is equal to 1
Frequency 6 is equal to 1

注意:您需要将其实现到您自己的视图中。

下面是一个视图示例:

$frequency = [0, 0, 0, 0, 0, 0];

echo "<table>";

for($i = 1; $i <= 10; $i++):
    $face = rand(0, 5);
    ++$frequency[$face];
    echo "<tr>";
    echo "<th>";
    echo "Face";
    echo "</th>";
    echo "<th>";
    echo "Frequency";
    echo "</th>";
    echo "</tr>";
    echo "<tr>";
    echo "<th>";
    echo "{$face}";
    echo "</th>";
    echo "<th>";
    echo "{$frequency[$face]}";
    echo "</th>";
    echo "</tr>";
endfor;

echo "</table>";

例子


推荐阅读