ฝึกซ้อมกอล์ฟ: Pyth [ปิด]


10

นี่เป็นความท้าทายเกี่ยวกับลูกเล่นและการปรับแต่งที่สามารถใช้ได้เมื่อเล่นกอล์ฟใน Pyth นักกอล์ฟ Pyth อาจรู้จักกลอุบายมากมายที่เกี่ยวข้อง อย่างไรก็ตามวิธีการและโครงสร้างที่ไม่คุ้นเคยอาจมีส่วนร่วมดังนั้นให้ดูที่เคล็ดลับ Pythเช่นเดียวกับการอ้างอิงอักขระ Pythหากคุณติดอยู่ การแก้ปัญหาอาจจะมีการทดสอบที่นี่

เป้าหมาย:มีปัญหา 8 ข้อแต่ละข้อมีข้อมูล Pyth เพื่อให้คุณเพิ่มประสิทธิภาพ เป้าหมายของคุณคือการสร้างสิ่งที่เทียบเท่า แต่สั้นกว่า โซลูชันอ้างอิงรวม 80 ไบต์ เป้าหมายของคุณคือเอาชนะให้ได้มากที่สุด

ผู้ชนะจะไปที่การส่งที่แก้ปัญหาทั้ง 8 ด้วยจำนวนไบต์ที่น้อยที่สุด Tiebreaker เป็นโพสต์ก่อนหน้า

ตอบ:โปรดทำลายคำตอบทั้งหมดของคุณยกเว้นคะแนนรวมของคุณ มีจุดประสงค์ที่คุณจะไม่ดูคำตอบของคนอื่นก่อนที่จะส่งของคุณเอง

การส่งแต่ละครั้งควรตอบทุกปัญหาและให้จำนวนไบต์ที่สอดคล้องกัน แต่อย่าลังเลที่จะใช้การอ้างอิงหากคุณไม่สามารถปรับปรุงได้

รายละเอียด:ถ้าโทรคำถามสำหรับค่าบางอย่างหรือออกqความเท่าเทียมกันเป็นที่ต้องการดังนั้น1และ!0เทียบเท่า หากคำถามนั้นเรียกร้องให้มีการทดสอบว่าเงื่อนไขเป็นจริงหรือไม่ผลลัพธ์จะต้องเป็นจริงหากเงื่อนไขนั้นเป็นจริงและเป็นเท็จหากเงื่อนไขเป็นเท็จ แต่ไม่มีข้อผูกมัดนอกเหนือจากนั้น คุณไม่สามารถแลกเปลี่ยนจริงเป็นเท็จและเท็จจริง หากคำถามเรียกให้บางสิ่งบางอย่างถูกพิมพ์ออกมาไม่มีอะไรอื่นที่จะพิมพ์ยกเว้นบรรทัดใหม่ที่ต่อท้าย

คำตอบทั้งหมดจะต้องถูกต้องสำหรับPythล่าสุดที่กระทำในขณะที่โพสต์คำถามนี้

ปัญหาที่ 1:กำหนดชุดใน Q ให้แสดงรายการที่มีองค์ประกอบของ Q ในลำดับใด ๆ

; 3 bytes
f1Q

ปัญหาที่ 2:[1, 1, 0, 0, 1, 1, 0]เอาท์พุทรายการ

; 9 bytes
[J1JZZJJZ

ปัญหาที่ 3:กำหนดจำนวนเต็มบวกใน Q ทดสอบว่าตัวเลขทั้งหมดของ Q เป็นบวกหรือไม่ (ไม่ใช่ศูนย์)

; 7 bytes
!f!TjQT

ปัญหาที่ 4:กำหนดสตริงใน Z ทดสอบว่า Z มีเครื่องหมายคำพูดใด ๆ - หรือ"'

; 9 bytes
|}\'z}\"z

ปัญหาที่ 5:แผนที่ Q = 1 ถึง 'Win', Q = 0 ถึง 'Tie' และ Q = -1 ถึง 'Lose'

; 20 bytes
@["Tie""Win""Lose")Q

ปัญหาที่ 6: การ0123456789พิมพ์

; 6 bytes
sm`dUT

ปัญหาที่ 7:กำหนดสตริงใน z ให้นับจำนวนผู้รุกราน

(ดัชนีiและjรูปแบบการผกผันถ้าi < jแต่z[i] > z[j])

; 17 bytes
ssmm>@zd@zkrdlzUz

ปัญหาที่ 8:ให้รายการเป็น z ให้นับจำนวนองค์ประกอบที่อยู่ติดกันซ้ำ ๆ

; 9 bytes
lfqFT.:z2

@ user1737909 คำตอบนั้นถูกต้อง f1QตัวกรองQในฟังก์ชั่นที่เป็นจริงเสมอดังนั้นมันจะส่งออกทุกองค์ประกอบของชุด fแสดงรายการซึ่งตรงตามวัตถุประสงค์ในคำถามนั้น
isaacg

ฉันกำลังปิดคำถามนี้เป็นนอกหัวข้อเนื่องจากความท้าทายหลายส่วนที่ไม่มีการโต้ตอบระหว่างส่วนต่าง ๆ ไม่ได้รับอนุญาต meta.codegolf.stackexchange.com/a/8464/45941
Martin Ender

คำตอบ:


9

52 ไบต์

ปัญหาที่ 1: 2 ไบต์

    SQ

ปัญหาที่ 2: 5 ไบต์
    jC\f2

ปัญหาที่ 3: 4 ไบต์
    -0`Q
ปัญหาที่ 4: 6 ไบต์
    @z+N\'
ปัญหาที่ 5: 17 ไบต์
    %3>"LTWoiisene"hQ
หรือ
    @c3"LoseTieWin"hQ
ปัญหาที่ 6: 3 ไบต์
    pMT
ปัญหาที่ 7: 9 ไบต์
    s>R_d.cz2
ปัญหาที่ 8: 6 ไบต์
    sqVztz
การรวมโซลูชัน @ xnor สำหรับปัญหา 4 กับของฉัน (ทั้ง 6 ไบต์) ให้โซลูชัน4 ไบต์ที่ดี ดังนั้น 48 ไบต์จึงเป็นไปได้


คุณไม่สามารถรวมโซลูชันของคุณเข้ากับ xnor's เนื่องจาก xnor ไม่ถูกต้อง (ดูความคิดเห็นของฉันในคำตอบของเขา)
orlp

@ orlp * รวมทุกอย่าง แต่สิ่งที่ไม่ถูกต้อง ;-) เพิ่มโซลูชันในโพสต์ของฉัน
Jakube

อ้าฉันเห็นแล้วตอนนี้ :) เดาสิว่าฉัน 6 ไบต์ (และเพิ่มขึ้นเรื่อย ๆ ) แย่กว่าที่คิด
orlp

aaah! ขอบคุณ! ไม่ได้ตระหนักถึง :) ฉันจะลบมัน
Ven

7

54 ไบต์

งาน 1, 2 ไบต์ : SQ
งาน 2, 6 ไบต์ : j102 2
งาน 3, 5 ไบต์ : *FjQT
งาน 4, 6 ไบต์ : @z"'\"
งาน 5, 17 ไบต์ : @c3"LoseTieWin"hQ
งาน 6, 4 ไบต์ : jkUT
งาน 7, 7 ไบต์ : s>M.cz2
งาน 8, 7 ไบต์ :sqM.:z2



คุณจะตอบสำหรับงาน 4 ที่ถูกต้องเพราะมันเป็นเพียงพิมพ์บรรทัดว่างเปล่า?
Maltysen

@Maltysen ใช่เพราะคุณค่าของความ""จริงเป็นเท็จเพราะnot ""เป็นจริง
orlp

3

58 ไบต์

งาน 1, 2 ไบต์ : SQ
งาน 2, 5 ไบต์ : jC\f2
งาน 3, 6 ไบต์ : !}Z Q
งาน 4, 8 ไบต์ : |}\'z}Nz
งาน 5, 18 ไบต์ : @c"Tie\nWin\nLose"bQ
งาน 6, 4 ไบต์ : jkUT
งาน 7, 9 ไบต์ : lf>FT.cz2
งาน 8, 6 ไบต์ :sqVtzz


ฉันไม่รู้เกี่ยวกับV(แม้ว่าฉันยังไม่เข้าใจอย่างเต็มที่เนื่องจากคุณกำลังดำเนินการเวกเตอร์กับตัวถูกดำเนินการความยาวไม่เท่ากัน) ดังนั้นฉันจึงขอยกเว้น แต่สิ่งที่ฉันควรคิดC\f= /
orlp

@orlp Vตัดอินพุตที่ไม่เท่ากันโดยอัตโนมัติ
Maltysen

3

โพสต์นี้มีไว้สำหรับการสะสมของทางออกที่ดีที่สุดในทุกคำตอบ โปรดแก้ไขในโซลูชันและผู้ตอบที่พบโซลูชันก่อนหากมีการปรับปรุงใด ๆ

48 ไบต์

1. SQ- 2 ไบต์, โพสต์ครั้งแรกโดย @orlp
2. jC\f2- 5 ไบต์, โพสต์ครั้งแรกโดย @Maltysen
3. -0`Q- 4 ไบต์, โพสต์ครั้งแรกโดย @Jakube
4. @z`N- 4 ไบต์, ส่วนผสมของ @xnor และ @Jakube แต่ไม่ได้อยู่ใน คำตอบใด ๆ
(ฉันไม่เห็นเมื่อเขียนคำถาม)
5. @c3"LoseTieWin"hQ- 17 ไบต์, โพสต์ครั้งแรกโดย @ orlp
6. pMT- 3 ไบต์, โพสต์ครั้งแรกโดย @Jakube
7 s>M.cz2- 7 ไบต์, โพสต์ครั้งแรกโดย @ orlp
8 sqVtzz- 6 ไบต์โพสต์ครั้งแรกโดย @Maltysen


เราจะ จำกัด รุ่น Pyth จากก่อนหน้าคำถามหรือไม่
เพิ่มประสิทธิภาพ

1
"คำตอบทั้งหมดจะต้องถูกต้องสำหรับ Pyth ล่าสุดที่กระทำในขณะที่โพสต์คำถามนี้" ใส่ฉันจะสนใจที่จะได้ยินสิ่งที่คุณกำลังคิด @Optimizer
isaacg

Pyth ไม่เคยพัฒนาใช่มั้ย (ที่ก้าวเร็วกว่าภาษากอล์ฟอื่น ๆ ) ดังนั้นจึงมีความเป็นไปได้สูงว่าจำนวนนี้ (48) จะไปย่อย 40 ในอนาคตอันใกล้ และเนื่องจากนี่คือความท้าทายในการฝึกฝนคุณจะต้องการฝึกฝนโดยใช้เวอร์ชัน Pyth ล่าสุดสำหรับความท้าทายที่ใหม่กว่า
เครื่องมือเพิ่มประสิทธิภาพ

2

57 ไบต์

1. (2) SQจัดเรียง
2. (5) jC\f2 แปลงfเป็น ASCII val จากนั้นเบส 2
3. (5) /`Q`0นับ'0'ในสตริงตัวเลข
4. (5) ใช้เวลาสี่แยกชุดของสตริงที่มี@z`\' 5. (18) ทำให้รายการมีการแยก ฉันไม่ได้ทำงานต่อ 6. (4) เข้าร่วม ดูเหมือนจะแปลงเป็นสตริงโดยอัตโนมัติ 7. (9) นับสารตั้งต้นที่มากกว่ากลับด้าน 8. (9) ความยาวของการแยกรายการย่อยของรายการและคู่ขององค์ประกอบในรายการ ความยาวเท่ากับโซลูชันอ้างอิง "'"
@c"Tie Win Lose"dQ
jkUTrange(10)
sm>d_d.:z
l@C,zz.:z


โซลูชันของคุณสำหรับ # 4 ไม่ถูกต้อง ตัวอย่างเช่นสตริงte\\stเป็นค่าบวกเท็จ
orlp

@ orlp แทนที่ด้วยโซลูชันที่สั้นกว่าและแตกต่างกัน
xnor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.