В настоящее время я пытаюсь закодировать проект сворачивания белка в c.
Где мне дадут строку 3-4 длины, скажем, BWB или BBWW ...
Я должен сохранить эту строку в 2-D массиве и распечатать все возможные комбинации с этой строкой.
если длина строки равна n, длина матрицы равна 2n. и я храню 1-й элемент в центре массива.
То, что я до сих пор пробовал, таково:
Я могу вывести число конформаций конкретного ввода - скажем, для 3-буквенной строки будет сгенерировано 12 комбинаций ... для 4 сгенерировано 36 комбинаций ... как это ..
так что моя 1-я буква будет в центре матрицы, затем второе слово может быть в любой позиции - вверху, слева, справа, внизу этой ... и в зависимости от этой второй трети может быть сверху, справа слева или любые 3 комбинации…
* Всего 1008 * у меня будет 12 комбинаций ..
Я пробовал много вещей до сих пор ... и все, что я пытался это
#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
Любая помощь будет оценена!