Opis projektuPHP - Trudne obliczenie matematyczne
Projekt oblicza ile żywności koń powinien mieć ten opiera się na ogromnej liczby zmiennych. Użytkownik wprowadza informacje o każdym koniu i preferowanych kanałach. Każda karma ma wiele rodzajów witamin i składników odżywczych.
1 koń wykorzystuje wiele rodzajów pasz.
Co mamy
Mamy wartości min i max dla każdego składnika odżywczego, że specyficzne potrzeby konia.
Mamy zawartość dla jednego lub więcej różnych rodzajów paszy, może to być około 20-30 różnych składników odżywczych i witamin na paszę. Mamy również cenę i chcemy tego użyć, aby zaoszczędzić pieniądze.
(Obliczanie jest tylko dla jednego konia w czasie)
przykładu
używamy, B i C stanowią składniki odżywcze.
koń wymaga: (A, B, C) min (30,7,9) MAX (35,9,17)
Kanał 1 zawiera: (a, b, c) wartości (16,2 , 3)
Feed 2 zawiera: (A, B, C) WARTOŚCI (0,4,9)
Rozwiązaniem roboczym będzie 2 * Feed1 i 1 * Feed2.
Problem
Chcę system obliczyć idealną równowagę w oparciu o wartości max/min dla każdego składnika odżywczego i nadal utrzymać ceny na możliwie najniższym poziomie.
rozwiązanie
Gdybym najpierw obliczyć najwyższą możliwą kwotę dla każdego kanału, będzie to możliwe losowo aż wydaje się działać roboczych. A następnie użytkownik będzie mógł zmienić kwoty, jeśli nie jest doskonały.
<?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;
}
?>
Ten kod będzie próbował, aż uzyska równowagę roboczą, zamiast korzystać z kilku fajnych obliczeń, aby znaleźć saldo za pierwszym razem.
Po prostu potrzebuję pomysłu, jak go rozwiązać bez numeru rand()
.
Więcej informacji
Każdy użytkownik będzie mógł dodać nieskończoną liczbę koni, ale będzie w stanie obliczyć za jednego konia w czasie (na razie).
Możliwe będzie również dodawanie nieskończonej liczby kanałów (zdefiniowanych przez użytkownika), a każdy kanał może mieć 20-30 zmiennych. W zależności od rozwiązania prawdopodobnie wymagałoby to limitu źródeł dla każdego automatycznego obliczenia.
Będzie wiele kombinacji, jeśli użyjemy 20 różnych kanałów, 20-30 zmiennych dla każdego kanału, a także wtedy, gdy zdefiniujemy ilość w int zamiast samych wartości logicznych.
Co z wymaganiami czasowymi i liczbą koni? Czy jesteś całkowicie zaniepokojony dokładnością lub czy prędkość jest również problemem? – varocarbas
* [...] i preferowane kanały * Czy chcesz przełączyć preferowane kanały do obliczeń, czy chcesz je tak tanie, jak to tylko możliwe? Co powinien zrobić, gdy się nie zgadza? Oznacza to, że jeśli kupujesz karmę, masz za dużo lub za mało składników odżywczych. – Rizier123
@varocarbas zarówno dokładność jak i szybkość są ważne, ale jeśli widzę tylko niektóre rozwiązania, mogę zoptymalizować je dla systemu. – SebHallin