實(shí)驗(yàn)源代碼
//Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("請輸入矩陣第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可傳遞閉包關(guān)系矩陣是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元關(guān)系的可傳遞閉包\n"); void warshall(int,int); int k , n; printf("請輸入矩陣的行數(shù) i: "); scanf("%d",&k);
四川大學(xué)實(shí)驗(yàn)報(bào)告 printf("請輸入矩陣的列數(shù) j: "); scanf("%d",&n); warshall(k,n); }
標(biāo)簽:
warshall
離散
實(shí)驗(yàn)
上傳時(shí)間:
2016-06-27
上傳用戶:梁雪文以
四柱漢諾塔問題的求解程序.解題思路:如a,b,c,d四柱. 要把a(bǔ)柱第n個(gè)盤移到目標(biāo)柱子(d柱),先把上層
分兩為兩部份,上半部份移到b柱,下半部分移到c柱,再把第n盤移到
目標(biāo)柱子,然后,c柱盤子再移到目標(biāo)柱子,再把b柱盤子移到目標(biāo)柱子.
細(xì)節(jié)地方:
上半部份移到b柱時(shí),它的中間變量柱子是有二選一的.而下半部分
移到c柱時(shí),它的中間變量柱子只有一個(gè)(因?yàn)橐粋€(gè)柱子已被上半部份
占了).b,c也移到目標(biāo)柱子時(shí)同理。
標(biāo)簽:
分
漢
程序
上傳時(shí)間:
2013-12-22
上傳用戶:aeiouetla