主题:帮忙改一下程序
import java.awt.*;
import java.util.*;
import java.io.*;
import java.util.Random;
import java.math.*;
//变量说明
/*Suv:结点U与V交易成功次数,Siv:任一结点与V交易成功次数,
Fuv:结点U与V交易失败次数,Guv:全局信任度,Dx:反馈评价偏移度,K:交易次数
Luv:局部信任度,Rxv:任一结点的反馈信任度,Tv:推荐信任度,Cr:反馈推荐可信度,
Wu:节点U参考自身历史经验的平衡权重*/
public class DHT
{
int Suv,Siv,Fuv,Guv,Dx,K;
int s=2,beta=2,i=0,j=0;
double Luv,Rxv,Tv,Cr,Wu;
double alpha=0.8;
public static void main(String args[]) throws IOException
{
System.out.println("Please Input Iuv",+Iuv);
}
class Array//定义三个节点
{
public void main(String[] args) throws IOException
{
int[] node_id;
node_id = new int[3];
node_id [1] = 1;
node_id [2] = 2;
node_id [3] = 3;
}
}
void compute()
{
Luv = Suv / Iuv;
Fuv = Iuv - Suv;
Rxv = (Sxv - Fxv) / Siv;
dux = dx;
Cr = 1 - dx^0.5;
Tv = Rxv * Cr;
Wu = 1 - 0.8^(K/2);
Guv = Wu*Luv+(1-Wu) * Tv;
}
class node_require_table//请求交易节点的数据结构表
{
public void main(String[] args) throws IOException
{
String Dx1 = node_id;
double Sus1=0.5,Fus1=0.5;
int Kus1=20;
}
}
class node_doc_table//作为档案节点时的数据结构表
{
public void main(String[] args) throws IOException
{
String Df1 = node_id[2];
int Sf1v=10,Ff1v=10;
}
}
void GenerateRandomStr()//随机生成一个0,1值,0代表交易失败,1代表交易成功
{
String randStr = "01";
StringBuffer generateRandStr=new StringBuffer();
Random rand = new Random();
int randStrLength = 1;
for (int i = 0; i < randStrLength; i++)
{
int randNum = rand.nextInt(25);
generateRandStr.append(randStr.substring(randNum,randNum+1));
}
System.out.println(generateRandStr);
}
void EvalTrans()//做交易
{
}
void Update()//更新本地数据表
{
}
class BinarySearch//在本地数据表中查找Cr
{
public void main(String [] args)
{
double[] L={0.4,0.5,0.6};
System.out.println(binarySearch(L,3));
}
public int binarySearch(int [] L,int key)
{
int first=0;
int last=L.length-1;
int mid;
while(first<=last)
{
mid=(first+last)/2;
if(L[mid]==key)
return mid;
if(L[mid]>key)
last=mid-1;
if(L[mid]<key)
first=mid+1;
}
return -1;
}
void GenerateRandomStr() //随机选取一个结点
{
String randStr = "123";
StringBuffer generateRandStr=new StringBuffer();
Random rand = new Random();
int randStrLength = 1;
for (int i = 0; i < randStrLength; i++)
{
int randNum = rand.nextInt(25);
generateRandStr.append(randStr.substring(randNum,randNum+1));
}
System.out.println(generateRandStr);
}
if( Luv>=0.4)//与允许交易的最低值做比较
{
u.EvalTrans();
u.Update();
}
else
BinarySearch(node_require_table)
if(1)
{
Tv = Rxv * Cr;
Guv = Wu*Luv+(1-Wu) * Tv;
if(Guv>0.4)
{
u.EvalTrans();
u.Update();
}
else
BinarySearch(node_require_table)
dux = dx;
Cr = 1 - dx^0.5;
if(1)
Tv = Rxv * Cr;
Guv = Wu*Luv+(1-Wu) * Tv;
if(Guv>0.4)
{
u.EvalTrans();
u.Update();
}
else
return Random(node_id[]);
}
}
这是我写的一个关于信任计算的一个程序,有很多错误,实在是不会改了,让各位高手帮忙改一下。
附上流程图以及相关文献(流程图在文章的第四页,算法在文章的第三页)
import java.util.*;
import java.io.*;
import java.util.Random;
import java.math.*;
//变量说明
/*Suv:结点U与V交易成功次数,Siv:任一结点与V交易成功次数,
Fuv:结点U与V交易失败次数,Guv:全局信任度,Dx:反馈评价偏移度,K:交易次数
Luv:局部信任度,Rxv:任一结点的反馈信任度,Tv:推荐信任度,Cr:反馈推荐可信度,
Wu:节点U参考自身历史经验的平衡权重*/
public class DHT
{
int Suv,Siv,Fuv,Guv,Dx,K;
int s=2,beta=2,i=0,j=0;
double Luv,Rxv,Tv,Cr,Wu;
double alpha=0.8;
public static void main(String args[]) throws IOException
{
System.out.println("Please Input Iuv",+Iuv);
}
class Array//定义三个节点
{
public void main(String[] args) throws IOException
{
int[] node_id;
node_id = new int[3];
node_id [1] = 1;
node_id [2] = 2;
node_id [3] = 3;
}
}
void compute()
{
Luv = Suv / Iuv;
Fuv = Iuv - Suv;
Rxv = (Sxv - Fxv) / Siv;
dux = dx;
Cr = 1 - dx^0.5;
Tv = Rxv * Cr;
Wu = 1 - 0.8^(K/2);
Guv = Wu*Luv+(1-Wu) * Tv;
}
class node_require_table//请求交易节点的数据结构表
{
public void main(String[] args) throws IOException
{
String Dx1 = node_id;
double Sus1=0.5,Fus1=0.5;
int Kus1=20;
}
}
class node_doc_table//作为档案节点时的数据结构表
{
public void main(String[] args) throws IOException
{
String Df1 = node_id[2];
int Sf1v=10,Ff1v=10;
}
}
void GenerateRandomStr()//随机生成一个0,1值,0代表交易失败,1代表交易成功
{
String randStr = "01";
StringBuffer generateRandStr=new StringBuffer();
Random rand = new Random();
int randStrLength = 1;
for (int i = 0; i < randStrLength; i++)
{
int randNum = rand.nextInt(25);
generateRandStr.append(randStr.substring(randNum,randNum+1));
}
System.out.println(generateRandStr);
}
void EvalTrans()//做交易
{
}
void Update()//更新本地数据表
{
}
class BinarySearch//在本地数据表中查找Cr
{
public void main(String [] args)
{
double[] L={0.4,0.5,0.6};
System.out.println(binarySearch(L,3));
}
public int binarySearch(int [] L,int key)
{
int first=0;
int last=L.length-1;
int mid;
while(first<=last)
{
mid=(first+last)/2;
if(L[mid]==key)
return mid;
if(L[mid]>key)
last=mid-1;
if(L[mid]<key)
first=mid+1;
}
return -1;
}
void GenerateRandomStr() //随机选取一个结点
{
String randStr = "123";
StringBuffer generateRandStr=new StringBuffer();
Random rand = new Random();
int randStrLength = 1;
for (int i = 0; i < randStrLength; i++)
{
int randNum = rand.nextInt(25);
generateRandStr.append(randStr.substring(randNum,randNum+1));
}
System.out.println(generateRandStr);
}
if( Luv>=0.4)//与允许交易的最低值做比较
{
u.EvalTrans();
u.Update();
}
else
BinarySearch(node_require_table)
if(1)
{
Tv = Rxv * Cr;
Guv = Wu*Luv+(1-Wu) * Tv;
if(Guv>0.4)
{
u.EvalTrans();
u.Update();
}
else
BinarySearch(node_require_table)
dux = dx;
Cr = 1 - dx^0.5;
if(1)
Tv = Rxv * Cr;
Guv = Wu*Luv+(1-Wu) * Tv;
if(Guv>0.4)
{
u.EvalTrans();
u.Update();
}
else
return Random(node_id[]);
}
}
这是我写的一个关于信任计算的一个程序,有很多错误,实在是不会改了,让各位高手帮忙改一下。
附上流程图以及相关文献(流程图在文章的第四页,算法在文章的第三页)