สมมติว่าเรามีถ้วยที่แตกต่างกันสามประเภทในอาร์เรย์ p และจานรองในจำนวนชั้นวางอาร์เรย์ q และ m เราต้องตรวจสอบว่าสามารถจัดถ้วยและชั้นวางได้อย่างเรียบร้อยหรือไม่
เราสามารถพูดได้ว่าการจัดถ้วยและจานรองจะเรียบร้อยหากเป็นไปตามเงื่อนไขเหล่านี้ - 1. ไม่มีชั้นวางใดที่สามารถใส่ทั้งถ้วยและจานรองได้ 2. ตัวเองมีได้ไม่เกิน 5 ถ้วย 3. ตัวเองมีจานรองได้สูงสุด 10 ใบ
ดังนั้น หากอินพุตเท่ากับ p =[4, 3, 7] q =[5, 9, 10] m =11 ผลลัพธ์จะเป็น True เนื่องจากจำนวนถ้วยทั้งหมด =14 จำเป็นต้องมี 3 ชั้นวาง จานรองทั้งหมด =24 ต้องการ 3 ชั้น ดังนั้น ชั้นวางที่ต้องการทั้งหมด =3 + 3 =6 ซึ่งน้อยกว่าจำนวนชั้นวางที่กำหนด m.
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
sum_p :=0, sum_q :=0
-
สำหรับฉันในช่วง 0 ถึงขนาด p ทำ
-
sum_p :=sum_p + p[i]
-
-
สำหรับฉันในช่วง 0 ถึงขนาด q ทำ
-
sum_q :=sum_q + q[i]
-
-
m_p :=(sum_p + 4) / 5
-
m_q :=(sum_q + 9) / 10
-
ถ้า m_p + m_q <=m แล้ว
-
คืนค่า True
-
-
มิฉะนั้น
-
คืนค่าเท็จ
-
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def is_valid(p, q, m): sum_p = 0 sum_q = 0 for i in range(0, len(p)): sum_p += p[i] for i in range(0,len(q)): sum_q += q[i] m_p = (sum_p + 5 - 1) / 5 m_q = (sum_q + 10 - 1) / 10 if(m_p + m_q <= m): return True else: return False p = [4, 3, 7] q = [5, 9, 10] m = 11 print(is_valid(p ,q ,m))
อินพุต
[4, 3, 7], [5, 9, 10], 11
ผลลัพธ์
True