php - 如何计算最佳数字以用于 php 中的百分比问题
问题描述
我想使用 php 为针对儿童的百分比问题随机生成“好数字”。数字 1 是百分比,数字 2 是总数。我一直在尝试这样做,但执行时间超过 60 秒。是否可以计算和生成漂亮的数字(它在哪里找到/检查是否是整数)?
这适用于运行 MYSQL 和 PHP 的 plesk 服务器。我试过检查 Visual Basic 组合的数量(有 622 个),完成需要 0.4632853 秒。
function genRandomNumber(){
return (rand(5, 200));
}
function genRandomPercent(){
return (rand(5, 75));
}
$number1 = genRandomPercent();
$number2 = genRandomNumber();
if (is_int(($number1/100)*$number2)==false){
while (is_int(($number1/100)*$number2)==false) {
$number1 = genRandomPercent();
$number2 = genRandomNumber();
}
}
我希望最终输出具有 number1 和 number2 ,其中 number2 的 number1% 是一个整数。例如,number1 = 10 和 number2 = 60,所以 60 的 10% 是 6。相反,我收到一条错误消息“PHP 致命错误:超过 60 秒的最大执行时间”
解决方案
使用 2 个循环测试所有组合更容易。要比较浮点值,必须使用 eps。
<?php
$percentStart = 5;
$percentEnd = 75;
$numberStart = 5;
$numberEnd = 200;
$eps = 1.E-9;
$results=[];
for($percent = $percentStart; $percent <= $percentEnd; $percent++){
for($number = $numberStart; $number <= $numberEnd; $number++){
$percentFromNumber = $percent * $number/100;
if(fmod($percentFromNumber,1) < $eps){
$results[] = [
'percent' => $percent,
'number' => $number,
'%number' => $percentFromNumber
];
}
}
}
var_dump($results);
使用此代码检查组合的数量(有 620 个!),需要 3 毫秒秒才能完成。
推荐阅读
- c# - 创建我的模型 Jobs 的 DropDownList 并在 CreateEmployeesViewModel 中使用它
- tensorflow - 如何设置 Keras 层以在返回元组中包含“无”
- python - Python Dict:如何从 dicts 中获取有序的差异集?
- .net - 在 aws 中实现应用程序负载均衡器后,.net 应用程序未在 8080 端口上运行
- mysql - 错误代码:1054 'where 子句'中的未知列'billId'
- tensorflow - 如何为多维数组创建 conv1d
- android - Ejabberd 和 Conversations (Android) 上的 HTTP 可恢复下载
- c# - Unity C# 脚本中的这个变量是什么?
- uwp - 单击UWP应用右上角的关闭图标时是否可以弹出我的对话框?
- machine-learning - 线性回归的八度梯度下降