找回密码
 欢迎注册
查看: 5651|回复: 1

[擂台] 哪位高手帮我翻译一个程序

[复制链接]
发表于 2011-10-26 18:42:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
我目前有一个难题,到这里来请求帮助,希望高手能伸出援手。
我有一个等着急用的用VFP语言编写的程序,想用郭老师的代码实现大数快速运行测试,虽然郭老师的代码可以任意下载,可是我只懂一点VFP,可惜郭老师那么好的代码我不会用,现在我希望有高手用郭老师的代码把我的程序翻译过来。下面的程序就是我说的代码,虽然高手现在都不用这个过时的代码,但我的程序代码旁边都有说明,所以代码不会成为翻译障碍的。代码下面就是测试数据,我的程序最大只能运行8-9位数字,用郭老师的程序代码那怕能运行出十几位数字我满足了,如果真的能运行出十位数字以上,我愿意用1000元表示感谢!我的QQ:2624678166
  
D=2 &&要输入数:D=
W=4096 &&要输入数:W=
L=11111111111  && 待输出T的最大值,若能运行大数可随时加大
k=2*W &&常量
for b=1 to L && 进入外循环从b=1开始, L是b的最大值
T=k*b+1   &&用前面得到的b和已知的k计算T=k*b+1
M1=2  &&常量
u=mod(M1,T) &&计算M1与T的余数u,这是后面的参照值
for v=1 to W && 进入二层循环从v=1开始, W是v的最大值
  M2=D^v &&用前面得到的v和已知的D计算M2=D^v
  if  M2>T-1 and M2>0 &&如果M2>T-1,则取大于T-1的最小值M2(其实是取v的最小值)
  M=D^v+1 &&用前面得到的最小值v和已知的D计算M=D^v+1
for i=v to W  && 进入内循环次数从i=v开始,W是i的最大值
  F=mod(M,T)  &&计算M与T的余数F
  M=(F-1)*D+1  &&用前面得到的F与已知的D计算新的M,再返回上一步。
  if  F=0  &&如果 F=0
   if  i=W  &&并且如果 i=W
   F1=mod(T-1,W) &&计算T-1与W的余数F1
   if F1=0  &&如果 F1=0
    ?'T=',T   &&输出:T=
       endif  &&这是与 if 对应的循环语句
    endif  
    endif
  ENDFOR  &&这是与for  to 对应的循环语句
EXIT  && 这是取M2最小值(也就是v的最小值)的循环语句
endif
ENDFOR
  ENDFOR  
测试数据
1、当输入D=2、W=4096, L=4000000011111111111111111111时
输出应该是 114689 、 26017793 、 63766529 、 190274191361 、 1256132134125569 、    568630647535356955169033410940867804839360742060818433  
2、当输入D=2、W=2048, L=4000000011111111111111111111时
输出应该是319489、974849、167988556341760475137、3560841906445833920513等
3、当输入D=2、W=8192, L=4000000011111111111111111111时
输出应该是 2710954639361 、 2663848877152141313 、 3603109844542291969 、  319546020820551643220672513
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 22:03 , Processed in 0.049362 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表