ฉันได้ตรวจสอบผลลัพธ์ของ 0 ^ 0 ในเครื่องคิดเลขในรุ่นต่างๆ:
- iOS 10.3 => 1
- iOS 11.4 => ข้อผิดพลาด
- macOS 10.12.6 => 1
- macOS 10.13.5 => ไม่ใช่ตัวเลข
อะไรคือเหตุผลของความแตกต่าง?
ฉันได้ตรวจสอบผลลัพธ์ของ 0 ^ 0 ในเครื่องคิดเลขในรุ่นต่างๆ:
อะไรคือเหตุผลของความแตกต่าง?
คำตอบ:
แม้ว่าโดยทั่วไปแล้ว0⁰จะไม่ได้กำหนด แต่บางสาขาของคณิตศาสตร์จะกำหนดอย่างชัดเจนเป็น 1 เพราะอย่างที่คุณเห็นนี่คือค่าที่ฟังก์ชัน y (x) = xˣลู่เข้าหากันที่ n = 0
น้อยลงอย่างเป็นทางการโปรดทราบว่า 0.5 0.5 = 0.707 …; 0.2 0.2 = 0.725 …; 0.1 0.1 = 0.794 …และ 0.01 0.01 = 0.955 … ในขณะที่คุณเข้าใกล้ 0, ผลจะใกล้ 1 ซึ่งทำให้ค่อนข้างตรรกะและมีประโยชน์ในการกำหนด 0 ^ 0 เป็น 1 ในบางกรณี
ดังนั้นจึงไม่มีผลลัพธ์ 3 รายการเหล่านี้ที่ไม่ถูกต้องต่อ se และผลลัพธ์ทั้งหมดนั้นสะท้อนให้เห็นถึงอนุสัญญาที่แตกต่างกันเกี่ยวกับค่าของนิพจน์ที่ไม่ได้กำหนดนี้
มีบทความวิกิพีเดียที่ดีที่อธิบายถึงปัญหานี้ ดูเพิ่มเติมศูนย์ถึงพลังศูนย์ - คือ0⁰ = 1 หรือไม่ .
การใช้งานส่วนใหญ่ของเลขทศนิยมเป็นไปตามมาตรฐาน IEEE 754-2008 ซึ่งระบุว่า pow (0,0) ส่งคืน 1 (ดู§9.2.1)
แต่มันยังนิยามฟังก์ชันอื่นอีกสองฟังก์ชัน: pown (0,0) = 1 และ powr (0,0) = NaN
Wikipedia สรุปดังต่อไปนี้ :
มาตรฐานจุดลอยตัว IEEE 754-2008 ถูกนำมาใช้ในการออกแบบไลบรารีจุดลอยตัวส่วนใหญ่ แนะนำการใช้งานหลายอย่างเพื่อคำนวณพลังงาน: [20]
pow ปฏิบัติต่อ 0 0เป็น 1 หากกำลังเป็นจำนวนเต็มที่แน่นอนผลลัพธ์จะเหมือนกับ pown ไม่เช่นนั้นผลลัพธ์จะเป็น powr (ยกเว้นบางกรณีพิเศษ)
pown ปฏิบัติต่อ 0 0เป็น 1 กำลังจะต้องเป็นจำนวนเต็มที่แน่นอน ค่าถูกกำหนดสำหรับฐานลบ เช่น pown (−3,5) คือ −243 powr ปฏิบัติต่อ 0 0เป็น NaN (Not-a-Number - ไม่ได้กำหนด) ค่ายังเป็น NaN สำหรับกรณีเช่น powr (−3,2) ซึ่งฐานนั้นน้อยกว่าศูนย์ ค่าถูกกำหนดโดย epower × log (ฐาน)
ตัวแปร pow นั้นได้รับแรงบันดาลใจจากฟังก์ชั่น pow จาก C99 เพื่อความเข้ากันได้เป็นหลัก [21] มันมีประโยชน์ส่วนใหญ่สำหรับภาษาที่มีฟังก์ชั่นพลังงานเดียว pown และ powr ได้รับการแนะนำเนื่องจากความขัดแย้งในการใช้ฟังก์ชั่นพลังงานและมุมมองที่แตกต่างกัน (ตามที่ระบุไว้ข้างต้น) [22]
แน่นอนว่าสิ่งนี้ไม่มีผลต่อผลลัพธ์ทางคณิตศาสตร์ที่ถูกต้องคือ: ตามที่คนอื่น ๆ ระบุไว้มีคำตอบที่เป็นไปได้มากกว่าหนึ่งคำตอบและ IEEE ต้องตัดสินใจเองตามอำเภอใจ
บางคนที่ Apple คิดว่า 0 ^ 0 เป็นการดำเนินการที่ไม่ถูกต้องและได้รับการแก้ไขแล้ว
ศูนย์ถึงพลังของศูนย์คือความขัดแย้ง
มันควรสร้างข้อผิดพลาด เหตุผลเดียวที่คุณไม่เห็นข้อผิดพลาดเกิดขึ้นเนื่องจากข้อเท็จจริงที่ว่ารุ่นของเครื่องคิดเลขที่เป็นปัญหาไม่ได้ดักจับข้อผิดพลาดการป้อนข้อมูลนั้น
มีข้อโต้แย้งบางส่วนเกี่ยวกับ0⁰ที่ทำให้ฟังก์ชัน x ^ y มีความไม่ต่อเนื่องที่ (x, y) -> (0,0) นี่คือความขัดแย้งเนื่องจากมันเป็นเรื่องไร้สาระทางคณิตศาสตร์เพื่อห้ามฟังก์ชั่นที่มีค่าที่ไม่ต่อเนื่อง
มันเป็นวิธีปฏิบัติทั่วไปในการฝังจำนวนเต็มลงใน reals เพื่อให้ฟังก์ชั่นที่กำหนดไว้ใน reals ตรงกับฟังก์ชั่นเดียวกันที่กำหนดไว้ในจำนวนเต็มเมื่อใดก็ตามที่ฟังก์ชั่นจริงถือว่าค่าที่สำคัญ มีจุดเล็ก ๆ ในการแยกความแตกต่าง 0.0 ^ 0 จาก 0.0 ^ 0.0
ตอนนี้x⁰ที่มีจำนวนเต็ม 0 เป็นเลขชี้กำลังเป็นผลิตภัณฑ์ที่มีปัจจัยศูนย์เท่ากับ x เนื่องจากไม่มีปัจจัยของ x อยู่ในค่าของมันจึงมีจุดเล็ก ๆ ในการกำหนดค่าขึ้นอยู่กับ x และค่าของมันเนื่องจากผลิตภัณฑ์เปล่าค่อนข้างชัดเจน 1 องค์ประกอบที่เป็นกลางสำหรับการคูณ
สิ่งนี้ก็สมเหตุสมผลเช่นกันเพราะมันไม่ได้ จำกัด ทฤษฏีทวินามโดยไม่ได้ตั้งใจให้มีค่าที่ไม่เป็นศูนย์ ในลักษณะนี้เป็นข้อโต้แย้งตามความพยายามทำให้ฟังก์ชั่นx⁰อย่างสมเหตุสมผลที่ x = 0 ทำให้มันถูกกำหนดและต่อเนื่องทุกที่
หากเราลองใช้ฟังก์ชัน 0 ^ x แทนขีด จำกัด ที่ x = 0 + อาจเป็น 0 แต่การกำหนดดังกล่าวยังคงไม่ช่วยรักษาความไม่ต่อเนื่องที่จำเป็นเนื่องจากฟังก์ชันไม่ได้ถูกกำหนดสำหรับค่าลบ x
ตอนนี้เครื่องคิดเลขมักจะคำนวณ x ^ y เป็น exp (y * ln (x)) แน่นอนว่าเป็นข่าวร้ายสำหรับ x = 0 ดังนั้นค่าดังกล่าวจะต้องมีการตั้งโปรแกรมไว้อย่างชัดเจนหรือคุณจะมาถึงที่ไม่ใช่ตัวเลข สำหรับการเขียนโปรแกรมที่ชัดเจนคุณต้องพึ่งพาสัญชาตญาณทางคณิตศาสตร์ของโปรแกรมเมอร์และโปรแกรมเมอร์ทั่วไปจะได้รับคำแนะนำมากขึ้นโดยสัญชาตญาณ pseudomathematical เช่น "ฟังก์ชั่นจะต้องต่อเนื่องที่กำหนดไว้" กว่านักคณิตศาสตร์จะ
นอกจากนี้คุณสามารถคาดหวังความคิดเห็นที่วุ่นวายจากผู้ใช้ที่แตกต่างกันและนักคณิตศาสตร์บริสุทธิ์จะไม่เปลี่ยนกลับไปใช้เครื่องคิดเลขสำหรับวิสัยทัศน์ของพวกเขาเกี่ยวกับความจริงทางคณิตศาสตร์ทั้งหมดนั้นมากดังนั้นคุณจึงไม่สามารถคาดหวังได้ว่า
ดังนั้นผลลัพธ์คือประชาธิปไตยมากกว่าคณิตศาสตร์และเสียงข้างมากของประชาธิปไตยมักจะเปลี่ยนแปลง