在php中如何计算用于百分比问题的最佳数字
我想使用php为针对儿童的百分比问题随机生成“好数字”。数字1是百分比,数字2是总数。我一直试图这样做,但执行时间超过60秒。是否可以计算和生成漂亮的数字(在其中查找/检查是否为整数) 这是一个运行MYSQL和PHP的plesk服务器。我已经尝试检查了VisualBasic的组合数(有622个),需要0.4632853秒才能完成在php中如何计算用于百分比问题的最佳数字,php,math,Php,Math,我想使用php为针对儿童的百分比问题随机生成“好数字”。数字1是百分比,数字2是总数。我一直试图这样做,但执行时间超过60秒。是否可以计算和生成漂亮的数字(在其中查找/检查是否为整数) 这是一个运行MYSQL和PHP的plesk服务器。我已经尝试检查了VisualBasic的组合数(有622个),需要0.4632853秒才能完成 function genRandomNumber(){ return (rand(5, 200)); } function genRandomPerc
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);
这是因为while循环处于无限状态?您希望运行while循环多少次?有更好的方法来实现您想要实现的目标,而不是随机选取数字,直到找到匹配为止。您可以首先随机选择一个数字,创建一个百分比数组,当乘以该数字时,创建整数,然后从该数组中随机选择。is_int告诉您变量是否为int类型。这与询问浮点数字是否实际代表整数不同。10是int型,10.0是float型。然而,它们都代表数学意义上的整数。