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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2010, 22:05   #1
Lazio
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 113
По умолчанию Проблема с рандомом С++

Код:
void Init(){

	
	Xc=Convert::ToInt32(textBox1->Text);
	Yc=Convert::ToInt32(textBox2->Text);

	Xb=Convert::ToInt32(textBox3->Text);
	Yb=Convert::ToInt32(textBox4->Text);

	Xe=Convert::ToInt32(textBox5->Text);
	Ye=Convert::ToInt32(textBox6->Text);

	
		
	RectX1=Xc;
	RectX2=Xe;
	RectY1=Yc;
	RectY2=Ye;

}

bool CheckPoint(int X, int Y){

	if ( Y > ((Ye-Yb)*X)/(Xe-Xb) +Yb - ((Ye-Yb)*Xb)/(Xe-Xb)  ){
		return 0;
	}	
	
	if (X<Xc ||X>Xe ){ return 0; }
	
	
	
	return 1;
}


void MonteCarlo(){
	
	int xRand=0;
	int yRand=0; 
	int countIn=0; 
	int countOut=0;
	

	
	
	

	for (int i=0; i<10000000; i++){

	
		srand(time(NULL));
	
		xRand=rand()%(RectX2-RectX1+1)+RectX1;
		yRand=rand()%(RectY2-RectY1+1)+RectY1;

		if (CheckPoint(xRand,yRand)){
			countIn++;
		
		}
		else{
			countOut++;
		}


		
	}
	
	

		label11->Text=Convert::ToString(countIn);
		label12->Text=Convert::ToString(countOut);
		
	

}

#pragma endregion
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) { 
				 
				 CheckForm();
				Init();
				MonteCarlo();
					



			 }
};

countIn - точки внутри

вобщем числа всегда разные и часто выпадает 10000000 к 0 хм...

Последний раз редактировалось Lazio; 17.09.2010 в 22:34.
Lazio вне форума Ответить с цитированием
Старый 17.09.2010, 22:51   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,726
По умолчанию

Цитата:
Проблема с рандомом С++ CLI
Код:
srand(time(NULL));
За цикл... И как у вас компилятор ее пропустил... Раз используете дотнет, то и пользуйтесь его генератором.
p51x вне форума Ответить с цитированием
Старый 17.09.2010, 23:27   #3
Lazio
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 113
По умолчанию

блин я уже обматерил этот рандом)

так значит .NET

System.Random r = new System.Random(); ?

может кто пример кинет как этим рандомом сгенерировать числа от MIN до MAX ?
Lazio вне форума Ответить с цитированием
Старый 17.09.2010, 23:29   #4
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

а проще можно просто сгенерировать случайные числа а потом уже отсортировать или тебе прям рандомом надо?
Alex_sim вне форума Ответить с цитированием
Старый 17.09.2010, 23:45   #5
Lazio
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 113
По умолчанию

Пусть будет прям рандомом. Тупо ткнули точку проверили, если да то ++ если нет то нет)
Lazio вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заполнение матрицы рандомом Law1589 Общие вопросы C/C++ 5 17.11.2009 23:04
Сгенерировать рандомом последовательность, по заданной формуле, если 1ое число известно! Алексей_xXx Помощь студентам 2 24.05.2009 16:40
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37
Загрузка текста в мемо рандомом Gracia Помощь студентам 2 11.11.2008 08:37