我想使用 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 秒的最大执行时间”
1 回答

四季花海
TA贡献1811条经验 获得超5个赞
使用 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 毫秒。
- 1 回答
- 0 关注
- 245 浏览
添加回答
举报
0/150
提交
取消