Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อสร้างกราฟสุ่มโดยวิธีการสุ่มขอบ


ในโปรแกรมนี้ กราฟสุ่มจะถูกสร้างขึ้นสำหรับจุดยอดและขอบแบบสุ่ม ความซับซ้อนของเวลาของโปรแกรมนี้คือ O(v*e) โดยที่ v คือจำนวนจุดยอด และ e คือจำนวนขอบ

อัลกอริทึม

เริ่มต้นพัฒนาฟังก์ชัน GenRandomGraphs() โดย 'e' เป็นจำนวนขอบและ 'v' เป็นจำนวนจุดยอดในรายการอาร์กิวเมนต์ กำหนดค่าสุ่มให้กับจำนวนจุดยอดและขอบของกราฟ โดยใช้ฟังก์ชัน rand() พิมพ์จุดเชื่อมต่อของแต่ละจุดโดยไม่คำนึงถึงทิศทาง พิมพ์ “จุดยอดที่แยกออกมา” สำหรับจุดยอดที่ไม่มีองศาสิ้นสุด

ตัวอย่าง

#include#includeใช้เนมสเปซ std;void GenRandomGraphs (int NOEdge, int NOVertex) { int i, j, edge [NOEdge][2] นับ; ผม =0; //กำหนดค่าสุ่มให้กับจำนวนจุดยอดและขอบของกราฟ โดยใช้ rand() ในขณะที่ (i  { "; for(j =0; j  

ผลลัพธ์

การสร้างกราฟแบบสุ่ม:กราฟมีจุดยอด 8 จุด และมีขอบ 18 จุด กราฟสุ่มที่สร้างขึ้นคือ:1-> { 5 4 2 } 2-> { 4 8 6 3 1 5 } 3-> { 5 4 7 2 } 4-> { 2 3 7 1 8 5 } 5-> { 3 1 7 4 2 8 } 6-> { 2 8 7 } 7-> { 4 3 5 6 } 8-> { 2 6 4 5 }