есть список из чисел 10,21,38
нужно просчитывать их выпадение по алгоритму
10 = 1
21 = 2
38 = 3
10 = 4
21 = 5
38 = 6
10 = 7
21 = 8
38 = 9
...
вопрос, как узнать какое число выпадет на рандомную итерацию ?
Этот топик читают: Гость
Ответов: 1528
Рейтинг: 57
|
|||
карма: 0 |
|
Ответов: 4630
Рейтинг: 749
|
|||
i mod 3, где i - номер итерации (2-ая колонка?). Если 0 - выпало число 3, иначе - то что возвратило. Не?
[offtop]или 3 - (i mod 3) - возвратит точно число (кажеться).[/offtop] |
|||
карма: 26 |
| ||
Голосовали: | hitman249 |
Ответов: 758
Рейтинг: 112
|
|||
Если "остаток от деления на 3" = 0 то "число" = 3
иначе "число" = "остаток от деления на 3" |
|||
карма: 1 |
| ||
Голосовали: | hitman249 |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-03 17:45:36 |
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
% - остаток от деления
|
|||
карма: 1 |
| ||
Голосовали: | hitman249 |
Ответов: 1528
Рейтинг: 57
|
|||
всем спасибо, выбран вариант от Ivann.
|
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
((($i - 1) % 3) + 1) * 10 + (($i - 1) % 3) ^ ((($i - 1) % 3) + 1)
|
|||
карма: 1 |
| ||
Голосовали: | hitman249 |
Ответов: 1528
Рейтинг: 57
|
|||
Ivann, $i = 12; fail
это не нужно, числа всегда разные нужно получать просто индекс массива |
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
hitman249,
<?php for($i = 1; $i < 100; $i++) echo $i.' --- '.((((($i - 1) % 3) + 1) * 10) + pow(($i - 1) % 3, (($i - 1) % 3) + 1)).'<br />'; ?> |
|||
карма: 1 |
| ||
Голосовали: | hitman249 |
Ответов: 1528
Рейтинг: 57
|
|||
Ivann, довольно интересно, хотел плюсануть но время ещё не прошло
сейчас достаточно <?php $i = 12; $in = array(10,21,38); echo (($i - 1) % count($in)); ?> |
|||
карма: 0 |
|
Ответов: 1528
Рейтинг: 57
|
|||
продолжу
есть 2 массива 1) [часы] (пример 1,2,3,4,12,23) 2) [минуты] (пример 00, 05, 10, 15, 45) есть текущее время есть массив "событий" (такой же "array(10,21,38);") события должны чередоваться на каждую минуту из массива максимально событий (count([часы]) * count([минуты])) Задача: текущее время = 12-05 как определить какое это событие по счёту? |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Мда уж......
Тут без математиков не обойтись |
|||
карма: 9 |
|
Ответов: 1528
Рейтинг: 57
|
|||
Galkov,
покажите молодым как сделать красиво, через формулу |
|||
карма: 0 |
|
Ответов: 8927
Рейтинг: 823
|
|||
карма: 19 |
| ||
файлы: 1 | code_31726.txt [2.1KB] [157] | ||
Голосовали: | hitman249 |
Ответов: 1528
Рейтинг: 57
|
|||
Леонид, хе-хе, вот такое же решение и я использовал, но оно показалось мне не серьёзным.
точнее я написал функцию которая отсчитывает по порядку возможные варианты и отдаёт высчитанное число этой формуле, которая в свою очередь и выдаёт номер ячейки. echo (($i - 1) % count($in)); |
|||
карма: 0 |
|