拉斯维加斯 整数分割
来源:互联网 发布:mac finder添加 编辑:程序博客网 时间:2024/04/29 23:42
拉斯维加斯算法解决整数分割(一次)
// 整数分割.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#include "stdafx.h"
#include"iostream"
#include<math.h>
#include<time.h>
#include<iomanip>
using namespace std;
const unsigned long maxshort=65535L;
const unsigned long multiplier=1194211693L;
const unsigned long adder=12345L;
class RandomNumber{
private:
//当前种子
unsigned long randSeed;
public:
//构造函数
RandomNumber(unsigned long s=0);
unsigned short Random(unsigned long n);
double fRandom();
};
RandomNumber::RandomNumber(unsigned long s)
{
if(s==0)
randSeed=time(0);
else
randSeed=s;
}
double RandomNumber::fRandom()
{
return Random(maxshort)/double(maxshort);
}
unsigned short RandomNumber::Random(unsigned long n)
{
randSeed=multiplier*randSeed+adder;
return (unsigned short)((randSeed>>16)%n);
}
int gcd(int a,int b)//求最大公因数
{
if(b==0) return a;
else
return gcd(b,a%b);
}
void Pollard(int n)
{
RandomNumber rnd;
int i=1;
int x=rnd.Random(n);
int y=x;
int k=2;
while(true)
{
i++;
x=(x*x-1)%n;
int d=gcd(y-x,n);
if((d>1)&&(d<n))
{
cout<<d<<endl;
return;
}
else if(i==k)
{
y=x;
k*=2;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
Pollard(49);
}
- 拉斯维加斯 整数分割
- 0048算法笔记——【随机化算法】拉斯维加斯随机化算法求解整数因子分解中的因子分割问题
- 0048算法笔记——【随机化算法】拉斯维加斯随机化算法求解整数因子分解中的因子分割问题
- 整数分割
- 分割整数
- 分割整数
- 分割整数
- 整数分割数目
- 整数的分割方式
- 整数的分割数目
- 整数不同分割方式
- 【经典递归】整数分割
- 问题九十九:分割整数
- 整数分割问题
- 回忆拉斯维加斯
- 拉斯维加斯流水
- 整数的所有分割数目
- 分割整数(循环结构)
- Windows下编译MySQL
- C语言 sizeof函数详解
- Windows API调用外部程序
- pivot and unpivot queries in 11g
- Windows API函数大全
- 拉斯维加斯 整数分割
- UVa 10152 - ShellSort 数据结构专题
- 我来翻译“Effective Java”_第一谈
- 卸载金山独霸
- Objective C对象之间信息传递(一)Protocol
- Hibernate之三几个核心类和对象的三种状态
- 在网页浏览器中原生显示PDF文件
- 从应用环境中提取需求过程解密
- 单例模式