package cn.juanjuan.jisuanzhineng;
import java.util.Scanner;
import java.lang.String;
import java.lang.Integer;
public class Main {
static int cal(int n,double w[][],double e[],int v[])
{
int i,count=0;
int k[];
k=new int[n];
k=v;
double m[];
m=new double[n];
for(i=0;i
{
for(int j=0;j
{
m[i]+=(w[i][j]*k[j]);
}
m[i]-=e[i];
if(m[i]>0)
m[i]=1;
else {
m[i]=0;
}
}
for(i=0;i
{
if(m[i]==v[i])
{
count++;
}
}
if(count==n)
return 1;
else
return 0;
}
static int pow1(int x,int y,int z)
{
z=x;
for(int i=0;i
{
z*=x;
}
return z;
}
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
System.out.print("请输入节点个数:");
int n=cin.nextInt();
double w[][];
w=new double[n][n];
System.out.print("请输入w矩阵:");
for(int i=0;i
for(int j=0;j
{
w[i][j]=cin.nextDouble();
}
System.out.print("请输入初始状态:");
int v[] ;
v=new int[n];
for(int i=0;i
{
v[i]=cin.nextInt();
}
System.out.println("请输入阈值:");
double e[];
e=new double[n];
for(int i=0;i
{
e[i]=cin.nextDouble();
}
int z=0;
String s;
char a;
int m[];
m=new int[n];
int flag1=0;
z=pow1(2, n, z);
System.out.println(z);
for(int i=0;i
{
flag1=0;
for(int k=0;k
m[k]=0;
s=Integer.toBinaryString(i) ;
int l=s.length();
for(int j=0;j
{
a=s.charAt(j);
m[n-(l-j-1)-1]=(int)(a-48);
}
flag1=cal(n, w, e, m);
if(flag1==1)
{
System.out.print("稳定状态: ");
for(int k=0;k
System.out.print(m[k]);
System.out.println();
}
}
}
}