Ẇa6ḌạÐṂ⁸Ṫ
ลิงค์ monadic
ลองออนไลน์! - เกือบไม่มีจุดในลิงค์นี้ (ดูด้านล่าง)!
อย่างไร?
ในสไตล์นักกอล์ฟที่แท้จริงสิ่งนี้ไม่มีประสิทธิภาพอย่างแท้จริง - มันถึงเวลา 60 วินาทีที่ TIO สำหรับกรณีทดสอบ365 ! ในพื้นที่นี้เสร็จสิ้นในยุค 37
Ẇa6ḌạÐṂ⁸Ṫ - Main link: n
Ẇ - all sublists - this has an implicit make_range on it's input
- so, for example, an input of 3 yields [[1],[2],[3],[1,2],[2,3],[1,2,3]]
- the important things are: that it contains both a list of the length of the
- decimal number, and a list 1 shorter; and that it's lists only contain
- non-zero numbers and are monotonically increasing in length.
6 - literal 6
a - and (vectorises), this changes all the values to 6s
- so, the example above becomes [[6],[6],[6],[6,6],[6,6],[6,6,6]]
Ḍ - convert to decimal (vectorises) [ 6, 6,, 6, 66, 66, 666 ]
⁸ - link's right argument, n
ÐṂ - filter keep those with minimal:
ạ - absolute difference (for 366 this keeps 66 AND 666; same goes for 3666; etc.)
Ṫ - tail - get the rightmost result (for 366 keeps 666, since it's longer)
แพทช์เพื่อให้อัลกอริทึมเดียวกันทำงานภายในขีด จำกัด 60s สำหรับ365และ366ใน TIO คือการหลีกเลี่ยงการ vectorisation โดยนัยของḌ
ด้วยẆa6Ḍ€ạÐṂ⁸Ṫ
( ลองที่ ) แต่ตอนนี้จะ seg-fault สำหรับอินพุตของ999 ( สามเหลี่ยม (999))เท่านั้น499,500แต่แต่ละรายการเป็นจำนวนเต็มทำให้มีจำนวนTetrahedral (999) = 166,666,500จำนวนเต็มไม่ใช่หน่วยความจำที่มีประสิทธิภาพอย่างน้อยใน Python