10 / 12 / 2
Регистрация: 13.01.2010
Сообщений: 363
1

Генерация N случайных натуральных чисел в диапазоне [A;B], среднее арифметическое которых даст M

25.03.2014, 10:56. Показов 3410. Ответов 11
Метки нет (Все метки)

Собственно, сабж. M может быть как целым, так и вещественным. Волнует именно вопрос о том, как сделать, чтобы среднее арифметическое этих чисел было то, которое нужно нам.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2014, 10:56
Ответы с готовыми решениями:

Найти среднее арифметическое элементов массива случайных чисел в определенном диапазоне
подскажите пожалуйста, как найти среднее арифметическое элементов массива случайных чисел в...

Вывести на экран сумму и среднее арифметическое N случайных чисел, заданных в диапазоне от А до В
Написать программу, выводящую на экран сумму и среднее арифметическое N случайных чисел, заданных в...

Найти среднее арифметическое таких чисел в диапазоне [a; b], у которых последняя цифра равна 7
Вводятся числа a и b. Найти среднее арифметическое таких чисел в диапазоне , у которых последняя...

Найти среднее арифметическое таких чисел в диапазоне [a; b], у которых последняя цифра равна 7 (цикл for)
Вводятся числа a и b. Найти среднее арифметическое таких чисел в диапазоне , у которых последняя...

11
7481 / 4145 / 474
Регистрация: 25.08.2012
Сообщений: 11,527
Записей в блоге: 11
25.03.2014, 11:02 2
Встроенная функция генерирует равномерно распределенную СВ x в диапазоне (0,1).
Если воспользоваться известными свойствами Mx [M(cx) = cMx], то ясно, чтобы получить заданное
матожидание нужно просто значение СВ после каждого обращения умножить на const.
Следует иметь ввиду, что диапазон СВ при этом будет (0,const).
Это относится и к ряду экспериментальных данных.
0
829 / 637 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
25.03.2014, 23:27 3
Цитата Сообщение от OldFedor Посмотреть сообщение
Если воспользоваться известными свойствами Mx [M(cx) = cMx]
Матожидание - это не среднее для сгенерированных чисел.
Берём крайний случай n=1 и получается нулевая вероятность получить требуемое среднее.

Цитата Сообщение от R@Z()r Посмотреть сообщение
Генерация N случайных натуральных чисел в диапазоне [A;B]
Целых или вещественных?
Если вещественных, то нагенерировали n любых чисел, посчитали сумму s и все числа умножили на m/s.
0
291 / 263 / 47
Регистрация: 09.04.2013
Сообщений: 997
26.03.2014, 09:13 4
Цитата Сообщение от Qwertiy Посмотреть сообщение
Если вещественных, то нагенерировали n любых чисел, посчитали сумму s и все числа умножили на m/s.
Тогда не гарантируется что числа принадлежат отрезку [A;B]
0
7481 / 4145 / 474
Регистрация: 25.08.2012
Сообщений: 11,527
Записей в блоге: 11
26.03.2014, 09:18 5
Цитата Сообщение от Qwertiy Посмотреть сообщение
Матожидание - это не среднее для сгенерированных чисел.
Это мне известно.
Цитата Сообщение от Qwertiy Посмотреть сообщение
Берём крайний случай
Да какой угодно.
Я описал обычные линейные преобразования СВ (см. Тихонов. Статистическая радиотехника)
0
291 / 263 / 47
Регистрация: 09.04.2013
Сообщений: 997
26.03.2014, 09:55 6
Есть такая идея
нужно последовательность чисел в диапазоне [0____#0____1]
Заменить на числа в диапазоне [A__#1________B]
#0, #1 это среднее арифметическое для чисел в заданном диапазоне.
Для действительных чисел все проще - генерируем числа в диапазоне (0..1), и каждое число из диапазона (0..#0) переводим в (A..#1), а числа из (#0..1) в (#1..B)

Добавлено через 7 минут
Блин, числа же у нас натуральные..
0
7481 / 4145 / 474
Регистрация: 25.08.2012
Сообщений: 11,527
Записей в блоге: 11
26.03.2014, 10:00 7
' - оценка
Mx' - диапазон (a, b)
M(cx)' = cMx' - диапазон (ca, cb)
M(x+c)' = Mx' + c - диапазон (a + c, b + c)
0
291 / 263 / 47
Регистрация: 09.04.2013
Сообщений: 997
26.03.2014, 10:13 8
Цитата Сообщение от OldFedor Посмотреть сообщение
' - оценка
Mx' - диапазон (a, b)
M(cx)' = cMx' - диапазон (ca, cb)
M(x+c)' = Mx' + c - диапазон (a + c, b + c)
Я конечно за математику, но в терминах разбираешься только тогда когда голова все еще ими забита.
Было бы полезно после описания математических выкладок приводить алгоритм на понятном русском языке.
К тому же числа у нас натуральные, и нужно гарантировать чтобы мат ожидание равнялось заданному, поэтому считаю предложенный подход не очень подходящим
0
829 / 637 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
26.03.2014, 10:20 9
Цитата Сообщение от R@Z()r Посмотреть сообщение
Генерация N случайных натуральных чисел в диапазоне [A;B], среднее арифметическое которых даст M
Погугли "Получить из целых чисел заданное среднее" вместе с кавычками.
Помню же, что такое уже где-то было

Цитата Сообщение от Qwertiy Посмотреть сообщение
Целых или вещественных?
Тьфу.. Что-то я невнимательно вопрос прочитал.

Добавлено через 5 минут
Цитата Сообщение от wingblack Посмотреть сообщение
нужно гарантировать чтобы мат ожидание равнялось заданному
Всё-таки матожидание или среднее у сгенерированной последовательности?
Представим такую ситуацию: генератор равновероятно выдаёт целое число от 1 до 5 - матожидание будет равно 3. Но если мы будем таким способом генерировать последовательность из 2 чисел, то вероятность получения среднего 3 составит 20%.
0
291 / 263 / 47
Регистрация: 09.04.2013
Сообщений: 997
26.03.2014, 10:59 10
Цитата Сообщение от Qwertiy Посмотреть сообщение
Всё-таки матожидание или среднее у сгенерированной последовательности?
Я понял претензию. Если бы мы могли описать распределение нужно случайной величины, то мат ожидание равнялось бы среднему арифметическому.
А так да, правильнее оставаться в рамках более простых вещей и говорить о среднем арифметическом
Цитата Сообщение от Qwertiy Посмотреть сообщение
Погугли "Получить из целых чисел заданное среднее" вместе с кавычками.
Вот лично у меня гуглится только один топик на другом форуме, что не есть гуд.

Другая идея:
поскольку у нас натуральные числа, то их сумма должна равняться S = M * N и быть тоже натуральным числом.
Не знаю как обойтись без массива, но с массивом могу предложить такой вот тупой алгоритм:
нужно сделать такую последовательность чисел, чтобы их сумма равнялась S
сначала записываем во все ячейки массива число А, теперь нужно дополнить массив на K = S - (A*N).
берем число L = K / N (округлить до большего целого).
к каждому из чисел последовательности прибавляем произвольное число из диапазона [0..L] (если в результате получится число меньше числа B) и вычитаем это произвольное число из K если L<K, в противном случае если K=0 то останавливаемся, если K>0 - новый заход с новым L.
По окончанию алгоритма перемешать массив.
0
829 / 637 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
26.03.2014, 11:53 11
Цитата Сообщение от wingblack Посмотреть сообщение
Вот лично у меня гуглится только один топик на другом форуме, что не есть гуд.
... в котором обсуждается именно этот вопрос и приводятся решения.
Здесь же правилами запрещено давать ссылки на другие форумы, так что запрос, дающий ровно один результат, я назвал намеренно.
0
291 / 263 / 47
Регистрация: 09.04.2013
Сообщений: 997
27.03.2014, 00:34 12
Вообще да, стоит только перейти от среднего арифметическому к сумме всех элементов, как поиск решения скатывается к переливанию воды в стаканах
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2014, 00:34

Генерация случайных чисел в диапазоне 0 - 1
Привет. Прошу помочь с рандомными числами. Нужны числа от 0 или 1

Генерация случайных чисел в заданном диапазоне.
Здесь сказано Почему?

Генерация случайных вещественных чисел в диапазоне 0..1
Какнить можно заставить rand() работать по аналогии в Паскале, т.е. выдавать числа от 0 до 1...

Генерация случайных чисел в заданном диапазоне
Требуется создать код на языке VB.NeT для создание рандомных чисел, с минимальным и максимальным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.