猿问

如何计算在 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 秒的最大执行时间”


慕妹3242003
浏览 246回答 1
1回答

四季花海

使用 2 个循环测试所有组合更容易。要比较浮点值必须使用 eps。<?php$percentStart = 5;$percentEnd = 75;$numberStart = 5;$numberEnd = 200;$eps = 1.E-9;$results=[];for($percent = $percentStart; $percent <= $percentEnd; $percent++){&nbsp; for($number = $numberStart; $number <= $numberEnd; $number++){&nbsp; &nbsp; $percentFromNumber = $percent * $number/100;&nbsp; &nbsp; if(fmod($percentFromNumber,1) < $eps){&nbsp; &nbsp; &nbsp; $results[] = [&nbsp; &nbsp; &nbsp; &nbsp; 'percent' => $percent,&nbsp; &nbsp; &nbsp; &nbsp; 'number'&nbsp; => $number,&nbsp; &nbsp; &nbsp; &nbsp; '%number' => $percentFromNumber&nbsp; &nbsp; &nbsp; ];&nbsp; &nbsp; }&nbsp; }}var_dump($results);使用此代码检查组合数(有 620 个!),完成需要 3 毫秒。
随时随地看视频慕课网APP
我要回答