Глубокоуважаемые пидоры и пидорессы!
Мозг кипит, глаза плывут, тошно и грустно.
Стоит у меня задача получить ряд случайных чисел, из которых можно получить необходимое известное среднее арифметическое.
Я пошёл тупым путём. Взял число, прикинул от него нужный диапазон, +-5, получившийся интервал засунул в генератор случайных чисел, установив в настройках, что чисел должно быть нужное количество, например 10, потом выданные мне десять чисел засунул в онлайн-калькулятор среднего арифметического и так повторял, пока среднее арифметическое не совпало с первым числом. Заняло это тупое кликанье минут 40. А подобных результатов мне нужно более десятка.
Я пробовал найти подобные формулы, генераторы, но получилось найти подобное только на одном из форумов посвящённому экселю, но там надо переписывать формулы расчётов под необходимое число случайных цифр, что при моём знании того же экселя всё сломало.
Возможно, мой интеллект крайне низок для такой задачи, поэтому обращаюсь к вам.
Задача кратко на основе примера: Есть среднее арифметическое 10. Есть допустимые интервалы значений от 8 до 12. Нужно сгенерировать двадцать чисел, среднее арифметическое из которых будет равным 10.
Мозг кипит, глаза плывут, тошно и грустно.
Стоит у меня задача получить ряд случайных чисел, из которых можно получить необходимое известное среднее арифметическое.
Я пошёл тупым путём. Взял число, прикинул от него нужный диапазон, +-5, получившийся интервал засунул в генератор случайных чисел, установив в настройках, что чисел должно быть нужное количество, например 10, потом выданные мне десять чисел засунул в онлайн-калькулятор среднего арифметического и так повторял, пока среднее арифметическое не совпало с первым числом. Заняло это тупое кликанье минут 40. А подобных результатов мне нужно более десятка.
Я пробовал найти подобные формулы, генераторы, но получилось найти подобное только на одном из форумов посвящённому экселю, но там надо переписывать формулы расчётов под необходимое число случайных цифр, что при моём знании того же экселя всё сломало.
Возможно, мой интеллект крайне низок для такой задачи, поэтому обращаюсь к вам.
Задача кратко на основе примера: Есть среднее арифметическое 10. Есть допустимые интервалы значений от 8 до 12. Нужно сгенерировать двадцать чисел, среднее арифметическое из которых будет равным 10.
Подробнее
КУПОН НА 1 помощь
пидоры помогите,реактор помоги,генератор случайных чисел,среднее арифметическое
Еще на тему
Представь эту сумму как отрезок от 0 до X и дроби ее случайным образом на n участков. Длина этих участков и будет твоими числами
Так проще справиться с нижними и верхними границами числа
https://www.w3schools.com/code/tryit.asp?filename=GLCK4X0YXO2C
https://www.w3schools.com/code/tryit.asp?filename=GLCKE3VUF2EL
[11,11,10,8], [12, 9, 9]
если ты даешь мне пример из моего комента, что это за список из 4 чисел?
поднять один елемент на 3 единицы
поднять три елемента на 1 единицу каждый.
Да, мой алгоритм не покрывает
Больше времени на запросы рандомов в интернете тратить не комильфо
И то минуту из трех я пытался понять что перепутал порядок аргументов в редьюсе, жс вижу раз в год
Ты же просто берешь и 10 тысяч раз рандомно подбираешь цыфры. Ладно тебе не жалко вычислительного ресурса. Но что если он за все 10к итераций не сможет подобрать комбинацию?
программа обосрется?
О боже мой, totktonada придется нажать кнопку дважды. Да как так то?!
"ну я насрал вам код потому что я только минуту над этим думал и вот смог только это и смог родить"
Мать, ну сядь, подумай, человек ведь попросил совета, алгоритма внятного.
Ну наплевал ты ебаторию на 10000 итераций, а теперь расказываешь что это хорошо потому ты жсом и не пользуешься?
Ну так поди ты нахуй тогда, или дай осмысленый ответ или нехер отмазываться что ты вобще то умный, но сегодня взял выходной
break видишь, что он делает знаешь? На приведенных ОПом значениях алгоритм почти гарантированно укладывается в ~50 циклов. 10к итераций поставлено как фейлсейф от зависания на неподходящих к алгоритму инпутах (большой разброс прежде всего, до +- 1к этого хватает).
Конкретную задачу алгоритм решает быстро (задача ОПа занимает до 0,2мс, 100 элементов с +-100 разбросом занимает до 30мс). Даже однопоточный сраный js выдает 5к запросов в секунду на конкретной задаче. А ОП вообще вручную потом что-то делает с этим массивом, ему что 0.1мс, что 500мс погоды не сделают, и качество кода ему тоже по барабану, лишь бы задачу решал. А ты пиши дальше красивый код ради красивого кода.
Ну и да, мой алгоритм при этом выдает корректный результат :3
Он попросил алгоритм, логику как это можно реализовать.
Твой алгоритм по сути это посадить обезьяну которая будет нажимать по кнопке рандома, пока случайным образом не получит подходящий результат.
Как это алгоритмизировать? Берешь эксель, 40 ячеек с 1, 40 ячеек с 0. Перемешиваешь экзелевской функцией, делишь столбик по 4 клетки, суммируешь. Ебать я мозг.
- Берешь список состоящий из нужного среднего числа длинной заданой в условии.
[10, 10, 10, 10, 10, 10, 10]
- Генеришь список случайных чисел половины длинны (в меньшую сторону - 7/2 = 3)
[8,11,9]
- Преображаешь его в список разницы между СА и каждым элементом (10 - n)
[2, -1, 9]
- Теперь сука внимательно:
первый элемент разничного списка добавляешь к первому элементу первичного списка. И его же отнимаешь от последнего.
Второй елемент разничного добавляешь ко второму элементу первичного и отнимаешь от предпоследнего элемента первичного. И так ты идешь с двух концов и встречаешься посрединке.
-И в финале мешаешь первичный список чтобы избавится от симметрии