หัวข้อที่สำคัญมากมายในพีชคณิตนามธรรมเกี่ยวข้องกับฟังก์ชั่นไบนารีที่ทำหน้าที่ในชุด จำนวนคุณสมบัติของฟังก์ชั่นดังกล่าวได้ถูกกำหนดไว้ในการตรวจสอบหัวข้อดังกล่าว
ความท้าทายของคุณคือการพิจารณาว่าฟังก์ชั่นไบนารีที่กำหนดในโดเมนที่กำหนดมีคุณสมบัติห้าประการเหล่านี้หรือไม่
คุณสมบัติ
ฟังก์ชั่นไบนารีปิดถ้าทุกผลลัพธ์ที่เป็นไปได้อยู่ในโดเมน
ฟังก์ชั่นไบนารีคือการเชื่อมโยงถ้าลำดับที่ฟังก์ชั่นที่ใช้กับชุดของอินพุตไม่ส่งผลกระทบต่อผล นั่นคือ$
เป็นแบบเชื่อมโยงถ้าเสมอเท่ากับ(a $ b) $ c
a $ (b $ c)
โปรดทราบว่าเนื่องจากใช้ค่า(a $ b)
เป็นอินพุตฟังก์ชันการเชื่อมโยงต้องถูกปิด
ฟังก์ชั่นไบนารีคือสับเปลี่ยนหากการเปลี่ยนลำดับของอินพุตไม่เปลี่ยนผลลัพธ์ ในคำอื่น ๆ ถ้าเสมอเท่ากับa $ b
b $ a
ฟังก์ชั่นไบนารีมีองค์ประกอบตัวตนหากมีองค์ประกอบบางอย่างe
ในโดเมนเช่นนั้นa $ e = a = e $ a
สำหรับทุกคนa
ในโดเมน
ฟังก์ชั่นไบนารีคือ idempotent ถ้าใช้กับสองอินพุตเหมือนกันให้หมายเลขนั้นเป็นเอาท์พุท ในคำอื่น ๆ ถ้าa $ a = a
สำหรับทั้งหมดa
ในโดเมน
อินพุต
คุณจะได้รับฟังก์ชั่นในรูปแบบของเมทริกซ์และโดเมนของฟังก์ชันจะเป็นตัวเลข0 ... n-1
ที่n
ความยาวด้านของเมทริกซ์อยู่
ค่า(a $ b)
จะถูกเข้ารหัสในเมทริกซ์เป็นองค์ประกอบที่a
สองของแถวที่ b
ถ้าเมทริกซ์อินพุทนั้นเป็นQ
เช่นนั้นa $ b
=Q[a][b]
ตัวอย่างเช่นฟังก์ชันการยกกำลัง ( **
ใน Python) บนโดเมน[0, 1, 2]
นั้นถูกเข้ารหัสดังนี้:
[[1, 0, 0]
[1, 1, 1]
[1, 2, 4]]
โดเมนด้านซ้ายและขวาเหมือนกันดังนั้นเมทริกซ์จะเป็นสี่เหลี่ยมจัตุรัสเสมอ
คุณสามารถใช้รูปแบบเมทริกซ์ที่สะดวกใด ๆ เป็นอินพุตเช่นรายการลิสต์รายการเดี่ยวในลำดับแถวหรือคอลัมน์หลักวัตถุเมทริกซ์ดั้งเดิมของภาษา ฯลฯ อย่างไรก็ตามคุณอาจไม่ได้ใช้ฟังก์ชันเป็นอินพุตโดยตรง
เพื่อความง่ายรายการเมทริกซ์ทั้งหมดจะเป็นจำนวนเต็ม คุณอาจคิดว่ามันพอดีกับประเภทจำนวนเต็มในภาษาของคุณ
เอาท์พุต
คุณอาจระบุว่าคุณสมบัติใดข้างต้นมีอยู่ในรูปแบบใด ๆ ที่คุณเลือกรวมถึงรายการบูลีนสตริงที่มีอักขระที่แตกต่างกันสำหรับแต่ละคุณสมบัติเป็นต้นอย่างไรก็ตามจะต้องมีเอาต์พุตที่ไม่ซ้ำกันและแตกต่างกันสำหรับ 24 เซ็ตย่อยแต่ละชุด ของคุณสมบัติ เอาต์พุตนี้ต้องสามารถอ่านได้อย่างง่ายดายโดยมนุษย์
ตัวอย่าง
ฟังก์ชั่นสูงสุดในโดเมน n = 4:
[[0, 1, 2, 3]
[1, 1, 2, 3]
[2, 2, 2, 3]
[3, 3, 3, 3]]
ฟังก์ชั่นนี้มีคุณสมบัติของการปิด, การเชื่อมโยง, การสับเปลี่ยน, การระบุตัวตนและ idempotence
ฟังก์ชันการยกกำลังบนโดเมน n = 3:
[[1, 0, 0]
[1, 1, 1]
[1, 2, 4]]
ฟังก์ชั่นนี้ไม่มีคุณสมบัติด้านบน
ฟังก์ชั่นการเพิ่มบนโดเมน n = 3:
[[0, 1, 2]
[1, 2, 3]
[2, 3, 4]]
ฟังก์ชั่นนี้มีคุณสมบัติของการเปลี่ยนและตัวตน
K combinator บนโดเมน n = 3:
[[0, 0, 0]
[1, 1, 1]
[2, 2, 2]]
ฟังก์ชั่นนี้มีคุณสมบัติของการปิดการเชื่อมโยงและ idempotence
ฟังก์ชันความแตกต่างสัมบูรณ์บนโดเมน n = 3:
[[0, 1, 2]
[1, 0, 1]
[2, 1, 0]]
ฟังก์ชั่นนี้มีคุณสมบัติของการปิดการสับเปลี่ยนและตัวตน
ฟังก์ชั่นเฉลี่ย, การปัดเศษไปยังคู่บนโดเมน n = 3:
[[0, 0, 1]
[0, 1, 2]
[1, 2, 2]]
ฟังก์ชั่นนี้มีคุณสมบัติของการปิด, สับเปลี่ยน, เอกลักษณ์และ idempotence
ฟังก์ชันความเสมอภาคบนโดเมน n = 3:
[[1, 0, 0]
[0, 1, 0]
[0, 0, 1]]
ฟังก์ชั่นนี้มีคุณสมบัติของการปิดและการสับเปลี่ยน
ท้าทาย
นี่คือรหัสกอล์ฟ ช่องโหว่มาตรฐานใช้ ไบต์ที่น้อยที่สุดชนะ
c=all(l>)
ล่ะ