小编Seb*_*lin的帖子

PHP - 困难的数学计算

项目描述

该项目计算了马应该有多少食物,这是基于大量的变量.用户输入有关每匹马和首选饲料的信息.每种饲料都含有多种维生素和营养素.

1匹马使用多种饲料.

我们有什么

我们有特定马需要的每种营养素的最小值和最大值.

我们有一种或多种不同类型饲料的含量,每种饲料可能含有约20-30种不同的营养素和维生素.我们也有价格,并希望用它来省钱.

(计算仅适用于当时的一匹马)

我们用A,B和C来代表营养素.

马需要:(A,B,C)MIN(30,7,9)MAX(35,9,17)

Feed 1包含:(A,B,C)VALUES(16,2,3)
Feed 2包含:(A,B,C)VALUES(0,4,9)

一个有效的解决方案是2*Feed1和1*Feed2.

问题

我希望系统根据每种营养素的最小/最大值计算完美平衡,并保持尽可能低的价格.

工作方案

如果我首先计算每个饲料的最高可能量,则可以随机化,直到它看起来有效.然后,如果用户不完美,用户将能够更改金额.

<?php
function randomizerLoop(){
    foreach($feeds as $feed){
        $max['A'] = floor($horse_max['A']/$feed['A']);
        $max['B'] = floor($horse_max['B']/$feed['B']);
        $max['C'] = floor($horse_max['C']/$feed['C']);
        $maxRand = MIN($max['A'], $max['B'], $max['C']);

        $amounts[$feed['id']] = rand(0, $maxRand);
    }

    return $amounts;
}
?>
Run Code Online (Sandbox Code Playgroud)

此代码将继续尝试,直到它获得工作余额,而不是使用一些很酷的计算来找到第一次尝试的余额.

我只是想知道如何解决它rand().

更多信息

每个用户将能够添加无数的马匹,但只能计算当时的一匹马(目前).

还可以添加无数个馈送(由用户定义),每个馈送可以有20-30个变量.根据解决方案,这可能需要为每次自动计算限制Feed.

如果我们使用20个不同的提要,每个提要20-30个变量,以及我们在int中定义数量而不仅仅是布尔值时,会有很多组合.

php math

14
推荐指数
2
解决办法
397
查看次数

标签 统计

math ×1

php ×1