'''
Created on 2012-3-10
@author: daweibalong
'''
from random import randint
f=[]
def gcd(m,n):
if n>0:
return gcd(n,m%n)
return m
def isPrime(n):
if n<2:
return True
for i in range(2,int(n**0.5)+1):
if n%i==0:
return False
return True
def ifenough(num):
m=1
for i in f:
m*=i
if m==num:
return 0
if m>num:
return 1
return 2
def PollardRho(num,n):
if(isPrime(n)):
f.append(n)
return;
x=[]
i=1
x.append(-1)
x.append(randint(1,n))
y=x[1]
k=2
while True:
i+=1
x.append((abs(x[i-1]*x[i-1]-1))%n)
d=gcd(abs(y-x[i]),n)
if d>1 and d<n:
PollardRho(num,d)
PollardRho(num,n/d)
if i==k:
y=x[i]
k=2*k
if x.index(x[i],0,i+1)!=i or ifenough(num)==0 or ifenough(num)==1:
break
def repeat(n):
while True:
f[:]=[]
PollardRho(n,n)
if ifenough(n)==0:
f.sort(cmp=None, key=None, reverse=False)
for index,j in enumerate(f):
if index!=len(f)-1:
print j,'*',
else:
print j
break
if __name__=='__main__':
print 'please enter the number you want to divide:',
n=int(raw_input())
repeat(n)
分享到:
相关推荐
【标题】"skybox对地凝视-Las Vegas"揭示了一项高级的远程监控技术,它利用了Skybox系统对拉斯维加斯地区特定公路的实时观察。这项技术结合了高清卫星成像与智能分析算法,能够捕捉并解析地面上的动态情况。 【描述...
书中提到的两种主要的随机算法是Las Vegas算法和Monte Carlo算法。Las Vegas算法是指算法结果总是正确的,但是运行时间是随机的,例如快速排序算法。Monte Carlo算法则指结果带有概率性质,不一定总是正确,但算法...
在计算机科学领域,特别是算法设计中,Las Vegas算法是一种重要的随机算法。这个算法以其独特的性质在解决特定问题时展现了其高效的一面,尤其是在数据结构和计算复杂性理论的研究中占有显著地位。标题中的“las.zip...
随机算法可以分为几大类别,包括数值概率算法、Sherwood算法、Las Vegas算法和Monte Carlo算法。 数值概率算法主要用于数值问题的求解,它依赖于随机数生成来解决特定问题。计算机通常通过线性同余法来生成随机数,...
这是本科算法(DS,DATA STRUCTURE)课程中中最重要的三种算法:KMP, Monte Carlo 和Las Vegas算法。资源里有做好的KMP, Monte Carlo 和Las Vegas算法代码以及2份算法报告。
本资源主要讲解了随机算法中的重要概念和技术,涵盖了随机算法的基础知识、随机算法的设计和分析、NP 完全性问题、Monte Carlo 算法和 Las Vegas 算法、延迟决策原理、马尔科夫不等式、条件期望方法、奖券收集问题和...
### N皇后问题Las Vegas优化算法的实现 #### 引言 N皇后问题是一个经典的计算机科学问题,涉及到在N×N的棋盘上放置N个皇后,使得任何两个皇后都不在同一行、同一列或同一对角线上。这个问题不仅具有数学上的趣味...
- **Las Vegas方法**:这类算法虽然运行时间不确定,但最终一定能得出正确答案,只是所需时间可能在一定的概率分布下变化。 - **舍弃法**:如果算法在某次迭代中得到不理想的结果,可以抛弃并重新开始,直到满足某个...
东南大学计算机系的课程中,学生们会接触到多种算法,包括KMP字符串匹配算法、Monte Carlo算法和Las Vegas算法。这三种算法在数据结构(DS)的教学中占据着重要地位,因为它们涉及到不同的问题解决策略和复杂度分析...
2. **拉斯维加斯算法**(Las Vegas Algorithms):这类算法保证了结果的准确性,但运行时间是随机的。也就是说,虽然结果一定是正确的,但运行时间可能是不确定的。 3. **谢伍德算法**(Sherwood Algorithms):这类...
随机算法可以分为两大类:Las Vegas算法和Monte Carlo算法。Las Vegas算法总是给出正确结果,但运行时间不确定;Monte Carlo算法运行时间固定,但结果的正确性有一定的概率保证。 2. 计算模型与复杂度类别:随机...
Las Vegas算法与Monte Carlo算法类似,也使用随机性,但其关键区别在于Las Vegas算法保证最终能找到正确解,只是所需的时间是随机的。该算法通常用于寻找最短路径、图的遍历等问题。如果运气好,算法可能在很短时间...
6. **概率算法和随机化**:如Monte Carlo方法、Las Vegas方法,用于处理NP难问题或提高算法效率。 7. **计算几何**:涉及平面几何中的算法,如最近点对问题、多边形求交等。 8. **字符串处理**:KMP、Boyer-Moore...
8. **随机化算法**:随机化算法在现代计算中扮演着重要角色,书中介绍了如随机化排序、Monte Carlo算法和Las Vegas算法等,展示了它们在解决复杂问题时的优势。 9. **计算几何**:计算几何部分探讨了点、线、圆等...
随机算法实现N皇后问题,所用随机算法是Las Vegas随机算法
与Monte Carlo算法类似,Las Vegas算法也使用随机性,但不同的是,它在成功时总是能得出正确结果,只是成功所需的平均运行时间取决于随机性。在本实验中,Las Vegas算法被用来进一步确认由Monte Carlo算法得出的可能...
Las Vegas算法是一种特殊的随机算法,它在解决问题时,如果找到一个解就会停止,而不会无休止地搜索。在八皇后问题中,Las Vegas算法可能会更快地找到一个解,因为它不是盲目地遍历所有可能的布局,而是尝试一种随机...