![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Пользователь
Регистрация: 04.11.2008
Сообщений: 29
|
![]() Цитата:
res*=L; // здесь res=2*4=8 res=res-((int)res/N)*N+(int)res%N; // 8-(8/5*5+8%5)=8-(1*5+3)=8-8=0 Или я снова что-то не так понимаю? =( |
|
![]() |
![]() |
![]() |
#12 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 29
|
![]()
Но ведь res у нас объявлено как float.
Я все никак не пойму с этим оператором %. Почему например 5%3=2? Насколько я понимаю, % дает нам остаток от деления. Разве не должно быть тогда 5%3=666666 и так далее? Ведь если поделить 5 на 3, получится 1,66666, значит остатком и будет это самое 666666? |
![]() |
![]() |
![]() |
#14 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
потому что остаток от деления 5 на 3 будет 2 ))
|
![]() |
![]() |
![]() |
#15 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
если вам надо .6666 поделите остаток еще раз, только перед делением укажите что хотите выполнить деление дробных чисел, иначе в ответе получите ноль.
типа (float)(2%3)/3; |
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 29
|
![]()
Все, наконец-то дошло! Спасибо! Я почему-то решила, что дробная часть - это и есть остаток от деления, совсем с ума сошла)
Но почему же при Код:
|
![]() |
![]() |
![]() |
#17 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
слева и справа от оператора % должны стоять целые числа. пишите так: res=(int)(res*L)%N; |
|
![]() |
![]() |
![]() |
#18 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 29
|
![]()
Сделала так, теперь всё Int. Ошибка больше не выскакивает, зато у меня печатаются десять нулей вместо числовой последовательности. Что ж за напасть такая =(
|
![]() |
![]() |
![]() |
#19 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
Memfis_nya
приведите пример что вы хотите подать на вход и получить на выходе |
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 29
|
![]()
Вот вообще задание:
Применение метода вычетов основано на том, что каждое последующее случайное число bk+1 образуется из предыдущего bk согласно рекуррентному соотношению bk+1=l*bk(mod N) которое означает, что число b равно остатку от деления на N произведения числа b на постоянный множитель l. Очевидно, что остаток от деления на N в общем случае имеет ту же разрядность, что и число N, т.е. выбором числа N по существу определяется разрядность получаемых случайных чисел. Может, я чего-то неправильно поняла снова, но вот если написать Код:
генерируемая последовательность должна иметь большой период; генерируемая последовательность не должна иметь скрытых периодично-стей; генерируемая последовательность должна иметь равномерный спектр. То есть ошибка в самом задании, получается? Или у меня в голове @_@ |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что при нажатии на кнопку, выдало остаток от деления в Edit1 | prikolist | Общие вопросы C/C++ | 4 | 03.04.2009 18:57 |
Получить остаток от деления | Cpluser | Общие вопросы C/C++ | 18 | 26.02.2009 18:05 |
остаток от деления % | Division | Общие вопросы C/C++ | 5 | 25.12.2008 14:08 |
Создать массив только из тех элементов, у которых остаток от деления на М равен L (0<=L<=M-1) | Айвенго | Microsoft Office Excel | 2 | 12.01.2008 16:28 |