ปัญหาเป้ใน Excel VBA
ด้านล่างเราจะดูที่โปรแกรมมา Excel VBA ที่ แก้ ตัวอย่างเล็ก ๆ ของ a ปัญหาเป้.
ความหมาย: กำหนดชุดของแต่ละรายการที่มีน้ำหนักและค่ากำหนดรายการที่จะรวมไว้ในคอลเล็กชันเพื่อให้มูลค่ารวมมีขนาดใหญ่ที่สุดและน้ำหนักรวมน้อยกว่าขีด จำกัด ที่กำหนด มันเกิดขึ้นจากชื่อของปัญหาที่คนที่ถูก จำกัด โดยกระเป๋าเป้สะพายหลังคงที่และต้องกรอกข้อมูลกับรายการที่มีประโยชน์มากที่สุด
ตัวอย่าง: 5 รายการที่มีน้ำหนักค่าและขีด จำกัด ตามที่กำหนด
ใน Excel ปัญหานี้มีลักษณะดังนี้:
1. ขั้นแรกเราจะประกาศตัวแปร 5 ประเภทคือ Double with names limits, weight, value, totalWeight และ maximumValue
2. จากนั้นเราจะประกาศตัวแปรห้าประเภท Integer ด้วยชื่อ i, j, k, l, m
3. เราเริ่มต้นตัวแปรสองตัวแปร เราเริ่มต้นตัวแปร จำกัด ด้วยค่าของเซลล์ D6 เราเริ่มต้นตัวแปร maxValue ด้วยค่า 0
maximumValue = 0
4. ต่อไปเราจะตรวจสอบแต่ละวิธีที่เป็นไปได้ เราสามารถรวมรายการ (1) หรือปล่อยทิ้งไว้ (0) เราเริ่มต้น 5 สำหรับลูปถัดไป หนึ่งสำหรับแต่ละรายการ
For j = 0 To 1
For k = 0 To 1
For l = 0 To 1
For m = 0 To 1
5. เราคำนวณน้ำหนักและค่าของสารละลายที่เป็นไปได้
value = 4 * i + 2 * j + 2 * k + 1 * l + 10 * m
6. เฉพาะในกรณีที่ค่ามากกว่าค่าสูงสุดและน้ำหนักต่ำกว่าขีด จำกัด เราพบทางเลือกใหม่ที่ดีกว่า
7. ถ้าเป็นจริงเราจะเขียนคำตอบใหม่ที่แถว 4 น้ำหนักเป็น TotalWeight และค่าเป็น maximumValue
Range("C4").value = j
Range("D4").value = k
Range("E4").value = l
Range("F4").value = m
totalWeight = weight
maximumValue = value
8. อย่าลืมปิดคำสั่ง if
อย่าลืมปิด 5 สำหรับลูปถัดไป
Next l
Next k
Next j
Next i
Excel VBA ตรวจสอบแต่ละทางออกที่เป็นไปได้ด้วยวิธีนี้และด้วยเหตุนี้ทางออกที่ดีที่สุดจะปรากฏในแถวที่ 4 โปรดจำไว้ว่า 1 หมายความว่าเราใส่รายการไว้ด้วยซึ่งหมายความว่าเราทิ้งมันไว้
10. เขียน TotalWeight และ MaximumValue ของสารละลายที่ดีที่สุดให้เซลล์ B6 และ B8 ตามลำดับ
Range("B8").value = maximumValue
11. ทดสอบโปรแกรม
ผล:
สรุปได้ว่าควรรวมสี่รายการสุดท้ายที่มีค่าสูงสุด 15 ค่านี้มีน้ำหนักรวม 2 + 1 + 1 + 4 = 8 ไม่เกินขีด จำกัด 15
หมายเหตุ: โดยการทำตัวแปรน้ำหนักและค่าคุณสามารถแก้ปัญหาใด ๆ ของเป้ที่มีขนาดนี้ (ดูไฟล์ Excel ที่สามารถดาวน์โหลดได้)