@Gryner Большое спасибо за помощь
в 10 потоков +- равномерно распределить 1,2,3
-
Вот думаю как +- равномерно распределить в неизвестное количество потоков (например 10) три значения списка ?
Идея такая.
[[STR]] = "id1|id2|id3" [[MASS]] = [[STR]].split('|') // в этом списке будет список полученный из базы [[POTOK_NUM]] = thread_number() [[KOLVO]] = parseInt(3) // <== подскажите плз как получить кол-во значений в массиве? if ( [[POTOK_NUM]] > [[KOLVO]]) { [[AA]] = [[POTOK_NUM]]/[[KOLVO]] [[AA]] = Math.floor([[AA]]) [[NUM]] = [[POTOK_NUM]] - [[AA]]*[[KOLVO]] if ( [[NUM]] == 0 ) { [[NUM]] = [[KOLVO]]} } else { [[NUM]] = [[POTOK_NUM]] } [[ELEMENT]] = [[NUM]]-1; [[ZNACHENIE]] = [[MASS]][ [[ELEMENT]] ] log('итог' + [[NUM]] + '=' + [[ELEMENT]] + '=' + [[ZNACHENIE]])Подскажите плз как получить кол-во значений в массиве [[MASS]]?
-
@GameBot said in в 10 потоков +- равномерно распределить 1,2,3:
Присваиваем значение переменной в зависимости от остатка при делении на 3
не понял. у меня же так и сделано.
а понял, мое творчество не проверяли просто.У меня пока подвисли вопросы
- Подскажите плз как получить кол-во значений в массиве [[MASS]]? кодом, не кубиком
- как это можно слегка совсем чуть отрандомить? )
-
@GameBot said in в 10 потоков +- равномерно распределить 1,2,3:
@kuzkuz said in в 10 потоков +- равномерно распределить 1,2,3:
странный у нас разговор...
забыл ссылку прикрепить
testувидел, спасибо. не масштабируемо.
значений в списке может быть 1,2,3,4,5,6,7,
потоков может быть от 1 до 50 -
не могу придумать как внести "легкий" рандом. а то я что то очень ровно распределил ( в первом посте).
думаю ввести ещё одну переменную, давать ей рандом от 1 до 100.
если она будет больше 80, то вносить какие то правки в раздатчик... как то так наверное будет верно. -
Вот так тоже работает для любого списка
https://community.bablosoft.com/topic/12881/в-10-потоков-равномерно-распределить-1-2-3
