模特卡咯求解数组主元素
来源:互联网 发布:日本股市 软件 编辑:程序博客网 时间:2024/04/27 14:41
#include <ctime>
class CRandom_Alg
{
public:
CRandom_Alg(void);
~CRandom_Alg(void);
bool majority(int ary[], int &x, int n);
void random_seed(unsigned long d)
{
if (d==0)
seed=time(0);
else
seed=d;
}
unsigned int my_random(unsigned long low, unsigned long high)
{
seed=Multipler*seed+Increment;
return((seed>>16) % (high-low) + low);
}
private:
static unsigned long seed;
const unsigned long Increment;
const unsigned long Multipler;
};
CRandom_Alg::CRandom_Alg(void):Multipler(0x015A4E35L),Increment(1)
{
}
CRandom_Alg::~CRandom_Alg(void)
{
}
unsigned long CRandom_Alg::seed=0;
/*
用模特卡咯方法
求解数组ary中的主元素
主元素:元素个数占数组个数的一半
*/
bool CRandom_Alg::majority(int ary[], int &x, int n)
{
int i,j,k;
random_seed(0);
i=my_random(0,n-1);
k=0;
for(j=0;j<n;j++)
{
if(ary[i]==ary[j])
k++;
}
if(k>n/2)
{
x=ary[i];
return true;
}
return false;
}
void main()
{
/////////////////////////////////////////////
//////// 模特卡咯求数组主元素 ////////////
int ary[15]={1,2,3,4,5,3,2,3,4,3,3,3,3,3,3};
int x=0;
int n=15;
CRandom_Alg m_Random_alg;
m_Random_alg.majority(ary, x, n);
cout<<x<<endl;
getchar();
return 0;
- 模特卡咯求解数组主元素
- 主元素问题求解
- 求解二维数组的最大/最小元素
- 数组定和元素求解探究
- 小程序:求解二维数组的最大最小元素
- 一元二次方程求解递归调用调换数组元素
- Java求解数组中的两个元素的最小距离
- python求解LeetCode题目,找出数组中的Majority element元素
- 数组中的主元素
- Ruby实现求数组内相邻元素的最大和-《编程珠玑》问题求解
- http://projecteuler.net/problem=5【求解数组所有元素的最小公倍数】
- C语言学习之求解二维数组的最大/最小元素
- Java 分治法 求解一组数组元素的最大值和最小值
- 多个数组间元素排列组合问题求解(Java实现)
- 求解数组中任意两个元素的和最接近某一个数
- python求解非递减排序的数组的一个旋转的最小元素
- 多个数组间元素排列组合问题求解(Java实现) 标签: 递归排列组合循环
- 回溯法求解数组中和为固定值的所有元素集合
- Struts2教程7:上传任意多个文件
- 2009年11月22日(mysql_1)
- 哦你哦
- 迷途羔羊
- 人生的课题
- 模特卡咯求解数组主元素
- 好像得了电脑病
- 存储过程和触发器
- The Next:预答辩
- 简单的浏览器(C#)
- 不知道能坚持到什么时候,但我会努力坚持!
- 郁闷的
- 【第7章】TTY【四】
- ADO.NET的数据