为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕妹3242003 2021-12-24 15:53:52
我想使用 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 毫秒。


查看完整回答
反对 回复 2021-12-24
  • 1 回答
  • 0 关注
  • 245 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号