ÆlÐĿĊḊi1
ลองออนไลน์! หรือตรวจสอบกรณีทดสอบทั้งหมด
พื้นหลัง
เราเริ่มต้นด้วยการจดลอการิทึมธรรมชาติของอินพุตและผลลัพธ์ที่ตามมาอย่างต่อเนื่องจนกว่าผลลัพธ์จะไม่เปลี่ยนแปลงอีกต่อไป งานนี้เพราะการขยายตัวของลอการิทึมธรรมชาติกับระนาบที่ซับซ้อนมีจุดคงที่ ; ถ้าZ = อี-W (-1) ≈ 0.318 + 1.337i - ที่Wหมายถึงฟังก์ชั่นแลมเบิร์ W - เรามีบันทึก (z) = Z
สำหรับอินพุตnหลังจากคำนวณ[n, log (n), log (log (n)), …, z]เราจะใช้ฟังก์ชั่นเพดานกับผลลัพธ์แต่ละรายการก่อน การใช้งานของ Jelly ( Ċ
) คำนวณส่วนจินตภาพของจำนวนเชิงซ้อนแทน†แต่เราไม่สนใจสิ่งเหล่านี้
เมื่อk THการประยุกต์ใช้การล็อกผลตอบแทนถัวเฉลี่ยค่าน้อยกว่าหรือเท่ากับ1 , Ċ
จะกลับ1เป็นครั้งแรก ดัชนีที่ใช้ 0 ของ1แรกนั้นเป็นผลลัพธ์ที่ต้องการ
การดำเนินการที่ตรงไปตรงมา (คำนวณดัชนีที่ใช้ 1 การลดลง) ล้มเหลวเนื่องจาก edge case 0ซึ่งไม่มี1ในรายการลอการิทึม ในความเป็นจริงสำหรับอินพุต0ลำดับลอการิทึมคือ
[0, None]
นี่เป็นเพราะลอการิทึมของเจลลี่ ( Æl
) เกินพิกัด มันพยายามครั้งแรกmath.log
(ลอการิทึมจริง) แล้วcmath.log
(ลอการิทึมที่ซับซ้อน) และในที่สุดก็ "จะให้ขึ้น" None
และผลตอบแทน โชคดีที่Ċ
มีการโหลดมากเกินไปในทำนองเดียวกันและส่งคืนอาร์กิวเมนต์หากไม่สามารถปัดเศษขึ้นหรือใช้ส่วนจินตภาพ
เช่นเดียวกันอินพุต1ส่งคืน
[1, 0, None]
ซึ่งอาจสร้างปัญหาในวิธีการอื่น ๆ Ċ
ที่ทำหรือไม่เกี่ยวข้องกับ
วิธีหนึ่งในการแก้ไขปัญหานี้คือการนำไปใช้Ḋ
(dequeue ลบองค์ประกอบแรก) ไปยังอาร์เรย์ของลอการิทึม แผนที่นี้
0ÆlÐĿ -> [0, None] -> [None]
1ÆlÐĿ -> [1, 0, None] -> [0, None]
ดังนั้นรายการค่ามี1ในขณะนี้ วิธีนี้การหาดัชนีแรก1จะกลับ0 (ไม่พบ) ซึ่งเป็นผลลัพธ์ที่ต้องการสำหรับปัจจัยการผลิตที่0และ1
มันทำงานอย่างไร
ÆlÐĿĊḊi1 Main link. Argument: n (non-negative integer)
ÐĿ Apply the following link until the results are no longer unique.
Æl Natural logarithm.
Return the array of all unique results.
Ċ Round all resulting real numbers up to the nearest integer. This takes
the imaginary part of complex numbers and does nothing for non-numbers.
Ḋ Dequeue; remove the first item (n) of the array of results.
i1 Find the first index of 1 (0 if not found).
† นี่เป็นหนึ่งในสามอะตอมของเจลลี่ที่มีการโอเวอร์โหลดในลักษณะที่ไม่ชัดเจน