在php中如何计算用于百分比问题的最佳数字

在php中如何计算用于百分比问题的最佳数字,php,math,Php,Math,我想使用php为针对儿童的百分比问题随机生成“好数字”。数字1是百分比,数字2是总数。我一直试图这样做,但执行时间超过60秒。是否可以计算和生成漂亮的数字(在其中查找/检查是否为整数) 这是一个运行MYSQL和PHP的plesk服务器。我已经尝试检查了VisualBasic的组合数(有622个),需要0.4632853秒才能完成 function genRandomNumber(){ return (rand(5, 200)); } function genRandomPerc

我想使用php为针对儿童的百分比问题随机生成“好数字”。数字1是百分比,数字2是总数。我一直试图这样做,但执行时间超过60秒。是否可以计算和生成漂亮的数字(在其中查找/检查是否为整数)

这是一个运行MYSQL和PHP的plesk服务器。我已经尝试检查了VisualBasic的组合数(有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);

这是因为while循环处于无限状态?您希望运行while循环多少次?有更好的方法来实现您想要实现的目标,而不是随机选取数字,直到找到匹配为止。您可以首先随机选择一个数字,创建一个百分比数组,当乘以该数字时,创建整数,然后从该数组中随机选择。is_int告诉您变量是否为int类型。这与询问浮点数字是否实际代表整数不同。10是int型,10.0是float型。然而,它们都代表数学意义上的整数。