1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
||||||
1 | ||||||
Генератор псевдослучайных чисел22.02.2015, 15:25. Показов 973. Ответов 9
Метки нет Все метки)
(
Данный генератор работает по конгруэнтному методу, формула X_{n} = ( a X_{n-1}^3 + b X_{n-1}^2 + c X_{n-1} + d )\mod 2^e.
При компиляции выдаётся следующая ошибка: [C++ Error] Unit1.cpp(34): E2060 Illegal use of floating point Поискав в интернете номер ошибки, выяснил что проблема в %m. Но как её исправить так и не понял ![]()
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
22.02.2015, 15:25 | |
Ответы с готовыми решениями:
9
Генератор псевдослучайных чисел Генератор псевдослучайных чисел Генератор псевдослучайных чисел. Генератор псевдослучайных чисел |
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
22.02.2015, 15:46 [ТС] | 3 |
Так программа запускается, но при вводе тестовых значений выдаёт не корректные результаты!
Пример: а=8,б=0,с=0,d=65,m=100,y[0]=2; Результат x[1] = 0,29. Хотя посчитав на калькуляторе должен быть x[1] = 0,81. y[i] = (int)((a * y[i-1]) + d) % m; - а вот эта похожая функция выдаёт корректные результаты! Не могу понять в чём проблема ![]()
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
22.02.2015, 16:19 [ТС] | 5 |
Ещё раз всё перепроверил, вроде бы правильно считает. Можете объяснить, (float)((int)выражение) вот эту часть? Не совсем понимаю приведение типов
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
22.02.2015, 16:23 [ТС] | 7 |
Т.е. y[i] целочисленные, а для вычисления x[i] только float т.к. деление, поэтому ошибка я правильно понял?
0
|
Заблокирован
|
|||||||||||
22.02.2015, 16:31 | 8 | ||||||||||
pow не нужен. Тогда и приведение типов не нужно
Скажем, так:
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
23.02.2015, 00:38 [ТС] | 9 |
Исправил на 1 тип, спасибо!
Добавлено через 8 часов 2 минуты Возникла 1 проблема, при больших значениях констант а b c d m y[0] выдаются некорректные результаты(отрицательные числа), подсчитав числа на калькуляторе получились значения в триллионах, а максимальное число типа int может быть 2 147 483 647. Как можно решить данную проблему?
0
|
Заблокирован
|
|
23.02.2015, 09:54 | 10 |
0
|
23.02.2015, 09:54 | |
Помогаю со студенческими работами здесь
10
Генератор псевдослучайных чисел. генератор псевдослучайных чисел... Генератор псевдослучайных чисел Генератор псевдослучайных чисел - проблема. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |