La coloración del gráfico tiene 4 vértices. Se dan tres colores. ¿Cómo colorear los 4 vértices? ¿Cuántos métodos de coloración existen para que los vértices con relaciones de bordes conectados tengan diferentes colores?
Instrucciones de diseño:
1 Los cuatro vértices están representados por 0,1,2,3 y los tres colores están representados por A, B y C.
2 Resultado de salida 0 - ABAC, lo que indica que el esquema de coloración desde el vértice 0 hasta las direcciones 1, 2 y 3 es 0-A, 1-B, 2-A, 3-C. Hay aristas conectadas pero los vértices son de diferentes colores.
3 Utilice el carácter c[4][5]={{'A','B','A','C','\0'},{'B','A' ,'B','C','\0'},{'C','A','C','B','\0'}};
Primero proporcione la conexión Hay tres soluciones básicas con diferentes colores de borde para simplificar el problema.
4 Utilice un bucle triple para simular los tres eventos de determinar el primer punto, generar el esquema y cambiar el esquema de color.
5 Utilice
t=c[i][i];c[i][i]=c[i][(i+1)%4];c[ i][(i+1)%4]=c[i][(i+2)%4];c[i][(i+2)%4]=c[i][(i+3) %4];c[i][(i+3)%4]=t;
Implemente la conversión ABAC-->BACA, resolviendo inteligentemente el problema algorítmico de 'conectar bordes con diferentes colores'.
El programa es el siguiente:
#include
main(void)
{
int i,j,k,n=0;
char c[4][5]={{'A','B','A','C','\ 0'} ,{'B','A','B','C','\0'},{'C','A','C','B','\0'}} ; p>
char t;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
for(k=0;k<4;k++)
{ printf("%d -- %s\t",k,c [i] ); /*(k+3)%4,c[(k+3)%4]);*/
n++; n") ;
t=c[i][i];c[i][i]=c[i][(i+1)%4];c[i][(i +1) %4]=c[i][(i+2)%4];c[i][(i+2)%4]=c[i][(i+3)%4];c [i] [(i+3)%4]=t;
}
printf("\n total = %d",n);
getchar( );
}