เขียนตอบแต่ละข้อเริ่มด้วยเลขข้อในรูปแบบ <เลขข้อ>
<1> พิมพ์คำตอบโปรแกรมข้อที่ 1 ... ...
<1> |
เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี - key 'shape' ที่มี value เป็น tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์ - key 'data' ที่มี value เป็น dict ที่มี - key เป็นเลขแถว - value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 1 - คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์ เช่น ตาราง 0000000 0001001 0111110 0000000 0000100 0000000 เก็บด้วย dict { 'shape': (6,7), 'data': { 0: [], 1: [3,6], 2: [3,1,2,4,5], 4: [4] } } ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 1 เลย อาจมีหรือไม่มีเลขแถวใน dict ก็ได้ จงเขียนฟังก์ชัน f(x) - รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น - คืน tuple (i,j) ที่ - i น้อยกว่า j - i กับ j เป็นเลขแถวของคู่แถวที่เมื่อรวมพิจารณา ทั้งสองแถวจะมีจำนวน 1 มากสุด - ถ้ามี 1 ที่คอลัมน์เดียวกันทั้งสองแถว ให้คิดตัวเดียวในคอลัมน์นั้น - ถ้ามีมากสุดหลายคู่แถว ก็คืนสัก 1 คู่ เช่น ตาราง 01000 10010 01100 00000 แทนด้วย x = { 'shape': (4,5), 'data' : {0:[1], 1:[0,3], 2:[1,2]} } คำสั่ง f(x) จะคืน (1, 2) |