現在、私はタンパク質フォールディングプロジェクトをcでコード化しようとしています。 ここで私は3-4の長さの文字列を与えられ、BWBまたはBBWWと言うことができます。 この文字列を2次元配列に格納し、この文字列で可能なすべての組み合わせを出力する必要があります。2次元配列の文字列の様々なコンホメーションを出力します
文字列の長さがnの場合、行列の長さは2nです。私は最初の要素を配列の中心に格納しています。
私はこれまでに次のようにしています: 特定の入力の立体構造の数を出力することができます.3つの文字列に対して12の組み合わせを生成します.4の場合、36の組み合わせが生成されます。このように..
私の第1文字は行列の中央にあります。次に、2番目の単語は、この1つの上、左、右のいずれかの位置にあります。この2番目の1/3
..私は12個の組み合わせを持っているでしょう合計で
...右、3つの組み合わせを左または任意の、一番上にすることができ、私はTRを持っています今までのIED多くのものは...と何でも私が試した私が取得しています
#include<string.h>
#include<math.h>
#include<stdio.h>
main()
{
int n=3;
//printf("enter the number of inputs:\t");
//scanf("%d",&n);
int i=4;
int temp=pow((i-1),(n-2));
int comb=i*temp;
//printf("total number of combination is : %d",comb);
char str[3]="ABC";
int size=2*n;
int p;
char mat[size][size];
int j,k;
int a=size/2;
int b=size/2;
for(j=0;j<size;j++)
{
for(k=0;k<size;k++)
{
mat[j][k]='*';
}
}
mat[a][b]=str[0];
int q;
int r;
for(r=1;r<3;r++)
{
for(q=1;q<=4;q++)
{
switch(q)
{
case 1:a=a+1;
break;
case 2:a=a-1;
break;
case 3:b=b+1;
break;
case 4:b=b-1;
break;
}
mat[a][b]=str[r];
}
}
for(p=0;p<comb;p++)
{
for(j=0;j<size;j++)
{
for(k=0;k<size;k++)
{
printf("%c",mat[j][k]);
}
printf("\n");
}
printf("\n");
}
printf("total number of combination is : %d",comb);
}
出力は、任意の助けが理解されるであろう
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
******
******
******
***CC*
***C**
******
total number of combination is : 12
です!
"組み合わせ"について説明できますか?入力文字列の*置換*を作成しようとしていますか? –