Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2010, 22:35   #1
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию Генрация случайных чисел методом средних квадратов

Пожалуйста, гляньте в чём ошибка, совершенно непонятно почему она возникает. Наверное что-то с преобразованием строк



Код:
#include <conio.h>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <sstream>

using namespace std;
using std::stringstream;

class random{
private:
	int x;
public:
	friend void generate(random &mass, int index, double &alias);
	void show(int i);
};

void random::show(int i)
{
	cout << i << "element = " << x << endl;
}

void generate(random &mass, int index, double &alias)
{
	int count = 0, controller = 0;	
	while(controller == 0){
		char s2[5];
		stringstream s;
		double temp = pow(alias, 2);	
		s << temp;
		for(int i = 0; i < 8; i++){
			if(i >= 3 && i < 7) count++;
			s2[count] = s.str()[i];
		}
		s2[strlen(s2)] = '\0';
		if (atoi(s2) != 0){
			mass.x = atoi(s2);
			controller = 1;
			alias =  mass.x/1000;
		}
	}
}

int main()
{
	//Интервал
	//int a , b;
	int amount;
	//alias используется для генерации следующего элемента из предыдущего
	double alias = 0.2345;
	//cout << "Input interval (1000 - 9999) = ";
	//cin >> a >> b;
	cout << "Input amount of element = ";
	cin >> amount;
	random *mass = new random [amount];
	for(int i = 0; i < amount; i++){
		generate(mass[i], i, alias);
		mass[i].show(i);
	}
	_getch();
}
Проблема явно в функции generate()

Последний раз редактировалось Дырдин; 16.04.2010 в 22:39.
Дырдин вне форума Ответить с цитированием
Старый 16.04.2010, 23:24   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,770
По умолчанию

А что за ошибко то?
p51x вне форума Ответить с цитированием
Старый 16.04.2010, 23:44   #3
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

выкладывайте ошибки которые выдает ваш компилятор ! Твое:" гляньте в чём ошибка, " не несет никакой информации чтобы можно было помоч.
хотелось бы еще ссылку на описание этого алгоритма...

Последний раз редактировалось NiCola999; 16.04.2010 в 23:55.
NiCola999 вне форума Ответить с цитированием
Старый 17.04.2010, 15:27   #4
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Ошибки как таковой не обнаружить. Просто при генерации уже 2го числа программа вылетает. Вот ссылка на алгоритм
Дырдин вне форума Ответить с цитированием
Старый 17.04.2010, 15:51   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Меня лично смутил вот этот кусок:
Код:
		for(int i = 0; i < 8; i++){
			if(i >= 3 && i < 7) count++;
			s2[count] = s.str()[i];
		}
Откуда такая уверенность, что в строке будет не меньше 8-ми символов?
Вероятно тут имеет место быть выход за пределы массива.
netrino вне форума Ответить с цитированием
Старый 17.04.2010, 16:10   #6
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Что-то у меня совершенно не хочет преобразовываться. Может кто-нибудь скажет, как мне получить из числа :

x = 0,07|4927|81,
Число 4927

Без перевода в строковый, либо со строками, но чтобы стабильно работало.
Дырдин вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аппроксимация функции методом наименьших квадратов(МНК) vitaly38 Помощь студентам 1 29.03.2010 21:50
Метод шифрования\дешифрования методом гаммирования, используя для гаммы алгоритм случайных чисел... Си. Mastu-Basta Помощь студентам 0 13.09.2009 16:19
Паскаль. Аппроксимация функции методом наименьших квадратов. 3abeel Фриланс 17 13.07.2009 09:21
Помощь в решении задачи методом наименьших квадратов Aleks_R Помощь студентам 0 28.04.2009 15:39
Assembler, метод средних квадратов Ukrajinec Помощь студентам 5 08.04.2009 10:54