請前輩學長學姐同學們批評指正!
這個是題目:
有向圖d如圖所示,求:……
下面這個是網上的解答:
下面是第一種方法的執行結果:
第一種實現方法**:(這種方法是直接找,使用了多重迴圈和判斷,**又臭又長,但是思想還是比較簡單的,哈哈哈,然後女朋友說他們班有人寫的更好,所以看了下,然後又從網上看了下上面這個圖,我感覺第二種方法比較好,所以也自己實現了下。)
#include int main(int argc, const char * argv)
;
//(1). v2到v5長度為1,2,3,4的通路數
int len1[5] = ;
int i1=2;
printf("(1)\n");
while(i1)}}
}}}}
}}}for(int t=1;t<5;t++)
printf("v2->v5 長度為 %d 的通路有 %d 個\n",t,len1[t]);
i1=0;
}//(2). v5到v5長度為1,2,3,4的回路數
int i2=5;
int len2[5]=;
printf("(2)\n");
while(i2)}}
}}}}
}}}}
i2=0;
for(int t=1;t<5;t++)
printf("v5->v5 長度為 %d 的迴路有 %d 個\n",t,len2[t]);
}//(3)d中長度為4的通路數(含回路數)
printf("(3)\n");
int len_4=0;
for(int i3=1;i3<=5;i3++)}}
}}}}
}}printf("d中長度=4的通路數(含回路數)有 %d 個\n",len_4);
// (4) d中長度<=4的回路數
printf("(4)\n");
int len4[5]=;
for(int i4=1;i4<=5;i4++)}}
}}}}
}}}}
}len4[0]=len4[1]+len4[2]+len4[3]+len4[4];
printf("d中長度<=4的回路數有 %d 個\n",len4[0]);
//(5)寫出d的可達矩陣
int a1[6][6] =;
printf("(5)\n");
for(int t=1;t<=5;t++)
for(int i5=1;i5<=5;i5++)}}
}}}}
}printf("d的可達矩陣:\n");
for(int t1=1;t1<=5;t1++)
printf("\n");
}return 0;
}
下面是第二種方法的執行結果:
下面是第二種實現方法的**:
//
// main.c
// 離散實驗3 第二種解法
//// created by hanoi_ahoj on 2018/6/21.
//#include int main(int argc, const char * argv) ;
int aa[6][6]=; //a^2 = a * a
int aaa[6][6]=; //a^3 = a^2 * a
int aaaa[6][6]=; //a^4 = a^3 * a
// aa
for(int i=1;i<6;i++)}}
// aaa
for(int i=1;i<6;i++)}}
// aaaa
for(int i=1;i<6;i++)}}
/*printf("a^2:\n");
for(int i=1;i<6;i++)
printf("\n");
}printf("a^3:\n");
for(int i=1;i<6;i++)
printf("\n");
}printf("a^4:\n");
for(int i=1;i<6;i++)
printf("\n");
}*///(1).
printf("(1).v2->v5長度為1,2,3,4的通路數有%d,%d,%d,%d個\n",a[2][5],aa[2][5],aaa[2][5],aaaa[2][5]);
//(2).
printf("v5->v5長度為1,2,3,4的通路數有%d,%d,%d,%d個\n",a[5][5],aa[5][5],aaa[5][5],aaaa[5][5]);
//(3).
int cnt3=0;
for(int i=1;i<6;i++)
}printf("(3).d中長度為4的通路(含迴路)有 %d 條\n",cnt3);
//(4).
int cnt4=0;
for(int i=1;i<6;i++)
cnt4+=aaa[i][i];
printf("(4).d中長度小於或等於4的迴路有 %d 條\n",cnt4);
//(5).
printf("(5).\n");
for(int i=1;i<6;i++)
printf("\n");
}return 0;
}
寫在後面:
總的來說兩種方法的難度都是差不多的。都不難。這是第一篇部落格,加油!
求知若飢,虛心若愚。
離散數學 求主正規化
輸入 命題公式的合式公式 輸出 公式的主析取正規化和主析取正規化,輸出形式為 mi mj mi mj 極小項和 符號之間有乙個空格,極大項和 符號之間有乙個空格 主析取正規化和主合取正規化之間用 隔開,前後各有乙個空格。永真式的主合取正規化為 1 永假式的主析取正規化為 0 輸入公式的符號說明 非,...
離散數學 求排列的逆序數
問題描述 3 2 5 1 4 中,3,2 3,1 2,1 5,1 5,4 是其5個逆序。輸入 第一行是乙個整數n,表示該排列有n個數 n 100000 第二行是n個不同的正整數,之間以空格隔開,表示該排列。輸出 輸出該排列的逆序數。樣例輸入 3 2 5 1 4 樣例輸出 限時一秒 思路 利用二分歸併...
離散數學 求命題公式的主正規化
實現功能 輸入命題公式的合式公式,求出公式的真值表,並輸出該公式的主合取正規化和主析取正規化。輸入 命題公式的合式公式 輸出 公式的主析取正規化和主析取正規化,輸出形式為 mi mj mi mj 極小項和 符號之間有乙個空格,極大項和 符號之間有乙個空格 主析取正規化和主合取正規化之間用 隔開,前後...