| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 396 人关注过本帖
标题:源码查错
只看楼主 加入收藏
KEVIN1050
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-9-30
收藏
 问题点数:0 回复次数:0 
源码查错

新手,JAVA才学了两天,这个程序怎么看都看不懂哪里出错了,能否帮忙指正一下?

不胜感激!

import java.until.random;
class SequenceAlignment1{
/*

using main with two command line arguments will align the
arguments with minimum cost according to the meassure +1 for
mismatches and indels, 0 for matches.

*/
private string[] character=[ A ,R, N, D, C, Q, E, G, H, I, L, K, M, F, P, S, T, W, Y,V];
private int[][] scores =
/* A R N D C Q E G H I L K M F P S T W Y V */
{ /* A */ { 5 },
/* R */ { -2, 7 },
/* N */ { -1,-1, 7 },
/* D */ { -2,-2, 2, 8 },
/* C */ { -1,-4,-2,-4,13 },
/* Q */ { -1, 1, 0, 0,-3, 7 },
/* E */ { -1, 0, 0, 2,-3, 2, 6 },
/* G */ { 0,-3, 0,-1,-3,-2,-3, 8 },
/* H */ { -2, 0, 1,-1,-3, 1, 0,-2,10 },
/* I */ { -1,-4,-3,-4,-2,-3,-4,-4,-4, 5 },
/* L */ { -2,-3,-4,-4,-2,-2,-3,-4,-3, 2, 5 },
/* K */ { -1, 3, 0,-1,-3, 2, 1,-2, 0,-3,-3, 6 },
/* M */ { -1,-2,-2,-4,-2, 0,-2,-3,-1, 2, 3,-2, 7 },
/* F */ { -3,-3,-4,-5,-2,-4,-3,-4,-1, 0, 1,-4, 0, 8 },
/* P */ { -1,-3,-2,-1,-4,-1,-1,-2,-2,-3,-4,-1,-3,-4,10 },
/* S */ { 1,-1, 1, 0,-1, 0,-1, 0,-1,-3,-3, 0,-2,-3,-1, 5 },
/* T */ { 0,-1, 0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1, 2, 5 },
/* W */ { -3,-3,-4,-5,-5,-1,-3,-3,-3,-3,-2,-3,-1, 1,-4,-4,-3,15 },
/* Y */ { -2,-1,-2,-3,-3,-1,-2,-3, 2,-1,-1,-2, 0, 4,-3,-2,-2, 2, 8 },
/* V */ { 0,-3,-3,-4,-1,-3,-3,-4,-4, 4, 1,-3, 1,-1,-3,-2, 0,-3,-1, 5 }
/* A R N D C Q E G H I L K M F P S T W Y V */
};
int convert(string x)
{ /* A R N D C Q E G H I L K M F P S T W Y V */

int index;
switch(x){
case A: index=0;break;
case R: index=1;break;
case N: index=2;break;
case D: index=3;break;
case C: index=4;break;
case Q: index=5;break;
case E: index=6;break;
case G: index=7;break;
case H: index=8;break;
case I: index=9;break;
case L: index=10;break;
case K: index=11;break;
case M: index=12;break;
case F: index=13;break;
case P: index=14;break;
case S: index=15;break;
case T: index=16;break;
case W: index=17;break;
case Y: index=18;break;
case V: index=19;break;
default:break;
}
return a;
}
int getscore(string a,string b){
int i,j;
i=convert(a);
j=convert(b);
if(score)
score=scores[i][j];
else
score=scores[j][i];
}
public static void main(String[] args){
/*SequenceAlignment1 sa1 = new SequenceAlignment1(string[] cmdLn);
String[] res = sa1.getAlignment();
System.out.println(sa1.getValue());
System.out.println(res[0]);
System.out.println(res[1]);*/

Random generator=new Random();
//int r=generator.nextInt();
for(int j=0;j<cmdLn.length;j++){
int randomIndex=generator.nextInt(19);
string b;
b=character[randomIndex];
}


String xs, ys; // the seqs to be aligned.
int n, m; // their lengths.
int[][] M; // the matrix used to compute the optimal values
Coord[][] traceback;

public SequenceAlignment1(String a, String b){
xs = a;
ys = b;
n = a.length();
m = b.length();
M = new int[n+1][m+1];

traceback = new Coord[n+1][m+1];

for(int i = 1; i<=n; i++){
M[i][0] = i*(-8);
traceback[i][0]=new Coord(i-1,0);
}

for(int j = 1; j<=m; j++){
M[0][j] = j*(-8);
traceback[0][j]=new Coord(0,j-1);
}

for(int i = 1; i<=n; i++)
for(int j = 1; j<=m; j++){
M[i][j] = max(M[i-1][j-1]+d(xs.charAt(i-1),ys.charAt(j-1)),
M[i-1][j]-8,
M[i][j-1]-8);
if(M[i][j] == M[i-1][j-1]+d(xs.charAt(i-1),ys.charAt(j-1)))
traceback[i][j] = new Coord(i-1,j-1);
else if (M[i][j]==M[i-1][j]-8)
traceback[i][j] = new Coord(i-1,j);
else traceback[i][j] = new Coord(i,j-1);
}
}

public int getValue(){return M[n][m];}


public String[] getAlignment(){
Coord tb = new Coord(n,m);
StringBuffer res1 = new StringBuffer();
StringBuffer res2 = new StringBuffer();
int i = tb.i;
int j = tb.j;
tb=traceback[n][m];
while(tb!=null){
if(i==tb.i)res1.append('-');
else res1.append(xs.charAt(i-1));
if(j==tb.j)res2.append('-');
else res2.append(ys.charAt(j-1));
i=tb.i;
j=tb.j;
tb = traceback[i][j];
}
String[] res = {res1.reverse().toString(),res2.reverse().toString()};
return res;
}

private static final int min(int a, int b, int c){
return Math.min(a,Math.min(b,c));
}

private static final int max(int a, int b, int c){
return Math.max(a,Math.max(b,c));
}

// The distance function:
private static final int d(char a, char b){
return a==b?0:1;
}


}

class Coord{
int i, j;
Coord(int x, int y){
i=x;j=y;
}
}


搜索更多相关主题的帖子: 源码 
2007-09-30 23:09
快速回复:源码查错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051659 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved