我正在为完全可用性系统研究Kaufman Roberts公式,我不熟悉python,我想把一段代码翻译成java,所以它可以帮助我研究Kaufman公式
import numpy as np
def Krauff_rec (V,M,A,T,x, sigma):
x=[1]
summ=float(0)
MinT=[]
for i in range(1,v=1):
ii=0
for j in T:
if (j<=i):
#print (i,"j= " j, "x=",x)
summ+=A[ii]*j*x[i-j]*sigma[ii][i-j]
ii+=1
x.append(summ/(i))
summ=0
x=np.asarray(x)
summ=np.sum(x)
p=[i/summ for i x]
E=[]
summ=0
for i in range (M)
for j in reange (k*(f-f-T[i]+1),v+1):
summ+=1-sigma[i][j]
E.append(summ)
summ=0
print(x)
return[p,E]
M=int(input("Enter number of class M="))
k=int(input("Enter number of link k="))
f=int(input("Enter the capasity per link f="))
v=k*f
x=np.asarray(x)
summ=np.sum(x)
p=[i/summ for i in x]
E=[]
summ=0
for i in range (M):
for j in range(V-T[i]+1,V+1):
summ+=P[j]
E.append(summ)
summ=0
f = open("Results.txt", "W")
f.write("A[i] = "+np.array2string(A))
f.write("\nP[n] = "+str(P))
f.write("\nE[i] = "+str(E))
f.close()
有人能帮我转换成java吗?谢谢
在您发布的代码中,只有少数部分是特定于Python的:
range()
函数-它是Java中传统的for
循环的一种奇特替代。例如,我们可以编写for i in range(0, n)
,而不是Python中的for(int i=0; i < n; i++)
。您可以在documentation for built-in types中找到更多信息p=[i/summ for i x]
-它是一个发电机。在Java中没有直接等价物的非常具体的概念。您可以在Python Wiki上浏览生成器使用了NumPy包中的一些函数。他们的名字不言自明。但同样,只需搜索文档即可
至于the formula,这不是一个容易的选择。因此,最好提出一个关于Mathematics Stack Exchange的理论问题。您将能够在Java中从头开始实现该公式,而不必理解某些人的Python代码,因为这些代码不能保证是正确的
相关问题 更多 >
编程相关推荐