Cramming The Gramming - Twelve Task ทวีต


42

เจ้านายของคุณส่งอีเมลรายการงานเขียนโปรแกรม 12 รายการที่เขาต้องการให้คุณทำโดยเร็วที่สุด งานที่จะเพียงพอที่เรียบง่าย แต่เจ้านายของคุณเป็นผู้ประกอบการซอฟต์แวร์หนุ่มดูดโดยเครือข่ายสังคมยืนยันว่าการแก้ปัญหาของคุณจะสามารถที่จะพอดีภายในเดียวทวิตเตอร์ทวีต

ซึ่งหมายความว่าคุณมีรหัส 140 ไบต์เท่านั้นเพื่อแก้ปัญหางานทั้งหมดโดยเฉลี่ย 11.67 ไบต์ต่องาน (ใช่แล้ว Twitter นับตัวอักษรแต่เจ้านายของคุณพูดเป็นจำนวนไบต์โดยเฉพาะ)

คุณรู้ว่าไม่มีวิธีใดที่จะแก้ปัญหาทั้ง 12 งานใน 140 ไบต์ แต่คุณสงสัยว่าเจ้านายของคุณจะไม่ทดสอบวิธีแก้ปัญหาทั้งหมดของคุณ ดังนั้นคุณจะต้องแก้ปัญหาให้มากที่สุดเท่าที่จะทำได้โดยข้ามบางส่วนไป ความคิดของคุณก็คือว่ามันไม่สำคัญซึ่งส่วนหนึ่งของงานที่คุณเสร็จสมบูรณ์ก็เพียงเรื่องที่เซตเป็นขนาดใหญ่ที่สุดเท่าที่เป็นไปได้

คุณสามารถทำงานให้สำเร็จได้กี่งาน

ท้าทาย

เขียนโปรแกรมมากถึง 12 โปรแกรมโดยแต่ละโปรแกรมสามารถแก้ไขหนึ่งใน 12 ภารกิจที่ระบุด้านล่างได้อย่างถูกต้อง ผลรวมสะสมของความยาวของโปรแกรมเหล่านี้ต้องไม่เกิน 140 ไบต์

อีกทางหนึ่งคุณอาจเขียนโปรแกรมเดี่ยวยาวไม่เกิน 140 ไบต์ซึ่งใช้จำนวนเต็มตั้งแต่ 1 ถึง 12 และดำเนินการแก้ไขตามภารกิจที่เกี่ยวข้องโดยป้อนข้อมูลให้มากขึ้นตามความจำเป็น ไม่ใช่ทุกงานที่ต้องทำงาน แต่มีเพียงงานที่นับรวมเข้ากับคะแนนของคุณ งานที่ไม่ทำงานนั้นได้รับอนุญาตให้ทำผิดพลาดหรือทำอย่างอื่น

ในกรณีใดกรณีหนึ่ง "โปรแกรม" ในความเป็นจริงอาจเป็นฟังก์ชั่นที่รับอินพุตเป็นอาร์กิวเมนต์หรือพร้อมท์และพิมพ์หรือส่งคืนเอาต์พุต ตัวอย่างเช่นคุณอาจเขียนฟังก์ชั่น 140 ไบต์ที่ดูเหมือนf(taskNumber, taskInput)หรือคุณอาจเขียนโค้ดแยกต่างหากสำหรับแต่ละงานบางฟังก์ชั่นเป็นบางฟังก์ชั่นและบางโปรแกรมเป็นโปรแกรมเต็มเปี่ยม

รายละเอียดอื่น ๆ:

  • รหัสทั้งหมดจะต้องเขียนในภาษาเดียวกัน

  • ตามปกติอินพุตควรมาจาก stdin, บรรทัดคำสั่ง, อาร์กิวเมนต์ของฟังก์ชันหรืออะไรก็ตามที่เป็นปกติสำหรับภาษาของคุณ เอาต์พุตถูกพิมพ์ไปยัง stdout หรือทางเลือกที่ใกล้เคียงที่สุดกับภาษาของคุณหรือส่งคืนในรูปแบบที่เหมาะสม

  • การจัดรูปแบบอินพุตที่เหมาะสมนั้นใช้ได้ เช่นอัญประกาศรอบสตริงหรือ\nแทนที่จะขึ้นบรรทัดใหม่ตามจริง

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

  • รหัสที่ทำงานในสภาพแวดล้อมREPL เท่านั้นไม่ถือว่าเป็นโปรแกรมหรือฟังก์ชัน

  • คุณไม่สามารถเขียนหลายโปรแกรมที่แก้ปัญหาหลายงาน มันเป็นหนึ่งในโปรแกรมที่ (นึกคิด) แก้ปัญหางานทั้งหมดหรือ (นึกคิด) 12 โปรแกรมที่แต่ละแก้งานเดียว

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

เกณฑ์การให้คะแนน

การส่งที่ทำภารกิจให้เสร็จสมบูรณ์มากที่สุดคือผู้ชนะ หากการส่งสองครั้งเสมอกันผู้ที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ หากจำนวนไบต์ถูกผูกไว้การส่งก่อนหน้านี้จะชนะ คำตอบ wiki ของชุมชนไม่ได้รับอนุญาตให้ชนะ

อย่าลืมบอกเราว่างานใดที่คุณแก้ไขไม่ใช่แค่งาน!

แต้มต่อสำหรับผู้ที่ไม่ใช่นักกอล์ฟ:

อาจเป็นไปได้ว่าความท้าทายนี้จะถูกครอบงำโดยภาษากอล์ฟ หลายภาษาอาจมีปัญหาในการแก้ปัญหาแม้แต่หนึ่งหรือสองงานภายใน 140 ไบต์ ดังนั้นคุณอาจส่งคำตอบที่ไม่สามารถแข่งขันได้โดยมีการ จำกัด 3 ทวีตคือ 420 ไบต์ กฎอื่น ๆ ทั้งหมดยังคงเหมือนเดิม

งาน

ภารกิจที่ 1 - ตัวเลขสามตัวสามารถสร้างรูปสามเหลี่ยมได้หรือไม่?

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

ตัวอย่างความจริง (หนึ่งรายการต่อบรรทัด):

20 82 63
1 1 1
2 3 4
1 2 2

ตัวอย่างที่เป็นเท็จ:

6 4 10
171 5 4
1 1 2
1 2 3

ภารกิจที่ 2 - ใกล้เคียงที่สุดกับหนึ่งล้าน

ระบุสตริงทศนิยม 7 หลัก (0-9) ให้จัดเรียงใหม่เพื่อให้ได้ตัวเลขที่ใกล้เคียงกับหนึ่งล้านมากที่สุด นั่นคือabs(1000000 - rearrangedNumber)ควรจะลดลง

พิมพ์หรือส่งกลับจำนวนผลลัพธ์เป็นจำนวนเต็มไม่ใช่สตริง (ดังนั้นไม่ควรมีเลขศูนย์นำหน้ายกเว้นว่าเป็นบรรทัดฐานสำหรับภาษาของคุณ)

เช่นการป้อนข้อมูลของ9034318ควรส่งผลให้984331(และไม่1033489)

28939842348899ควรจะเป็น

00010001000000ควรจะเป็น

0000020200000ควรจะเป็น


ภารกิจที่ 3 - เครื่องมือจำลองแป้นพิมพ์อย่างง่าย

ใช้เวลาในสายของอักษรตัวพิมพ์เล็ก (AZ) <>ช่องว่างและวงเล็บมุม อ่านจากซ้ายไปขวาสตริงนี้แสดงถึงคีย์ที่ถูกกดบนคีย์บอร์ดมาตรฐานในขณะที่เท็กซ์เอดิเตอร์ว่างเปล่าเริ่มเปิด ตัวอักษรและช่องว่างตรงกับปุ่มปกติ แต่<ตรงกับปุ่มลูกศรซ้ายและ>ปุ่มลูกศรขวาซึ่งทั้งคู่ย้ายเคอร์เซอร์เมื่อกด

<เลื่อนเคอร์เซอร์ไปทางซ้ายหนึ่งอักขระหรือไม่ทำอะไรเลยถ้าเคอร์เซอร์อยู่ที่จุดเริ่มต้นของสตริง
>เลื่อนเคอร์เซอร์ไปทางขวาหนึ่งอักขระหรือไม่ทำอะไรเลยถ้าเคอร์เซอร์อยู่ที่ท้ายสตริง

เอาต์พุตสตริงที่จะอยู่ในเท็กซ์เอดิเตอร์เมื่อกดคีย์ทั้งหมดในสตริงอินพุตแล้ว ไม่อนุญาตให้ใช้โค้ดเอาต์พุตสำหรับเลื่อนเคอร์เซอร์เพื่อย้ายเคอร์เซอร์

จะมีอักขระที่ไม่ใช่ลูกศรอย่างน้อยหนึ่งตัวในอินพุต

เช่นการป้อนข้อมูลที่ควรผลผลิตui<<q>>ck <<<<<<the<<<<>>> >>>>>>>>brown x<o<fthe quick brown fox

op<<l>>t<<<lam>>>>>>imi<<<><>>>zer<<<<<<<<<<<<<<<<<<>>><>mllammoptimizerควรให้

e< <c<b<aabc eควรให้

<<<>><><<><toast>><<>><><<>><toastควรให้


ภารกิจที่ 4 - ตัวอักษร FILTHE

ในแบบอักษรมาก, 6 ของตัวพิมพ์ใหญ่ตัวอักษรตัวอักษรภาษาอังกฤษประกอบด้วยมิดชิดของเส้นแนวนอนและแนว: E, F, H, I, และL Tเราจะเรียกตัวอักษรเหล่านี้ว่า FILTHE

ใช้สตริงตัวอักษรตัวพิมพ์ใหญ่ (AZ) และนับจำนวนบรรทัดในตัวอักษร FILTHE เพื่อแสดงผลจำนวนเต็มผลลัพธ์

E, F, H, I, LและTมี 4, 3, 3, 3, 2 และ 2 สายตามลำดับ

เช่นGEOBITSมี 4 + 3 + 2 = 9 สายส่วนหนึ่งของตัวอักษร FILTHE (สำหรับ.E..IT.) 9ดังนั้นการส่งออกที่ควรจะเป็น

ABCDEFGHIJKLMNOPQRSTUVWXYZ17การส่งออกควร

ABCDGJKMNOPQRSUVWXYZ0การส่งออกควร

FILTHYLINESINLETTERS39การส่งออกควร


ภารกิจที่ 5 - Alex Recursive A.

ผู้ดูแลของเราอเล็กซ์เอมีชื่อย่อที่ค่อนข้างลึกลับว่า "A"

ตอนนี้ฉันไม่แน่ใจ แต่ผมคิดว่าย่อมาจากA. .A xelAและฉันยังสวยแน่ใจว่ายืนอยู่ตรงนั้นลอบสำหรับ.AAlex A.

ดังนั้นเพื่อให้ได้ชื่อเต็มของอเล็กซ์เราจะต้องขยายออกไปA.และ.A:

Alex A. -> Alex [A.] -> Alex [.A xelA] -> Alex .A xelA -> Alex [.A] xelA -> Alex [Alex A.] xelA -> Alex Alex A. xelA -> etc.

ให้โปรแกรมของคุณใช้จำนวนเต็มแบบไม่ลบและขยายAlex A.หลาย ๆ ครั้งโดยแสดงผลลัพธ์สตริง

ดังนั้น
0จะกลายเป็นAlex A.,
1กลายเป็นAlex .A xelA,
2กลายเป็นAlex Alex A. xelA,
3กลายเป็นAlex Alex .A xelA xelA,
4กลายเป็นAlex Alex Alex A. xelA xelA,
5กลายเป็นAlex Alex Alex .A xelA xelA xelA,
และอื่น ๆ

(ฉันทำสิ่งนี้เพราะฉันรู้สึกไม่ดีที่จะทิ้งอเล็กซ์โดยไม่ตั้งใจออกจากการท้าทายบรรณาการ mod : P)


ภารกิจที่ 6 - การหมุนของ Numpad

ใช้จำนวนเต็มตั้งแต่ 1 ถึง 9 (คุณอาจใช้เป็นสตริง) ส่งออกตัวเลข 3 × 3 ของตัวเลข

789
456
123

หมุนเพิ่มขึ้น 90 °เพื่อให้ตัวเลขหลักปรากฏขึ้นที่ใดก็ได้ในแถวบนสุด เมื่อ5ใดที่อินพุตเข้าการหมุนใด ๆ จะเป็นเอาต์พุตที่ถูกต้องเนื่องจาก5ไม่สามารถหมุนไปด้านบนได้

เช่นเมื่อ3มีการป้อนข้อมูลทั้งสอง

963
852
741

และ

321
654
987

เป็นผลลัพธ์ที่ถูกต้อง

สำหรับอินพุต4เท่านั้น

147
258
369

เป็นผลลัพธ์ที่ถูกต้อง


ภารกิจที่ 7 - แยกเลขเป็นสิบ

รับสายอักขระเลขฐานสิบ (0-9) ที่ไม่มีข้อยกเว้นและส่งออกค่าจริงหากสามารถแบ่งออกเป็นส่วนที่ต่อเนื่องกันโดยที่ตัวเลขทั้งหมดในแต่ละส่วนรวมเป็น 10 หากไม่สามารถทำได้ให้ส่งออกค่าเท็จ

เช่น19306128สามารถแยกออกได้เช่น19|3061|28ส่วนทั้งหมดรวมถึง 10 (1 + 9, 3 + 0 + 6 + 1, 2 + 8) ดังนั้นค่าความจริงควรออก

ตัวอย่างความจริง (หนึ่งรายการต่อบรรทัด):

19306128
073
730
0028115111043021333109010
2222255

ตัวอย่างที่เป็นเท็จ:

6810410
9218
12341
5222225
000

งาน 8 - นาฬิกาสี่เหลี่ยม

ใช้ในสตริงหลายขนาดที่มีขนาดสม่ำเสมอ

เอาต์พุต12ถ้าอินพุตคือ

 _ _
| | |
|_ _|

เอาต์พุต3ถ้าอินพุตคือ

 _ _
| |_|
|_ _|

เอาต์พุต6ถ้าอินพุตคือ

 _ _
| | |
|_|_|

เอาต์พุต9ถ้าอินพุตคือ

 _ _
|_| |
|_ _|

ไม่มีกรณีอินพุตอื่น ๆ


งานที่ 9 - วงเล็บเหลี่ยม

ใช้เวลาในสตริง 4 ไบต์ที่มีหนึ่งของแต่ละวงเล็บซ้าย(, [, {และ<ในลำดับใด

เพิ่มวงเล็บปีกกาด้านขวาที่สอดคล้องกันดังนั้นสตริงมีความยาว 8 ไบต์และมีเส้นแนวตั้งของความสมมาตร เช่นจะกลายเป็น[<({[<({})>]

จากนั้นสลับวงเล็บเหลี่ยมทุกอันในสตริงนี้ เช่นจะกลายเป็น[<({})>]]>)}{(<[

เอาท์พุทสตริงตัวยึด 8 ไบต์เดิมด้วยเวอร์ชันที่กลับด้านบนและด้านล่างในบรรทัดที่แยกกัน

ดังนั้นเอาต์พุตสุดท้ายสำหรับอินพุต[<({จะเป็น

]>)}{(<[
[<({})>]
]>)}{(<[

ในทำนองเดียวกันผลลัพธ์สำหรับ<({[ควรเป็น

>)}][{(<
<({[]})>
>)}][{(<

การป้อนข้อมูลที่(<<[ไม่ถูกต้องเนื่องจากขาดหายไปและมีความเป็นพิเศษ{<


งาน 10 - กำหนดขอบเขต

ใช้เวลาในตารางสี่เหลี่ยมของข้อความ (1 × 1 ที่เล็กที่สุด) ทำจากของ.ที่แสดงถึงพื้นที่ว่างและXของที่เป็นตัวแทนของกระเบื้องที่เป็นของแข็ง เซลล์ที่อยู่นอกขอบเขตกริดถือว่าว่างเปล่า คุณอาจสมมติว่าแถวและคอลัมน์ขอบกริด 4 รายการแต่ละรายการจะมีอย่างน้อยหนึ่งXรายการ

เช่นอินพุตที่ถูกต้องอาจเป็น:

XXX.....X.....
X..X...X.X....
XXX.....X....X

เอาท์พุทอีกตารางสี่เหลี่ยมของข้อความที่ทุกเซลล์ที่ว่างเปล่าที่เพื่อนบ้านXorthogonally หรือแนวทแยงมุม, รวมทั้งผู้ที่อยู่นอกตารางการป้อนข้อมูลที่oกลายเป็น โดยพื้นฐานแล้ว perimiter of o's จะถูกวาดรอบส่วนของแผ่นกระเบื้องที่เป็นของแข็งทั้งหมด กริดใหม่ไม่ควรมีขนาดใหญ่เกินกว่าที่ควรจะเป็น

ดังนั้นผลลัพธ์ของตัวอย่างข้างต้นจะเป็น:

ooooo...ooo.....
oXXXoo.ooXoo....
oXooXo.oXoXo.ooo
oXXXoo.ooXoo.oXo
ooooo...ooo..ooo

ในทำนองเดียวกันเอาต์พุตของอินพุตXXX..X.Xควรเป็น

oooooooooo
oXXXooXoXo
oooooooooo

และเอาท์พุท

oooooooooo.
oXXXooXoXo.
oooooooooo.

จะไม่ถูกต้องเนื่องจากคอลัมน์ด้านขวาสุดว่างเปล่าไม่จำเป็น

คุณอาจจะใช้ใด ๆ ที่แตกต่างกัน 3 ASCII พิมพ์ตัวอักษรในสถานที่ของ., และXo


งาน 11 - Sator Square

เอาท์พุทSator Square :

SATOR
AREPO
TENET
OPERA
ROTAS

ตัวอักษรใด ๆ อาจเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ดังนั้น

SatOR
aRePO
tenet
OPERa
RoTaS

เป็นเอาต์พุตที่ถูกต้อง

ไม่มีอินพุต


งาน 12 - ทวีตยอดเยี่ยม

ไม่มีอินพุต แต่เอาต์พุตสตริงASCII ที่พิมพ์ได้ 140 ไบต์ที่มีอย่างน้อยหนึ่งในอักขระ ASCII ที่พิมพ์ได้ 95 ตัว (ดังนั้น 45 ตัวอักษรจะซ้ำกัน)

ผลรวมของรหัสอักขระของ 140 ไบต์ทั้งหมดในสายอักขระนี้ต้องเป็นตัวเลือกสำคัญของ Sophie Germainเช่นหมายเลขเฉพาะpที่2p+1สำคัญ รหัสตัวอักษรสำหรับพื้นที่คือ 32, 33 !, 34 ", และอื่น ๆ ถึง ~126 ผลรวมสามารถคำนวณเป็น Python sum(map(ord, myString))ได้

ตัวอย่างผลลัพธ์คือ:

! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d

ผลรวมของรหัสตัวอักษรคือหมายเลขเฉพาะ 12203 ซึ่งมีรหัสที่ปลอดภัยที่สอดคล้องกันคือ 24407


7
ฉันจะต้องประทับใจถ้าใครจัดการแก้ปัญหาทุกอย่างในเวลาน้อยกว่า 140 ไบต์แม้แต่กับ CJam /
Pyth

9
ฉันรู้สึกเป็นเกียรติที่ได้อยู่ใน. ai พรรณี eb ot deronoh ma ฉัน ... ความท้าทายของคุณ : P
Alex A.

อนุญาตให้งานจบด้วยข้อผิดพลาดหลังจากผลลัพธ์ถูกพิมพ์ไปยังเอาต์พุตหรือไม่
torcado

1
เราควรนับจำนวนไบต์จากimports อย่างไร สมมติว่าฉันเขียน 5 ฟังก์ชันที่ 2 ต้องการโมดูลเดียวกัน (เช่นimport Math) นี่นับเป็นสองครั้งหรือไม่?
nimi

3
ฉันลงคะแนนเพื่อปิดคำถามนี้เป็นหัวข้อนอกเพราะมันเป็นความท้าทายแบบหลายส่วนที่มีปฏิสัมพันธ์ไม่เพียงพอระหว่างส่วนต่าง ๆ
pppery

คำตอบ:


10

Pyth, 9 งานใน 136 ไบต์

ภารกิจที่ 1: 7 ไบต์

<-F_SQ0

สาธิต

เรียงลำดับจากมากไปน้อย ( _SQ) พับการลบทับ ( a-b-c) ตรวจสอบว่าผลลัพธ์เป็นลบหรือไม่

ภารกิจที่ 2: 14 ไบต์

sho.a-sN^T6.pz

สาธิต

ฟอร์มการเรียงลำดับสตริงทั้งหมด ( .pz) เรียงลำดับ ( o) ตามค่าสัมบูรณ์ของความแตกต่าง ( .a-) ระหว่างตัวเลข ( sN) และหนึ่งล้าน ( ^T6)

รับสายดังกล่าวแรก ( h) และแปลงเป็นจำนวน ( s)

ภารกิจที่ 4: 19 ไบต์

s/L+\EPP*3"EFHILT"z

สาธิต

ทำซ้ำ"EFHILT"สามครั้ง ( *3) ลบส่วนท้ายLT( PP) และเพิ่มE( +\E) แมปตัวอักษรแต่ละตัวในอินพุตกับจำนวนที่ปรากฏในสตริงนั้น ( /L ... z) รวม ( s)

ภารกิจที่ 5: 16 ไบต์

u+"Alex "_GhQ".A

สาธิต

เริ่มต้นด้วย"A."ย้อนกลับและเพิ่มการ"Alex "เริ่มต้นป้อนข้อมูล + 1 ครั้ง

ภารกิจที่ 7: 13 ไบต์

}Y-RTsMM./sMz

แปลงสตริงอินพุตให้เป็นรายการของตัวเลข 1 หลัก ( sMz) ฟอร์มพาร์ติชันทั้งหมด ( ./) รวมแต่ละองค์ประกอบของแต่ละพาร์ติชัน ( sMM) ลบ 10s ทั้งหมดออกจากแต่ละรายการย่อย ( -RT) ตรวจสอบว่าสิ่งนี้ว่างเปล่าของรายการย่อยใด ๆ โดยตรวจสอบว่ารายการว่างเปล่าอยู่ในรายการโดยรวม ( }Y)

ภารกิจที่ 8: 11 ไบต์

*3h%%CQC\Ç4

สาธิต

เวทมนตร์โมดูโล่ แปลงเป็น number ( CQ) ใช้ mod 199 ( C\Ç= 199) และใช้ mod 4 นั้นจากนั้นเพิ่ม 1 และคูณด้วย 3

ภารกิจ 9: 21 ไบต์

J+Xz"<{[()]}>")_zJ_JJ

สาธิต

ครั้งแรกที่เราสร้างบรรทัดแรกซึ่งประกอบด้วยการป้อนข้อมูลการแปลเป็นตัวอักษรกระจก ( Xz"<{[()]}>")) ตามด้วยการป้อนข้อมูลแบบผันกลับ ( + ... _z) Jและบันทึกลงใน จากนั้นพิมพ์บรรทัดนั้นกลับด้านและบรรทัดนั้นอีกครั้ง ( J_JJ)

งาน 11: 22 ไบต์

+J"SATOR
AREPO
TEN"t_J

สาธิต

เพียงแค่พิมพ์สตริงและการกลับรายการของมัน Nแต่ไม่ซ้ำกันศูนย์

งาน 12: 13 ไบต์

++G*19\3srd\

สาธิต

มีอักขระ invisble DEL( 7F) ที่ท้ายรหัส

งานพิมพ์นี้

abcdefghijklmnopqrstuvwxyz3333333333333333333 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

11321ซึ่งมีผลรวมของตัวละคร ประกอบด้วยGตัวอักษรตัวอักษร 19 3วิและตัวอักษร ASCII ที่พิมพ์ได้ทั้งหมด


28

CJam, 8 9 งานใน 140 ไบต์

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

{\s\Se[oSo}:F;
qN/ee{W=,}${)_,_T+:T140>X*_{0:X;}*'=@11+*N+*o\~)YF_,ZFTZFoNo}/

เพียงวาง 12 โซลูชั่นของคุณลงในอินพุตหนึ่งรายการในแต่ละบรรทัด เรียกใช้ที่นี่ คอลัมน์แรกคือหมายเลขงานที่สองขนาดของมัน (ในตัวอักษร - คุณจะต้องแก้ไขด้วยตัวคุณเองหากที่แตกต่างจากจำนวนไบต์) ที่สามคือขนาดสะสม ===โปรแกรมที่พอดีกับทวีตจะถูกแยกออกจากส่วนที่เหลือกับสายของ

สำหรับฉันผลลัพธ์จะเป็นดังนี้:

 1   7   7 q~$~\->
 8  10  17 qDbJ%5/)3*
12  12  29 ',32>_51>'d
 7  13  42 Aq{~-Ace|}/N&
 2  15  57 qe!{~1e6-z}$0=~
 4  19  76 q"FIHEELT"3*H<fe=:+
 5  20  96 ".A"q~){" xelA"+W%}*
 9  22 118 q_{_')>+)}%W%+_W%N@N3$
11  22 140 "SATOR\AREPO\TEN"_W%1>
====================================
 6  25 165 9,:)s3/zq~))3mdg*{W%z}*N*
 3  43 208 LLq{_'=-z({+}{'=>_)$\[{)@+\}{\(@\+}]=&}?}/\
10  45 253 0XW]_m*qN/{'.f+W%z}4*f{\~@m>fm>N*}(\{8f^.e>}/

ดังนั้นนี่คือภารกิจที่ฉันสามารถใส่ลงไปในทวีตได้

ภารกิจที่ 1 - ตัวเลขสามตัวสามารถสร้างรูปสามเหลี่ยมได้หรือไม่? - 8 7 ไบต์

ขอบคุณ jimmy23013 สำหรับการบันทึก 1 ไบต์

q~$~\->

ชุดทดสอบ

การป้อนข้อมูลคาดว่าจะเป็นรายการสไตล์ CJam

ค่อนข้างตรงไปตรงมา: ตรวจสอบว่าด้านที่ใหญ่ที่สุดสั้นกว่าผลรวมของอีกสองด้าน หรือตรวจสอบอย่างเท่าเทียมกันว่าด้านที่สั้นที่สุดนั้นยาวกว่าความแตกต่างของอีกสองด้าน:

q~  e# Read and eval input.
$~  e# Sort the values and dump them on the stack.
\-  e# Subtract the middle value from largest.
>   e# Check if the smallest value is greater than that.

ภารกิจที่ 2 - มากที่สุดถึงหนึ่งล้าน - 15 ไบต์

qe!{~1e6-z}$0=~

ชุดทดสอบ

แรงเดรัจฉานง่าย ๆ :

q        e# Read input.
e!       e# Get all permutations.
{        e# Sort by...
  ~      e#   Evaluate the permutation to get its numerical value X.
  1e6-z  e#   abs(X - 1,000,000)
}$
0=       e# Pick the first element (which minimises the difference)
~        e# Evaluate it to get rid of the leading zeroes.

ภารกิจที่ 4 - ตัวอักษร FILTHE - 21 19 ไบต์

ขอบคุณ jimmy23013 สำหรับการบันทึก 2 ไบต์

q"FIHEELT"3*H<fe=:+

ชุดทดสอบ

ความคิดคือการสร้างสตริงที่มีตัวอักษร FILTHE แต่ละตัวสำหรับแต่ละบรรทัดของมุมฉาก สิ่งนี้ทำผ่านการจัดการสตริงตลก ๆ :

q          e# Read the input.
"FIHEELT"  e# Push this string. It first contains the 3-line letters, then the 2-line 
           e# letters, where we include 'E' twice to make it count for 4.
3*         e# Repeat 3 times: "FIHEELTFIHEELTFIHEELT"
H<         e# Truncate to 17 characters: "FIHEELTFIHEELTFIH". This is chosen such that
           e# it discards the third repetition of the 2-line letters.
fe=        e# For each character in the input, count its occurrences in this new string.
:+         e# Sum them all up.

ภารกิจที่ 5 - Alex Recursive A. - 27 20 bytes

".A"q~){" xelA"+W%}*

ชุดทดสอบ

การทำ substition A.และ.Aโดยตรงนั้นแพงเกินไป แต่เราสังเกตเห็นว่าเราต้องจัดการกรณีเดียวเท่านั้นถ้าเราย้อนกลับสตริงในแต่ละครั้ง นอกจากนี้การเติมAlex(และช่องว่าง) ในแต่ละครั้งจะเทียบเท่ากับการขยายเริ่มต้น เราสามารถบันทึกไบต์อื่นได้โดยเพิ่มการย้อนกลับก่อนที่จะย้อนกลับสตริง:

".A"        e# Start with ".A" (the -1st iteration if you like).
q~)         e# Read input, eval, increment (so the following block is run at least once.)
{           e# Repeat this block that many times...
  " xelA"+  e#   Append " xelA".
  W%        e#   Reverse the string.
}*

ภารกิจที่ 7 - แยกตัวเลขเป็นสิบ - 18 16 13 ไบต์

Aq{~-Ace|}/N&

ชุดทดสอบ (พร้อมวงเล็บรอบแต่ละเอาต์พุต)

ไม่เป็นมิตรกับผู้ใช้อย่างแน่นอน: ค่าความจริงคือขึ้นบรรทัดใหม่เดียวค่าเท็จคือสตริงว่าง

แนวคิดพื้นฐานนั้นง่าย ๆ : เพิ่มตัวเลขลงในผลรวมสะสมที่เราตั้งค่าใหม่เมื่อใดก็ตามที่มันเข้าชมตรงที่ 10 ทั้งหมดจะต้องเป็นศูนย์ที่ส่วนท้ายของอินพุต สำหรับการเริ่มต้นมันจะสั้นกว่าจำนวนรวมที่ 10 และลบตัวเลขการรีเซ็ตผลรวมเมื่อเรากด 0 อย่างไรก็ตามเราต้องแน่ใจว่าเราจะไม่ส่งคืนความจริงเมื่ออินพุตเป็นศูนย์ทั้งหมด วิธีที่สั้นที่สุดที่ฉันพบว่าทำเพื่อรีเซ็ตจำนวนทั้งหมดเป็นอักขระด้วยรหัสจุด 10 (linefeed) จากนั้นตรวจสอบในตอนท้ายว่าเรามีอักขระนั้นจริงบนสแต็กไม่ใช่จำนวน 10 ตัวนี้ทำงานได้ เนื่องจากทั้งศูนย์จำนวนเต็มและอักขระศูนย์ (ไบต์ว่าง) เป็นเท็จ:

A     e# Push a 10, the initial running total.
q{    e# For each character in the input...
  ~-  e#   Evaluate the character to get the digit and subtract it from the total.
  Ac  e#   Push a linefeed character.
  e|  e#   Logical OR of the running total and the linefeed character (using
      e#   short-circuiting).
}/
N&    e# Take the set intersection with the string containing a linefeed character.
      e# If the total is still a number of any character other than the linefeed,
      e# this will yield an empty string. Otherwise, the string will remain unchanged
      e# and the linefeed will be printed.

ภารกิจ 8 - นาฬิกาสี่เหลี่ยม - 10 ไบต์

qDbJ%5/)3*

ชุดทดสอบ

นี่เป็นเวทย์มนตร์แบบโมดูโลแบบสุ่มที่น่าอัศจรรย์ในรหัสตัวละครที่เกิดขึ้นกับค่าที่ถูกต้อง ฉันค่อนข้างมั่นใจว่าสิ่งที่สั้นกว่านั้นเป็นไปได้ แต่มันสั้นที่สุดที่ฉันพบ (โดยทางโปรแกรม) สำหรับโครงสร้างประเภทนี้:

q   e# Read the input.
Db  e# Treat the character codes of the string as digits in base 13. This maps the
    e# four inputs to the values: 2023940117708546863
    e#                            2023940113755405840
    e#                            2023940781838850791
    e#                            2023940113755390292
J%  e# Take the result modulo 19. This gives [2, 5, 12, 18], respectively.
5/  e# Divide by 5 (rounding down). [0, 1, 2, 3], respectively.
)   e# Increment. [1, 2, 3, 4], respectively.
3*  e# Multiply by 3. [3, 6, 9, 12], respectively.

งาน 9 - วงเล็บเหลี่ยม - 23 22 ไบต์

ขอบคุณ Sp3000 สำหรับการบันทึก 1 ไบต์

q_{_')>+)}%W%+_W%N@N3$

ชุดทดสอบ

ค่อนข้างตรงไปตรงมา การจับคู่ระหว่างวงเล็บปีกกาซ้ายและขวาทำได้โดยการเพิ่ม 2 (หรือ 1 สำหรับวงเล็บ):

q_      e# Read input and duplicate.
{       e# Map this block onto each character...
  _')>  e#   Duplicate and check if it's not a parenthesis.
  +     e#   Add the result, leaving parentheses unchanged and incrementing the
        e#   other bracket types.
  )     e#   Increment again.
}%
W%+     e# Reverse and add to the original, giving the middle line.
_W%     e# Duplicate and reverse, giving the first line.
N@      e# Push a linefeed, pull up the middle line.
N3$     e# Push another linefeed, copy the first line.

งาน 11 - Sator Square - 22 ไบต์

"SATOR
AREPO
TEN"_W%1>

ทดสอบที่นี่

อาจเป็นทางออกที่น่าเบื่อที่สุดของทั้งหมด มันจะผลักดันครึ่งแรกของสายอักขระแล้วจึงย้อนกลับ:

"SATOR
AREPO
TEN"    e# Push everything up to the centre of the square.
_W%     e# Duplicate and reverse.
1>      e# Discard the "N", because we don't want that twice.

งาน 12 - ทวีตยอดเยี่ยม - 13 12 ไบต์

',32>_51>'d

ทดสอบที่นี่ (พร้อมเอาต์พุตการวินิจฉัยสำหรับผลลัพธ์)

หลังจากนั้นจะ'มีรอยขีดข่วน<DEL>(0x7F) ซึ่ง SE ตัดออก สำหรับการคัดลอกวางใช้รุ่นนี้แทน:

'~),32>_51>'d

สตริงที่พิมพ์คือ

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d

นั่นคือมันมีหนึ่งในการทำงานของตัวละครทุกตัวตามด้วยวิ่งอีกจากSที่จะตามมาด้วยการเป็นหนึ่งเดียว~ dผลรวมของรหัสตัวละครคือ 12203 ฉันพบสิ่งนี้ผ่านการลองผิดลองถูก

'~),32>  e# Push a string with all printable characters.
_51>     e# Duplicate this and discard the first 51 of them.
'd       e# Push a "d".

1
q~$~\-> q"FIHEELT"3*H<fe=:+.
jimmy23013

@ jimmy23013 โอ้โหฉันลืมไปแล้วว่าพวกเรามีe=วันนี้
Martin Ender

ฉันหวังว่าจะได้รับคำตอบเพียงพอที่จะโพสต์บางสิ่งก่อนที่คุณจะเห็นวิธีทำ # 5 ใน 20 ตัวอักษร
Peter Taylor

19

Pyth, 9 งานใน 138 ไบต์

ใช้เวลาสักครู่

ฉันคิดว่างาน 9 ข้อ จำกัด สำหรับ Pyth การรวมโปรแกรมที่สั้นที่สุดถัดไป (Sator Square) ให้ผลลัพธ์เป็น 160 ไบต์ การเล่นกอล์ฟ 20 ไบต์ค่อนข้างไม่น่าเป็นไปได้ มีงาน 2 หรือ 3 งานซึ่งน่าเกลียดเล็กน้อยและอาจสั้นลง แต่โดยรวมแล้วฉันพอใจกับวิธีแก้ปัญหามาก

ภารกิจที่ 1 - ตัวเลขสามตัวสามารถสร้างรูปสามเหลี่ยม A ได้หรือไม่? 8 ไบต์

>FsMc2SQ

ลองใช้ออนไลน์: อินพุตปกติหรือชุดทดสอบ

ภารกิจที่ 2 - มากที่สุดถึงหนึ่งล้าน 14 ไบต์

ho.a-^T6NsM.pz

ลองใช้ออนไลน์: อินพุตปกติหรือชุดทดสอบ

ภารกิจที่ 4 - ตัวอักษร FILTHE ขนาด 20 ไบต์

s*Vtsmmdd5/Lz"TLIHFE

ลองใช้ออนไลน์: อินพุตปกติหรือชุดทดสอบ

ภารกิจที่ 5 - Alex Recursive A. , 16 ไบต์

u+"Alex "_GhQ".A

ลองใช้ออนไลน์: อินพุตปกติหรือชุดทดสอบ

ภารกิจที่ 6 - การหมุนของ Numpad ขนาด 20 ไบต์

jeo}zhN.uC_N3_c3jkS9

ลองใช้ออนไลน์: อินพุตปกติหรือชุดทดสอบ

ภารกิจที่ 7 - แยกตัวเลขเป็นสิบ, 15 ไบต์

qTu+WnGTvHG-zZZ

ลองใช้ออนไลน์: อินพุตปกติหรือชุดทดสอบ

งาน 8 - นาฬิกาสี่เหลี่ยม 12 ไบต์

*3%%Cz1978 5

ลองใช้ออนไลน์: อินพุตปกติหรือชุดทดสอบ

ภารกิจ 9 - Bracket Art, 20 ไบต์

V3_WtN+z_Xz"[<({})>]

ลองใช้ออนไลน์: อินพุตปกติหรือชุดทดสอบ

งาน 12 - ทวีตยอดเยี่ยม, 13 ไบต์

++*d44srd\\&

ลองออนไลน์: อินพุตปกติ


2
การรวมผลลัพธ์การส่งของเราใน 133 ไบต์
isaacg

9

TI-BASIC 11 11งานใน728 830 ไบต์

ภารกิจที่ 1 ใน 7 ไบต์

:2max(Ans)`<`sum(Ans

Ansการป้อนข้อมูลเป็นรายการใน

ภารกิจที่ 2 ใน92 110 ไบต์

:seq(expr(sub(Ans,I,1)),I,1,7→L₁
:SortA(L₁
:min(7,1+sum(not(L₁
:{L₁(1)+sum(seq(L₁(I))₁₀^(I-8),I,2,7)),L₁(Ans)+sum(seq((I`>`Ans)L₁(I)₁₀^(1-I),I,2,7
:ᴇ6Ans(1+(0`>`min(ΔList(abs(1-Ans

แจ้งสำหรับรายการของตัวเลขAnsอินพุตคือสตริงใน

ภารกิจที่ 3 ใน 119 ไบต์

:Input Str1
:"  →Str2
:For(I,1,length(Str1
:sub(Str1,I,1→Str3
:inString("`<>`",Ans
:If Ans:Then
:max(0,min(L,C+2Ans-3→C
:Else
:C+1→C
:L+1→L
:sub(Str2,1,C)+Str3+sub(Str2,C+1,L-C+1→Str2
:End
:End
:sub(Str2,2,L

พร้อมต์สำหรับสตริง สมมติว่า C และ L ไม่ได้ถูกกำหนดหรือ 0

ภารกิจที่ 4 ใน 35 ไบต์

:sum(int(2seq(inString("TLIHFE",sub(Ans,I,1))^.4,I,1,length(Ans

Ansการป้อนข้อมูลเป็นสตริงใน

ภารกิจที่ 5 ใน 63 ไบต์

:Ans/2→C
:sub("A.A",1+2fPart(C),2
:For(I,0,C
 :"Alex "+Ans
 :If I≠C
  :Ans+" xelA
:End
:Ans

Ansการป้อนข้อมูลเป็นตัวเลขที่อยู่ใน

ภารกิจที่ 6 ใน 66 ไบต์

: 𝑖 ^ ((Ans <7) (Ans-3 (Ans-3) >สำหรับ (Y, ⁻1,1: ผลรวม (seq ((5-real (AnsX + Ans𝑖Y)) -3imag (AnsX + Ans𝑖Y)) ₁₀ ^ ( X + 1), X, ⁻1,1: สิ้นสุด

Ansการป้อนข้อมูลเป็นตัวเลขที่อยู่ใน

ภารกิจ 7 ใน36 43 ไบต์

:Input <strike>L₁</strike>Str1
:.5
:For(I,1,<strike>dim(L₁</strike>length(Str1
 :Ans+<strike>L₁(I</strike>expr(sub(Str1,I,1
 :If 10=int(Ans
  :0
:End
:not(Ans

พร้อมต์สำหรับรายการของสตริงตัวเลข

ภารกิจที่ 8 ใน 29 ไบต์

:18fPart(sum(seq(I(sub(Ans,I,1)=" ")/6,I,1,15

Ansการป้อนข้อมูลเป็นสตริงใน

งาน 9 ใน 83 ไบต์

:For(I,1,16,2
 :If I<8
  :Ans+sub("`)}]>`",inString("`({[<`",sub(Ans,4,1)),1
 :sub(Ans,I,1)+Ans
:End
:For(I,⁻1,1
 :Disp sub(Ans,9-8abs(I),8
:End

Ansการป้อนข้อมูลเป็นสตริงใน

ภารกิจที่ 10 ใน 159 ไบต์

:1→X
:Input Str1
:2+length(Str1→L
:"X
:While 2+L`>`length(Ans
 :Ans+Ans→Str2
:End
:Ans→Str3
:While 1
 :"XX
 :Ans+Str1+Ans→Str1
 :For(I,1,L
  :Ans+sub("0X.",2expr(sub(Str2,I+1,1))+not(expr(sub(Ans,I,3)+sub(Str2,I,3)+sub(Str3,I,3))),1
 :End
 :Disp sub(Ans,L+3,L
 :Str2→Str3
 :Str1→Str2
 :Input Str1
:End

ใช้X0.แทน.Xoตามลำดับ (ขออภัยไม่มีอะไรที่ตรงกัน) แสดงพร้อมต์สำหรับอินพุตบรรทัดต่อบรรทัด คุณต้องป้อนXs สองบรรทัดเพื่อดูผลลัพธ์ทั้งหมดแล้วเลือก 2nd + Quit เพื่อออก

งานที่ 11 ใน 39 ไบต์

:Disp "SATOR
:Disp "AREPO
:Disp "TENET
:Disp "OPERA
:Disp "ROTAS

งานที่ 12 ใน 77 ไบต์

: Ans + "tvm_I% LinReg (ขวาน + b) DS <(getKeyconj (1-PropZTest (dayOfWk (พอดีด้วยตนเอง C / YANOVA (แถว * (HorizRegEegnQUA [J]! # $ &'',. 234567890:; = >? @GBQX \^) _`qw {|} ~

หรือเป็น hex:

72702ABB21FFDBADBB25BB3EEF06EF16
6331BB5917746201BB695C092DBBD2BB
D3BBD4AEAE2B3A323334353637383930
3EBBD66A6CAFBBD147425158BBD7F0BB
D9BBD5BBC1BBC708BBD809BBCF

การป้อนข้อมูลเป็นสตริงที่มีใน"Ans

นี่เป็นไปไม่ได้ใน TI-BASIC คุณสามารถแก้ไขโปรแกรมพื้นฐานและใช้โทเค็น 2 ไบต์บางตัวเพื่อรับอักขระ ascii ที่พิมพ์ได้ทั้งหมดลงในซอร์สโค้ด แต่นั่นไม่ใช่ปัญหา ปัญหาคือไม่มีวิธีเก็บ"อักขระไว้ในสตริงใน pure basic บน clean calc ที่ไม่มีอินพุตโปรแกรม (เช่นเดียวกับอักขระ แต่ไม่สามารถพิมพ์ ASCII ได้) อย่างไรก็ตามเป็นไปได้ที่จะใส่"สมการไว้ข้างนอกพื้นฐานหลังจากนั้นคุณสามารถใช้พื้นฐานเพื่อแปลงสมการเป็นสตริงและแสดงสตริงนั้น เหนือสิ่งอื่นใดมีที่ว่างบนหน้าจอเพียง 128 ตัวอักษรในแต่ละครั้ง


7

Perl, 4 งานใน 117 ไบต์

ลองภาษาที่แท้จริงกันเถอะ;)

ยังไม่ยอมแพ้อาจจะสามารถบีบงานได้ 5 งานใน 140 ไบต์แม้ว่าจะไม่แน่!

* ภารกิจที่ 1: 30 + 1 = 31 ไบต์

@F=sort@F;say$F[0]+$F[1]>$F[2]

การใช้งาน: perl -aM5.010 entry.pl input.txt

* ภารกิจ 4: 32 + 1 = 33 ไบต์

y/ELTFHI/4223/;s/./+$&/g;$_=eval

การใช้งาน: perl -p entry.pl input.txt

ภารกิจที่ 5: 54 ไบต์

say"Alex "x($_/2+1).qw(A. .A)[$_%2]." xelA"x(--$_/2+1)

-2b ขอบคุณ Dom Hastings

การใช้งาน: echo 4 | perl -M5.010 entry.pl

ภารกิจที่ 7: 37 + 2 = 39 ไบต์

($i+=$_)>10&&exit,$i%=10for@F;$_=!$i;

การใช้งาน: perl -pF entry.pl input.txt

* ภารกิจ 8: 21 + 2 = 23 ไบต์

$_=y/|_ 
/14/dr/64%14

นี่เป็นสิ่งที่ค่อนข้างยุ่งยาก เริ่มต้นจากการโดยการเปลี่ยนแต่ละ|ที่มีxและแต่ละคน_มีyแล้วแทนที่ช่องว่างในการผลิตสองสายหลักที่ไม่ซ้ำกันในแต่ละตาราง ( yyxxyxxyyx, yyxxyxxyyxyyxxxxyxyx, yyxxxxyxyxyyxyxxxyyx, yyxyxxxyyxyyxxxxyyx, yyxxxxyyx) ต่อไปฉันเขียนโปรแกรมเพื่อระบุค่าสำหรับxและyและการดำเนินการทางคณิตศาสตร์ที่สามารถทำได้กับตัวเลขที่สร้างขึ้นหลังจากการแทนที่xและyเพื่อให้ผลลัพธ์ของ 3,6,9,12 สำหรับแต่ละหมายเลข ในท้ายที่สุดx=1, และการดำเนินงานเป็นมายากลy=4/64%14

การใช้งาน: perl -0p entry.pl input.txt

งาน 11: 34 ไบต์

say"SATOR
AREPO
TENET
OPERA
ROTAS"

การใช้งาน: perl -M5.010 entry.pl

* ภารกิจ 12: 30 ไบต์

say d.pack"C*",32..126,83..126

การใช้งาน: perl -M5.010 entry.pl

คำเตือน: -M5.010 ถือว่าเป็น 'ฟรี'


ทับทิมจริงน้อยกว่า Perl หรือเปล่า ;)
Martin Ender

9
เมื่อฉันเห็นคำตอบของคุณ (ซึ่งดูเหมือนเสียงรบกวน) ฉันจะไม่ถือว่า Perl เป็นภาษาจริง )
ทำให้เสียชีวิต

1
เยี่ยมมาก! ฉันคิดว่าคุณสามารถบันทึก 2 ไบต์กับqw(A. .A)[$_%2]แทน("A.",".A")[$_%2]ในงาน 5 และผมมั่นใจว่าคุณจะได้รับไม่กี่ไบต์อื่นออกไป ...
Dom เฮสติ้งส์

6

Ruby, 4 งานใน 280 ไบต์ (ไม่มีการแข่งขัน)

นี่เป็นเพียงความพยายามฉันจะดำเนินการต่อในภายหลัง

ภารกิจที่ 1

a=gets.split.map &:to_i;p a.all?{|e|e<a.inject(:+)-e}

ภารกิจที่ 2

p gets.chars.permutation.map{|a|a.join.to_i}.min_by{|x|(x-1e6).abs}

ภารกิจที่ 4

n,b='EFHILT',0;gets.chars.map{|c|b+=n[c]==p ? 0:[4,3,3,3,2,2][n.index c]};p b

ภารกิจที่ 5

a='Alex A.';gets.to_i.times{|i|i%2<1 ? a.sub!('A.','.A xelA'):a.sub!('.A',a)};$><<a

6

TI-BASIC 12 งานใน 994 ไบต์

ดาวน์โหลดทั้งหมดเป็นไฟล์กลุ่ม TI ( .8xg )

(เพิ่มแท็กสปอยเลอร์ตามคำขอ)

ภารกิจที่ 1 - ตัวเลขสามตัวสามารถสร้างรูปสามเหลี่ยมได้หรือไม่? - 7 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:2max(Ans)<sum(Ans

ภารกิจที่ 2 - มากที่สุดถึงหนึ่งล้าน - 114 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:int(10fPart(Ans\10^(\-cumSum(binomcdf(6,0→X
:"sum(\L\X\10^(\cumSum(not(binompdf(6,0→\Y1\
:SortD(\L\X
:\Y1\→X
:sum(not(\L\X
:If Ans
:Then
:If max(\L\X=1
:X+\E\6-\10^(\6-Ans→X
:SortA(\L\X
:augment(ΔList(cumSum(\L\X)),{0→X
:End
:{X,\Y1\
:Ans(1+(0>min(ΔList(abs(\E\6-Ans

ภารกิจ 3 - Simple Keyboard Simulator - 131 127 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:Input Str1
:DelVar X1→Y
:"..→Str2
:For(Z,1,length(Str1
:sub(Str1,Z,1→Str3
:(Ans=">")-(Ans="<
:If Ans
:Then
:max(1,min(Y+Ans,X+1→Y
:Else
:sub(Str2,1,Y)+Str3+sub(Str2,Y+1,X-Y+2→Str2
:X+1→X
:Y+1→Y
:End
:End
:sub(Str2,2,X

ภารกิจที่ 4 - ตัวอักษร FILTHE - 34 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:sum(int(\³√(\12seq(inString("TLIHFE",sub(Ans,X,1)),X,1,length(Ans

ภารกิจที่ 5 - Alex Recursive A. - 107 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:Input X
:".A..
:For(X,0,X
:Ans→Str1
:5int(.5X+.5
:sub(Str1,1,Ans+1)+sub(".A xelAlex A.",6gcd(X,2)-5,7)+sub(Str1,Ans+4,5X-Ans+1
:End
:sub(Ans,2,5X+2

ภารกิจที่ 6 - การหมุนของ Numpad - 86 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:.3Ans+2(Ans=6→X
:[[9,6,3][8,5,2][7,4,1
:For(X,0,X
:rowSwap(Ans\^T\),1,3
:End
:Ans
:*row+(10,*row+(10,Ans\^T\,1,2),2,3
:For(X,1,3
:Disp Ans(3,X
:End

ภารกิจที่ 7 - แยกตัวเลขเป็นสิบ - 77 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:Ans+"0
:seq(expr(sub(Ans,X,1)),X,1,length(Ans
:augment(Ans,{10not(not(max(Ans→X
:1→X
:Repeat Ans≥dim(\L\X
:Ans+1
:If 10=sum(\L\X,X,Ans
:Ans+1→X
:End
:X=Ans

งาน 8 - นาฬิกาสี่เหลี่ยม - 35 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:12-3max(seq(X(sub(Ans,6gcd(X,2)+X,1)≠" "),X,1,3

ภารกิจ 9 - Bracket Art - 86 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:Input Str1
:For(X,1,4
:For(Y,0,1
:abs(X-9not(Y→Z
:"()[]{}<>
:sub(Ans,inString(Ans,sub(Str1,X,1))+Y,1
:Output(1,Z,Ans
:Output(2,9-Z,Ans
:Output(3,Z,Ans
:End
:End

งาน 10 - กำหนดขอบเขต - 218 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:".
:For(A,0,\E\9
:Input Str1
:Ans+Str1→Str2
:If Str1≠".
:End
:length(Ans→X
:round(A\^-1\(Ans-2→B
:seq(expr(sub(Str2,A,1)),A,2,X-1→B
:πAns→C
:"augment(Ans,augment(Ans,\L\B))+augment(Ans,augment(\L\C,Ans))+augment(\L\B,augment(Ans,Ans→X
:seq(0,A,1,B
:\L\X→A
:For(C,0,A+1
:seq(\L\A(A+BC),A,1,B→C
:int(Ans→B
:{0
:1+not(\L\X)+not(fPart(\L\X→B
:".
:For(X,1,B+2
:Ans+sub("120",\L\B(X),1
:End
:Disp sub(Ans,2,B+2
:End

มีการแทนที่เหล่านี้: 0= ., 1= X, 2=o

สำหรับอินพุต (หลังจากโปรแกรมเริ่มต้น) ให้พิมพ์ครั้งละหนึ่งแถวแล้วกด Enter ที่ตัวแบ่งแต่ละบรรทัดจนกระทั่งแถวสุดท้ายถูกเขียนออกมา จากนั้นกด Enter พิมพ์หนึ่งช่วงเวลาจากนั้นกด Enter อีกครั้งเพื่อส่งสตริงทั้งหมด

งาน 11 - Sator Square - 38 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:Disp "SATOR","AREPO","TENET","OPERA
:"ROTAS

ภารกิจที่ 12 - ทวีตยอดเยี่ยม - 151 ไบต์

ดาวน์โหลดเป็นไฟล์โปรแกรม TI-83 + ( .8xp )

:Ans+"!#$%&'()*+,-./01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
:For(X,1,45
:Ans+" 
:End
:Ans

Ansควรมีเครื่องหมายคำพูดคู่ดำเนินการโดยการพิมพ์โดยตรง\Y1\จากตัวแก้ไขสมการและเรียกใช้Equ►String(\Y1\,Str1:Str1จากหน้าจอหลัก

ความยาวผลลัพธ์คือ 140 8 ปรากฏขึ้นสองครั้งและมีช่องว่าง 45 ช่องพร้อมกับอักขระ ASCII อื่น ๆ แต่ละรายการปรากฏขึ้นหนึ่งครั้ง จำนวนนี้เป็น (33 + 34 + ... + 126) + 56 + 32 × 45 = 8969, Prime Sophie Germain


ฉันถาม OP และคุณสามารถนับสัญญาณเช่นsin(การแสดงs, i, nและ(ในงาน 12
lirtosiast

0

Python 3, 1 งาน, 268 ไบต์, ไม่สามารถแข่งขันได้

ฉันลอง Task # 2 ใน Python 3.5.2 ฉันใหม่กับ code golfing และ python

import itertools
def f2(l):
    n=1000000
    l=list(itertools.permutations(l))
    j = len(l)
    m=[None]*j
    while j>0:
        j -= 1
        m[j]= int(''.join(str(i) for i in l[j]))
        l[j]=abs(n-m[j])
    l.sort()
    k=n-l[0]
    return(n+l[0],k)[k in m]

ยินดีต้อนรับสู่ PPCG คุณจะพบในหลาม 3 คุณสามารถใส่ข้อความบางส่วนของคุณลงในหนึ่งบรรทัดตัวอย่างเช่นคุณสามารถเขียนได้x=10;print(x)สิ่งนี้จะช่วยให้บางส่วนของย่อหน้า
george
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.