ฟังก์ชันทั่วถึง
ในทางคณิตศาสตร์ ฟังก์ชัน f จากเซต X ไปหาเซต Y เป็นฟังก์ชันทั่วถึง (อังกฤษ: surjective function, surjection) เมื่อเรนจ์กับโคโดเมนของ f เป็นเซตเดียวกัน นั่นคือ f มีสมบัติว่าสำหรับทุกสมาชิก y ใน Y มี x ใน X ที่ f(x) = y ซึ่งสำหรับ y แต่ละตัวอาจมี x หลายตัวก็ได้ (แต่ถ้ามี x เพียงตัวเดียวสำหรับ y ทุกตัว f จะเป็นฟังก์ชันหนึ่งต่อหนึ่งทั่วถึง)
นิยามของฟังก์ชันทั่วถึงอาจเขียนเป็นสัญลักษณ์ว่า
ตัวอย่าง
แก้- สำหรับเซต X ใด ๆ กำหนดฟังก์ชันเอกลักษณ์ idx จาก X ไปยัง X นิยามโดย idx (x) = x ฟังก์ชันนี้เป็นฟังก์ชันทั่วถึง
- ฟังก์ชัน f : Z → {0,1} นิยามโดย f(n) = n mod 2 (นั่นคือ ฟังก์ชันที่แสดงภาวะคู่หรือคี่ของจำนวนเต็ม) เป็นฟังก์ชันทั่วถึง
- ฟังก์ชัน f : R → R นิยามโดย f(x) = 2x + 1 เป็นฟังก์ชันทั่วถึง เพราะสำหรับ y ใด ๆ ใน R x = (y - 1)/2 เป็นจำนวนจริงที่ทำให้ f(x) = y
- ฟังก์ชัน f : R → R นิยามโดย f(x) = x3 − 3x เป็นฟังก์ชันทั่วถึง แต่ไม่เป็นฟังก์ชันหนึ่งต่อหนึ่ง เพราะสำหรับ −2 ≤ y ≤ 2 มี x หลายตัวที่ f(x) = y เช่น f(-1) = f(2) = 2
- ฟังก์ชันกำลังสอง g : R → R นิยามโดย g(x) = x2 ไม่เป็นฟังก์ชันทั่วถึง เพราะไม่มี x ที่ทำให้ g(x) = -1 แต่หากพิจารณาฟังก์ชัน g : R → R0+ ซึ่งมีโคโดเมนต่างกันแต่ใช้นิยามเดียวกันจะเป็นฟังก์ชันทั่วถึง
- จากตัวอย่างด้านบน หากมีฟังก์ชัน f ใด ๆ เราสามารถสร้างฟังก์ชัน f* ที่ทั่วถึงและให้ค่าเดียวกับ f (นั่นคือ f(x) = f*(x))โดยการเปลี่ยนโคโดเมนให้ตรงกับเรนจ์ของ f
สมบัติ
แก้- ฟังก์ชันทั่วถึงมีอินเวอร์สขวา นั่นคือ ถ้า f : X → Y เป็นฟังก์ชันทั่วถึงแล้วจะมี g : Y → X ที่ทำให้ f(g(y)) = y สำหรับทุก y ใน Y
- ถ้า f : X → Y เป็นฟังก์ชันทั่วถึงแล้ว |Y| ≤ |X|
- ถ้า g : X → Y และ f : Y → Z เป็นฟังก์ชันทั่วถึงแล้ว f o g เป็นฟังก์ชันทั่วถึง
- ในทางกลับกันถ้า f o g เป็นฟังก์ชันทั่วถึง แล้ว f เป็นฟังก์ชันทั่วถึง (แต่ g อาจไม่เป็น)