Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Формула для распределение учеников
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Формула для распределение учеников

Страниц (1): [1]
 

1. pantela - 13 Января, 2018 - 14:35:13 - перейти к сообщению
Надо написать формулу для расчёта %.
Задача разбить количество учеников по классам исходя из % количество мест в классе.

Имеется количество учеников: $amount = 1400;

Имеется массив классов где:
procent - % распределения
class_name - название класса
prio - приоритет

% количество свободного места c, по которым надо расспределеить $amount.


Впервую очередь, считаеться % наивысшего класса т.е. Класс №З? т.е. у него procent "60":

Класс №З: 1400 * 60 / 100 = 840a

Остаток: 1400-840=560

Далее остаток считается по приоритету "prio" сначало 1, потом 2...:
- Класс №А
- Класс №Б
- Класс №Г
- Класс №Д

И под конец весь остаток в "Класс №В".
+
Может быть так что "Класс №В", вобще ничего не досталось бы, если 100% уже было-бы расспределенно.

Один уже решил: https://repl[dot]it/@AlanTuring/Sing[dot][dot][dot]ellishedCardinal

Хоть тяжко, но... + на хосте кричит на $GLOBALS["a"], как его заменить..?

Спс
2. Строитель - 15 Января, 2018 - 08:07:00 - перейти к сообщению
pantela пишет:
на хосте кричит на $GLOBALS["a"], как его заменить..?
Я не видел контекста его использования, но заменить можно на один из вариантов:
global $a;
use($a)
или передавать параметром.
3. pantela - 18 Января, 2018 - 12:01:55 - перейти к сообщению
Обновил ссылку
CODE (htmlphp):
скопировать код в буфер обмена
  1. https://repl.it/@AlanTuring/SingleEmbellishedCardinal
4. Строитель - 20 Января, 2018 - 03:04:42 - перейти к сообщению
pantela, не знаю, правильно ли я понял - вот мой пример:
Спойлер (Отобразить)
5. pantela - 23 Января, 2018 - 10:58:27 - перейти к сообщению
Так а причём тут остаток вобще? Он может быть только если сумма всех % не будет 100, а в данном случае: 60+10+10+10+5+5=100 Однако
А если, было бы 110%, тогда исходя из значения prio, значение расспределилось бы.

Всё очень просто имеется значение, её надо разбить по %.

 

Powered by ExBB FM 1.0 RC1