1 / 1 / 1
Регистрация: 14.06.2017
Сообщений: 46
|
|
1 | |
Генерация случайных дробных чисел09.08.2017, 14:47. Просмотров 2985. Ответов 18
Метки нет Все метки)
(
0
|
|
09.08.2017, 14:47 | |
Генерация случайных чисел в двумерном массиве |
|
Форумчанин
![]() ![]() 8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
|
||||||
09.08.2017, 15:02 | 2 | |||||
1
|
1 / 1 / 1
Регистрация: 14.06.2017
Сообщений: 46
|
|
09.08.2017, 15:07 [ТС] | 3 |
MrGluck, Можно на чистом с
0
|
1 / 1 / 1
Регистрация: 14.06.2017
Сообщений: 46
|
|
09.08.2017, 15:14 [ТС] | 5 |
Так ты сможешь переделать?
0
|
Модератор
![]() ![]() ![]() ![]() 10877 / 6768 / 1619
Регистрация: 25.07.2009
Сообщений: 12,484
|
||||||
09.08.2017, 15:26 | 6 | |||||
0
|
735 / 540 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
|
|
09.08.2017, 15:29 | 7 |
0
|
|
09.08.2017, 15:42
#8
|
1
|
1 / 1 / 1
Регистрация: 14.06.2017
Сообщений: 46
|
|
09.08.2017, 15:50 [ТС] | 9 |
Добавлено через 50 секунд
числа одни и те же, а надо чтоб при каждом запуску программы числа были случайными
0
|
1 / 1 / 1
Регистрация: 14.06.2017
Сообщений: 46
|
|
09.08.2017, 15:56 [ТС] | 11 |
0
|
Модератор
![]() ![]() ![]() ![]() 10877 / 6768 / 1619
Регистрация: 25.07.2009
Сообщений: 12,484
|
||||||
09.08.2017, 15:56 | 12 | |||||
![]() Решение
Код
[andrew Numbers]$ gcc rand-14+26.c -lm [andrew Numbers]$ ./a.out 5.146485 20.103648 10.152815 7.419724 -11.741578 -8.865329 -2.016571 8.873079 11.216647 16.387408 [andrew Numbers]$ ./a.out 10.043042 23.310213 21.040210 25.955564 23.608908 3.176810 18.502755 10.347394 -9.462803 19.844136 [andrew Numbers]$
1
|
1 / 1 / 1
Регистрация: 14.06.2017
Сообщений: 46
|
|
09.08.2017, 16:02 [ТС] | 13 |
0
|
Форумчанин
![]() ![]() 8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
|
|
09.08.2017, 16:06 | 14 |
коэффициенты чтобы получить числа
синус даёт распределение от [-1 до 1]. fabs (модуль) это приводит к [0 1]. В итоге мы имеем результат от 0*40 - 14 до 1*40 - 14, то есть от -14 до 26, как и требовалось в задании.
1
|
1 / 1 / 1
Регистрация: 14.06.2017
Сообщений: 46
|
|
09.08.2017, 16:10 [ТС] | 15 |
MrGluck, спасибо
0
|
Модератор
![]() ![]() ![]() ![]() 10877 / 6768 / 1619
Регистрация: 25.07.2009
Сообщений: 12,484
|
|
09.08.2017, 16:10 | 16 |
Область значений функции синуса [-1; 1], соответственно модуль от неё [0; 1]. Минимальное значение всего выражения (в теории) будет 0 * 40 - 14 = -14, а максимальное 1 * 40 - 14 = 26. Учитывая псевдослучайные значения аргумента, конструкция будет возвращать числа в этом диапазоне.
Опоздал... Тогда добавлю, что 40 это 26 + 14 ![]()
0
|
![]() 25080 / 15584 / 3331
Регистрация: 24.12.2010
Сообщений: 33,777
|
|
09.08.2017, 21:43 | 17 |
easybudda, Вот лично мне использование синуса не очень нравится. Имхо, не даст он равномерного распределения. Побольше будет значений ближе к +-единице (горбы). Хотя я и не исключаю того, что где-то я не прав.
Но я бы генерировал отдельно целую и дробную часть. Или целую (большую) делил на 10n.
0
|
Модератор
![]() ![]() ![]() ![]() 10877 / 6768 / 1619
Регистрация: 25.07.2009
Сообщений: 12,484
|
||||||
10.08.2017, 00:32 | 18 | |||||
Это, если её по модулю резать (как у меня в посте выше), то в целом да, но учитывая, что rand() сама по себе то ещё распределение даёт, Ваше предложение
в целом вряд ли ситуацию сильно улучшит. Как вариант, лучше синусойду поднять и вытянуть
1
|
1201 / 723 / 165
Регистрация: 05.12.2015
Сообщений: 2,116
|
|
10.08.2017, 15:10 | 19 |
0
|
10.08.2017, 15:10 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Генерация случайных чисел из заданного диапазона
Генерация массива целых случайных чисел, которые не повторяются Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |