数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: zhaolu48

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

[复制链接]
 楼主| 发表于 2010-3-7 07:02 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

[这个贴子最后由zhaolu48在 2010/03/07 07:45am 第 1 次编辑]

       1                  
————————,  
(k^n)ln(x/k^n)   
这里 x = 10^16,k = 1.0008,n = 1,2,……,40000,
还有 x = 10^21,k = 1.00008,n = 1,2,……,580000,
不知是计算“和”,还是把每个“系数”分别计算出来。
如第二个,要计算580000个“数”出来,就要把它们存在一个数据库里面,方便随时调用。
这里先计算“和”及“最后一项”。
CLEAR
CLEAR ALL
SET TALK off
a=1
b=16*log(10)
c=0
k=1.0008
d=log(k)
s=0
for i=1 to 4
sa=0
FOR j=1 to 100
sb=0
FOR l=1 to 100
a=a*k
c=c+d
e=a*(b-c)
sb=sb+(1/e)
endf
sa=sa+sb
endf
s=s+sa
?s,1/e
endf
? 1/e,s
计算得a(40000)=0.000000000000003
      s(40000)=34.90518314461599
把上面程序的值稍作改动如下
CLEAR
CLEAR ALL
SET TALK off
a=1
b=21*log(10)
c=0
k=1.00008
d=log(k)
s=0
for i=1 to 58
sa=0
FOR j=1 to 100
sb=0
FOR l=1 to 100
a=a*k
c=c+d
e=a*(b-c)
sb=sb+(1/e)
endf
sa=sa+sb
endf
s=s+sa
?s,1/e,sa,sb
endf
? 1/e,s
计算得:
s(580000)=264.0910918665493
a(580000)=0.000000000000000
其实在VF下
s(480000)已经等于264.0910918665493了。
 楼主| 发表于 2010-3-7 18:10 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

“请求计算:
      1                  
————————,  
(k^n)ln(x/k^n)   
这里 x = 1.00008×10^21,k = 1.00008,n = 1,2,……,480000,”
即x=k*10^21,从而ln(x/k^n)=21ln10-(n-1)lnk
计算480000项的和的程序是
k=1.00008
a=1
b=21*log(10)
d=log(k)
c=-d
s=0
for i=1 to 48
sa=0
FOR j=1 to 100
sb=0
FOR l=1 to 100
a=a*k
c=c+d
e=a*(b-c)
sb=sb+(1/e)
endf
sa=sa+sb
endf
s=s+sa
?s,1/e,sa,sb
endf
? 1/e,s
执行程序得
s=264.0906453045392
发表于 2010-3-8 09:48 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

有一个非常接近的形式,如何求下面的和:
∑{1/[n^k*LN(n)]},K≥2,n≥2.
 楼主| 发表于 2010-3-8 18:44 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

[这个贴子最后由zhaolu48在 2010/03/08 07:13pm 第 1 次编辑]

“∑{1/[n^k*LN(n)]},K≥2,n≥2.”
展开是这种形式吗?
1/[2^2*ln(2)]
+1/[2^3*ln(2)]+1/[3^2*ln(3)]
+1/[3^3*ln(3)]+1/[2^4*ln(2)]+1/[4^2*ln(4)]
…… …… …… …… …… …… …… ……
+1/[2^m)*ln(2)]+1/[3^(m-1)*ln(3)]+…+1/[m^2*ln(m)]
…… …… …… …… …… …… …… …… …… …… …… ……
如果是这样,这个程序是较复杂的,
计算过程,直接用9^5和9*9*9*9*9,当乘方次数较大时,用后者计算要比用前者计算精确得多。
VF语言,只能显示16位有效数字,因此m>54时 1/[2^m)*ln(2)]小数点后15位都是0了,
因此要m≤54
 楼主| 发表于 2010-3-8 19:39 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

请求计算:
       1
————————,  
(k^n)ln(x/k^n)   
这里 x = 10^21,k = 1.0000008,n = 1,2,……,48000000,
用下面程序计算
CLEAR
CLEAR ALL
SET TALK off
p=0
k=1.0000008
a=1
b=21*log(10)
d=log(k)
c=1
s=0
for i=1 to 48
sa=0
FOR j=1 to 100
sb=0
FOR l=1 to 100
sc=0
FOR h=1 to 100
a=a*k
c=c+d
e=a*(b-c)
sc=sc+(1/e)
p=p+1
endf
sb=sb+sc
endf
sa=sa+sb
endf
s=s+sa
?p,s,1/e,sa,sb
endf
? 1/e,s
得s=26979.37273204878
发表于 2010-3-9 08:35 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

在具体问题中,K是一个定值,n是一个整数变量,求∑{1/[n^4*LN(n)]},1
 楼主| 发表于 2010-3-9 14:29 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

“请求计算:
       1
————————,  
(k^n)ln(x/k^n)   
这里 x = 10^21,k = 1.000008,n = 1,2,……,4800000,
极为感谢!”
可用如下程序计算:
CLEAR
CLEAR ALL
SET TALK off
p=0
k=1.000008
a=1
b=21*log(10)
d=log(k)
c=1
s=0
for i=1 to 480
sa=0
FOR j=1 to 100
sb=0
FOR l=1 to 100
a=a*k
c=c+d
e=a*(b-c)
sb=sb+(1/e)
p=p+1
endf
sa=sa+sb
endf
s=s+sa
?p,s,1/e,sa,sb
endf
?p,s,1/e,sa,sb
计算结果s=2697.937483021609
 楼主| 发表于 2010-3-9 15:21 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

[这个贴子最后由zhaolu48在 2010/03/09 03:22pm 第 1 次编辑] “在具体问题中,K是一个定值,n是一个整数变量,求∑{1/[n^4*LN(n)]},19*10^18 EXIT ENDIF endf ?s*1.000000000000000 SET TALK ON 计算得s=0.106200776439523 而且这样倒过来计算精确度要高一些。 当n>22000时,后面的 1/[n^4*LN(n)]已经远小于0.000000000000001,对结果已经没有影响了。
 楼主| 发表于 2010-3-10 07:47 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

“请求计算:
       1
————————,  
(k^n)ln(x/k^n)   
这里 x = 10^21,k = 1.00004,n = 1,2,……,1000000,”
用下列程序计算:
CLEAR
CLEAR ALL
SET TALK off
*这里 x = 10^21,k = 1.00004,n = 1,2,……,1000000,
p=0
k=1.00004
a=1
b=21*log(10)
d=log(k)
c=0
s=0
for i=1 to 100
sa=0
FOR j=1 to 100
sb=0
FOR l=1 to 100
a=a*k
c=c+d
e=a*(b-c)
sb=sb+(1/e)
p=p+1
endf
sa=sa+sb
endf
s=s+sa
?p,s,1/e,sa,sb
endf
?p,s,1/e,sa,sb
得s=528.1819604518955
 楼主| 发表于 2010-3-10 15:11 | 显示全部楼层

在VF语言环境下找出随机产生的m位的偶数所表示为的素数对

50楼计算有误,因把变量c的初始值应为0,结果写为c=1了
“请求计算:
      1
————————,  
(k^n)ln(x/k^n)   
这里 x = 10^21,k = 1.000008,n = 1,2,……,4800000,
极为感谢!”
可用如下程序计算:
CLEAR
CLEAR ALL
SET TALK off
p=0
k=1.000008
a=1
b=21*log(10)
d=log(k)
c=0
s=0
for i=1 to 480
sa=0
FOR j=1 to 100
sb=0
FOR l=1 to 100
a=a*k
c=c+d
e=a*(b-c)
sb=sb+(1/e)
p=p+1
endf
sa=sa+sb
endf
s=s+sa
?p,s,1/e,sa,sb
endf
?p,s,1/e,sa,sb
计算结果应是s=2640.908909113665
而不是 s=2697.937483021609
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-6-23 09:05 , Processed in 0.081331 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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