回答受付が終了しました

質問です。資料や教科書を見てもわからなかったためどうか教えて下さい!!枝のコストを決定する関数も求めます。 ソースコード // 点のx座標とy座標を記憶する配列 int[] ax = new int[]{10

質問です。資料や教科書を見てもわからなかったためどうか教えて下さい!!枝のコストを決定する関数も求めます。 ソースコード // 点のx座標とy座標を記憶する配列 int[] ax = new int[]{10 0, 200, 300, 400, 100, 200, 300, 400, 100, 200, 300, 400, 100, 200, 300, 400}; // 点の x 座標を記憶する配列 int[] ay = new int[]{100, 100, 100, 100, 200, 200, 200, 200, 300, 300, 300, 300, 400, 400, 400, 400};// 点の y 座標を記憶する配列 int[][] NW = new int[16][16]; // 枝のコストを保存する配列(0は繋がっていない枝を表す) int[] S = new int[16]; // 最初に選んだ点と同じ部分集合に 1:含まれる、0:含まない を表す配列 int[][] Tree = new int[16][2]; // どの点と点を繋ぐかを記憶する配列 void setup() { size(500, 500); background(255); decide_weight(); // 枝のコストを決める draw_line(); // グラフの枝を描く draw_ellipse(); // グラフの円を描く draw_text(); // 円の番号を書く draw_weight(); // 枝のコストを書く Prim(); // 最小全域木を求める draw_tree(); // 最小全域木を描く } // 枝を描く関数 void draw_line(){ int i,j; strokeWeight(10); for( i=0; i<16; i++ ){ for( j=0; j<16; j++ ){ if( NW[i][j] != 0 ){ line(ax[i], ay[i], ax[j], ay[j] ); } } } } // 点(円)を描く関数 void draw_ellipse(){ int i; strokeWeight(2); for( i=0; i<16; i++ ){ ellipse( ax[i], ay[i], 50, 50 ); } } // 点番号を書く関数 void draw_text(){ int i; String s; PFont myFont = loadFont("Arial-Black-18.vlw"); textFont(myFont); textAlign(CENTER, CENTER); fill(0); for( i=0; i<16; i++ ){ s = ""+i; text(s, ax[i], ay[i]); } } // エッジの重みを書く関数 void draw_weight(){ int i, j; String s; PFont myFont = loadFont("Arial-Black-24.vlw"); textFont(myFont); textAlign(CENTER, CENTER); fill(255,125,125); for( i=0; i<16; i++ ){ for( j=0; j<16; j++ ){ if( NW[i][j] > 0 ){ s = ""+NW[i][j]; text(s, (ax[i]+ax[j])/2, (ay[i]+ay[j])/2 ); } } } } // 枝のコストを決定する関数 void decide_weight(){ int i,j; // randomSeed(0) の0の部分は,各自の学籍番号の下1桁にします。 // この数値を変えると生成される乱数が変わります。 randomSeed(0); for( i=0; i<16; i++ ){ for( j=0; j<16; j++ ){ NW[i][j] = 0; } } // 横方向の枝 NW[0][1] = NW[1][0] = (int)random(1, 30); NW[1][2] = NW[2][1] = (int)random(1, 30); NW[2][3] = NW[3][2] = (int)random(1, 30); NW[4][5] = NW[5][4] = (int)random(1, 30); NW[5][6] = NW[6][5] = (int)random(1, 30); NW[6][7] = NW[7][6] = (int)random(1, 30); NW[8][9] = NW[9][8] = (int)random(1, 30); NW[9][10] = NW[10][9] = (int)random(1, 30); NW[10][11] = NW[11][10] = (int)random(1, 30); NW[12][13] = NW[13][12] = (int)random(1, 30); NW[13][14] = NW[14][13] = (int)random(1, 30); NW[14][15] = NW[15][14] = (int)random(1, 30); // 縦方向の枝 NW[0][4] = NW[4][0] = (int)random(1, 30); NW[4][8] = NW[8][4] = (int)random(1, 30); NW[8][12] = NW[12][8] = (int)random(1, 30); NW[1][5] = NW[5][1] = (int)random(1, 30); NW[5][9] = NW[9][5] = (int)random(1, 30); NW[9][13] = NW[13][9] = (int)random(1, 30); NW[2][6] = NW[6][2] = (int)random(1, 30); NW[6][10] = NW[10][6] = (int)random(1, 30); NW[10][14] = NW[14][10] = (int)random(1, 30); NW[3][7] = NW[7][3] = (int)random(1, 30); NW[7][11] = NW[11][7] = (int)random(1, 30); NW[11][15] = NW[15][11] = (int)random(1, 30); } // 最小全域木を求める関数 void Prim(){ } // 結果を描く関数 void draw_tree(){ }

Java | プログラミング41閲覧xmlns="http://www.w3.org/2000/svg">500

回答(1件)

0

>プリム法を使って最小全域木を求める こうします Processing 3.5.3についての質問ですプリム法を使って集合 S と,S に含まれ... - Yahoo!知恵袋 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12206851537 Processingでプログラミングを学習しているものです。プリム法を使って最小... - Yahoo!知恵袋 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12228889827