1. 程式人生 > >一個簡單的雙色球演算法

一個簡單的雙色球演算法

雙色球的規則:從1-33中選取六個紅球,從1-16中選取1個籃球

#include <iostream>
#include <vector>
#include <ctime>
#define mx 33
using namespace std;

int main()
{
	//以時間作為種子,用於產生隨機數
	struct tm * tim=new struct tm;
	tim->tm_year=114;
	tim->tm_mon=3;
	tim->tm_mday=24;
	tim->tm_hour=21;
	tim->tm_min=30;
	tim->tm_sec=0;
	time_t t1=mktime(tim);
	time_t *t2=&t1;
	vector<int> red;
	vector<int> blue;
	vector<int>::iterator it;
	int i,temp;
	srand(time(t2));
	//取六個紅球
	for(i=0;i<6;i++)
	{
		temp=rand()%mx+1;
		it=red.begin();
		while(it!=red.end())
		{
			if((*it)==temp)
				break;

			it++;
		}
		if(it==red.end())
			red.push_back(temp);
		else
		{
			i--;
			continue;
		}
	}
	//取一個藍球
	temp=rand()%16+1;
	blue.push_back(temp);
	for(it=red.begin();it!=red.end();it++)
	{
		cout<<(*it)<<" ";
	}
	it=blue.begin();
	cout<<(*it)<<endl;
	return 0;

}