Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 14.04.2019, 15:44   #1
StillPhelix
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 29
Репутация: 10
По умолчанию Генератор псевдослучайных чисел Лемера

Это код генератора псевдослучайных чисел Лемера. Нужно пдсчитать все числа в периоде. Но программа считает все числа в массиве, вместотого, чтобы посчитать только те, которые входят в период.
Код:

#include <iostream>
#include <malloc.h>
#include <windows.h>
#include <iomanip>

using namespace std;
int main()
{
	int t;
	int n;
	int i;
	int a=71;
	int m=251;
	int c=71;
	int p=0;
	int zero=0;
	int one=0;
	int x[250];
	x[0]=5;
	int count=0;
	int *bin;

	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	for(n=1;n<=250;n++)x[n]=(a*x[n-1]+c)%m;
	cout<<"Последовательность псевдослучайных чисел: "<<endl;
	for(n=1;n<25;n++)
		for(i=0;i<=10;i++)cout<<x[i]<<", ";
	cout<<endl;
	for (n=0;n<250;n++)
	{
		if(x[n]!=x[0]||n==0)p++;
		if(x[n]==x[0]&&n!=0)break;
		//else p++;
	}
	cout<<"Элементов в периоде: "<<p<<endl;
	return 0;
}

StillPhelix вне форума   Ответить с цитированием
Старый 14.04.2019, 21:09   #2
StillPhelix
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 29
Репутация: 10
По умолчанию

У меня стоит Visual Studio 2010. Неправильные результаты почему-то даёт последний цикл for
StillPhelix вне форума   Ответить с цитированием
Старый 15.04.2019, 17:36   #3
_Bers
Профессионал
 
Регистрация: 16.12.2011
Адрес: Москва
Сообщений: 2,284
Репутация: 982
По умолчанию

Цитата:
Сообщение от StillPhelix Посмотреть сообщение
Код:

...
	int x[250];
	for(n=1;n<=250;n++)x[n]=(a*x[n-1]+c)%m;

выход за пределы диапазона массива.


Цитата:
Сообщение от StillPhelix Посмотреть сообщение
в период.
описать как именно этот самый период должен задаваться - конечно не обязательно?

нахер надо.
тут же телепаты собрались.
сами как ни будь догадаются.
_Bers вне форума   Ответить с цитированием
Старый 15.04.2019, 17:58   #4
taras-proger77
Форумчанин
 
Регистрация: 17.12.2018
Сообщений: 108
Репутация: -63
По умолчанию

Телепаты водятся на www.gamedev.ru.
taras-proger77 на форуме   Ответить с цитированием
Старый 15.04.2019, 21:19   #5
StillPhelix
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 29
Репутация: 10
По умолчанию

Разобрался. Ошибка была в выводе массива на консоль.
StillPhelix вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор псевдослучайных чисел Veryn4ik1993 Помощь студентам 2 02.12.2013 00:49
Генератор псевдослучайных чисел Veryn4ik1993 Паскаль 9 24.11.2013 23:33
конгруэнтный генератор псевдослучайных чисел cvbcvb Помощь студентам 0 10.05.2010 00:16
генератор псевдослучайных чисел duff Паскаль 18 27.04.2010 23:59
Генератор псевдослучайных чисел Max- Помощь студентам 12 21.05.2009 21:06


16:48.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru