0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 14
|
||||||
1 | ||||||
Генератор XORShift и Метод Фибоначчи с запаздываниями26.04.2017, 13:06. Показов 5487. Ответов 11
Вопрос такой,как генерировать вещественные числа в определенном диапазоне [0;1] с помощью XORShift и генератора на основе Метода Фибоначчи с запаздываниями,и возможно ли это ?
Я имею в виду,как этими генераторами пользоваться,чтобы получить вещественное число в нужном мне интервале?В интернете мало информации на русском языке,даются только сами алгоритмы. Вот например функция rand() стандартной библиотеки С/C++ генерирует числа в диапазоне от 0 до RAND_MAX. И для получения вещественных чисел в определенном диапазоне мне нужно записать
Так вот,как быть с XORShift и генератором Фибоначчи?
0
|
26.04.2017, 13:06 | |
Ответы с готовыми решениями:
11
Генератор Фибоначчи Генератор Фибоначчи Генератор чисел Фибоначчи Аддитивный генератор (Фибоначчи с запаздыванием) |
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
|
26.04.2017, 14:22 | 2 |
Что такое XORShift?
0
|
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 14
|
|
26.04.2017, 14:50 [ТС] | 4 |
Генератор случайных чисел,сделанный на основе операций побитового сдвига.
В том то и дело,что я не знаю, Единственное что могу сказать,числа получаются очень большие,что-то вроде: 39462749392662495 4596835458788324745
0
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
|
26.04.2017, 17:26 | 5 |
Про XORShift посмотрел, вот, например, статья:http://www.apofig.com/2014/10/random-xorshift.html.
Так, а что тут трудного-то, ну реализуйте готовый алгоритм в C++ да и все, тем более, что готовый код уже есть. Если нужно дробное, то просто поделите на 10 в степени <число знаков> да и все. Я считаю Ваша проблема не такая уж и сложная. - как это Вы не знаете, если Вы сами сказали, что нужно сгенерировать числа от 0 до 1?
0
|
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 14
|
|
26.04.2017, 17:45 [ТС] | 6 |
DemolitionMan,
Не сложная ?Я весь интернет перерыл ничего толкового нет,только сами алгоритмы. Вопрос в том,как рандомить вещественное число в нужном мне диапазоне,то есть от 0 до 1. Возвращает он не понятно что,я приводил пример: Как собственно эти числа преобразовать к чему-то более менее похожему на то,что мне нужно ?
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
|
|
26.04.2017, 18:08 | 7 |
Сообщение было отмечено vosure как решение
Решение
Так же нормируй по той формуле, только RAND_MAX замени на своё значение.
1
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
|||||||||||
26.04.2017, 19:11 | 8 | ||||||||||
- я же сказал, нужно сначала посчитать числа, будет код что-то типа этого:
По поводу той ссылки что я дал, смотрите, чтобы число в 0 не ушло после вот этой строки:
0
|
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 14
|
||||||
26.04.2017, 19:17 [ТС] | 9 | |||||
nmcf, Спасибо,все работает.Я не знал диапазон рандома XORShift,но разобрался с 0 до 0xFFFFFFFF.
А может кто с диапазоном фибоначчиевского алгоритма подсказать ?
0
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
|
26.04.2017, 20:16 | 10 |
Подсказывать Вам дело неблагодарное, тем более, что Интренет полон тем, что Вы ищете.
0
|
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 14
|
|
26.04.2017, 20:29 [ТС] | 11 |
DemolitionMan,
Почему же ?
Спасибо вам за помощь,но вы говорили немного не о том.Ваше предложение было в том,чтобы взять эти непонятные числа и просто разделить на 10 в нужной степени,но ведь мне нужно войти в диапазон,да и плюс ко всему там деление совсем ни к чему. Помог вариант вот этого товарища: Все получилось.
0
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
|
27.04.2017, 06:04 | 12 |
Я не понимаю как это могло получиться, если, как я знаю, rand() генерирует от 0 до RAND_MAX = 32678(ну или что-то такое, непомню точно, а смотреть лень, в общем Вы поняли), если это число не заменять, а оставить RAND_MAX, то будет генерироваться, то что Вы хотите: от 0 до 1. Если же это число заменить на очень большое(Ваше бредовое число), то будет генерироваться, скажем от 0 до 0.1, что естественно, неправильно. Как у Вас могло получиться, я не понимаю.
Насчет Фиббоначиевого метода с задержкой я был прав. В Интренете полно информации и вчера еще такой хороший сайт нашел, где все так хорошо и понятно объясняется, ну красота вобщем. Так что читайте Интернет и не говорите больше, что там ничего нет.
0
|
27.04.2017, 06:04 | |
27.04.2017, 06:04 | |
Помогаю со студенческими работами здесь
12
генератор ПСП по методу Фибоначчи Генератор случайных чисел методом Фибоначчи ГСПЧ с использованием XORshift Метод оптимизации. Метод Фибоначчи Метод Фибоначчи Метод Фибоначчи Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |