php - 滚模程序 php
问题描述
我在 IUPUI 上课,我收到了这些指示
- 在 NetBeans 中,在 htdocs\I210\Lab04 文件夹中创建一个名为 index.php 的新 PHP 网页。
- 将文档标题更改为“滚动六面模具结果的统计分析”;
在页面的最顶部,添加以下 PHP 代码块和注释。
<?php /* * Author: Your name * Date: Today’s date */ ?>
在正文部分中,在页面正文的开头创建一个 H2 标题,内容为“滚动六面骰子结果的统计分析”。
- 在 PHP 代码块中,创建六个变量来存储骰子每一面的频率。明智地选择变量名称。例如,您可以命名它们
$frequency1
,$frequency2
……</li> 要模拟掷骰子,请使用名为的内置 PHP 函数
rand($min, $max)
生成一个介于 1 和 6 之间的随机数,1 表示 Face 1,2 表示 Face 2,以此类推。以下语句生成 1 到 6 之间的随机数并将其存储在名为 的变量中$face
。$face = rand(1, 6);
使用条件结构(IF 或 SWITCH)来增加芯片发生的每一侧的频率。例如,如果 的值为
$face
1,则将 $frequence1 增加 1。- 使用循环结构(FOR、WHILE 或 DO ... WHILE)重复执行最后两步中的 PHP 语句 5000 次。
- 使用表格显示模具面及其在 5000 次滚动期间出现的频率。
在表格下方,添加一个刷新按钮。
<input type="submit" value="Refresh" onclick="window.location.reload()" />
添加 CSS 以使页面上的所有内容居中。
- 彻底测试您的页面。单击“刷新”按钮应生成一组新频率。注意:你的频率可能和我的不同。”
我不是要求有人为我做这项工作,因为我已经完成了大部分工作。我似乎无法弄清楚如何让我的代码循环 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>
解决方案
您可以使用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>";
推荐阅读
- basic-authentication - 具有基本身份验证的 Nginx Ingress 会中断预检请求
- reactjs - 在一个 React 组件中使用多个“useContext”
- asp.net - 具有多个域的 IIS URL 重写
- asp.net - 在 aspx 中的错误列后在剑道上传时引发错误消息
- reactjs - Firebase onCreate 向 auth.user 添加自定义声明
- spring-boot - Spring Cloud Kubernetes 不重新加载秘密更改
- javascript - 针对阵列中的所有内容?
- racket - 如何在 Dr. Racket 中使用 Latex/Tex 风格的键绑定?
- laravel - Is laravel seeding as hard as I see it or I'm stumbling with something that's not that complicated?
- flutter - 如何使用共享首选项保存布尔值