การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

30
เมื่อใด (x == x + 2) [ปิด]
ความท้าทาย: กำหนดxในลักษณะที่การแสดงออก(x == x+2)จะประเมินเป็นจริง ฉันติดแท็กคำถามด้วย C แต่ยินดีต้อนรับคำตอบในภาษาอื่นตราบใดที่พวกเขามีความคิดสร้างสรรค์หรือเน้นแง่มุมที่น่าสนใจของภาษา ฉันตั้งใจจะยอมรับโซลูชัน C แต่ภาษาอื่นสามารถรับการโหวตของฉันได้ ถูกต้อง - ทำงานกับการใช้งานที่ได้มาตรฐาน ข้อยกเว้น - สมมติว่ามีการใช้งานประเภทพื้นฐานหากเป็นการใช้งานทั่วไป (เช่นสมมติว่าintเป็นส่วนประกอบ 32 บิต 2) ก็โอเค ง่าย - ควรมีขนาดเล็กใช้คุณสมบัติภาษาขั้นพื้นฐาน น่าสนใจ - เป็นเรื่องส่วนตัวฉันยอมรับ ฉันมีตัวอย่างสำหรับสิ่งที่ฉันคิดว่าน่าสนใจ แต่ฉันไม่ต้องการให้คำแนะนำ อัพเดต : การหลีกเลี่ยงตัวประมวลผลล่วงหน้าเป็นสิ่งที่น่าสนใจ ด่วน - คำตอบที่ดีแรกจะได้รับการยอมรับ หลังจากได้รับคำตอบ 60 ครั้ง (ฉันไม่เคยคาดหวังว่าจะมีการคาดการณ์เช่นนี้) มันอาจเป็นการดีที่จะสรุปพวกเขา 60 คำตอบแบ่งเป็น 7 กลุ่มโดย 3 กลุ่มสามารถนำไปใช้ใน C ส่วนที่เหลือเป็นภาษาอื่น: ตัวประมวลผลล่วงหน้า C …
90 math  arithmetic  c 

30
เพื่อเป็นเกียรติแก่อดัมเวสต์
อดัมเวสต์จากไปและฉันต้องการที่จะให้เกียรติความทรงจำของเขาที่นี่ใน PPCG แม้ว่าฉันจะสงสัยว่าเขารู้จักการดำรงอยู่ของเรา ในขณะที่มีหลายสิ่งที่แตกต่างมากมายที่ผู้ชายคนนี้เป็นที่รู้จักกันไม่มีใครโดดเด่นกว่าบทบาทของเขาในฐานะแบทแมนเดิม ฉันจำได้ว่าพ่อเลี้ยงของฉันยังคงเฝ้าดูแบทแมนและโรบินมาจนถึงทุกวันนี้ ความท้าทายนี้เป็นเรื่องง่ายในธรรมชาติไม่ใช่ทุกคนที่มีความซับซ้อนเช่นอดัมเวสต์ อย่างไรก็ตามมันเป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้เพราะนี่คือภาพลักษณ์ที่โดดเด่นที่สุดในอาชีพของชายคนนี้ ฉันต้องการโพสต์ก่อนหน้านี้ แต่ฉันกำลังรอให้บางคนมาพร้อมกับสิ่งที่ดีกว่า เอาท์พุทต่อไปนี้ (มีหรือไม่มีช่องว่างต่อท้าย / ขึ้นบรรทัดใหม่): * * **** * * **** **** ******* **** ****** ******* ****** ********* ********* ********* *********************************************** ************************************************* ************************************************* ************************************************* *********************************************** ***** ********************* ***** **** *** ***** *** **** ** * *** * ** นี่คือรหัส - กอล์ฟจำนวนไบต์ต่ำสุดจะเป็นผู้ชนะ

30
4, 8, 15, 16, 23, 42 [ปิด]
4, 8, 15, 16, 23, 42 เขียนโปรแกรมที่ให้ลำดับของตัวเลขนี้อย่างไม่สิ้นสุด อย่างไรก็ตามตัวเลขจะต้องไม่ปรากฏในซอร์สโค้ดของคุณทุกที่ ต่อไปนี้ไม่ใช่โปรแกรม Java ที่ถูกต้องในการส่งออก The Numbers เพราะ The Numbers ปรากฏในซอร์สโค้ด: class TheNumbers { public static void main(String[] args) { for(int n = 0;;) System.out.println( n == 4 ? n = 8 : n == 8 ? n = 15 : n == 15 …

30
5 ตัวอักษรโปรด
ความท้าทายนั้นง่ายมากจริง ๆ เลือกตัวอักษรที่แตกต่างกัน 5 ตัว (คุณสามารถเลือก 5 ตัวที่อนุญาตให้คุณใส่รหัสที่สั้นที่สุดได้ถ้าต้องการ) แล้วเอาออกไปที่คอนโซล อย่างไรก็ตามการบิดคือต้องมาจากรายการต่อไปนี้: AAA BBBB CCCC DDDD EEEEE FFFFF GGG H H A A B B C D D E F G H H AAAAA BBBB C D D EEEE FFFF G GG HHHHH A A B B C D D E F …

30
Code Golf Christmas Edition: วิธีการพิมพ์ต้นคริสต์มาสที่มีความสูง N
กำหนดตัวเลขNฉันจะพิมพ์ต้นคริสต์มาสสูงNโดยใช้จำนวนอักขระน้อยที่สุดได้อย่างไร Nถูก จำกัด ด้วยค่าต่ำสุดที่3และค่าสูงสุดของ30(ขอบเขตและการตรวจสอบข้อผิดพลาดไม่จำเป็น) Nถูกกำหนดให้เป็นอาร์กิวเมนต์บรรทัดคำสั่งหนึ่งเดียวเท่านั้นสำหรับโปรแกรมหรือสคริปต์ของคุณ ทุกภาษาชื่นชมถ้าคุณเห็นภาษาที่นำไปใช้แล้วและคุณสามารถทำให้สั้นลงแก้ไขได้ถ้าเป็นไปได้ - แสดงความคิดเห็นเป็นอย่างอื่นและหวังว่าจะมีคนล้างความยุ่งเหยิง รวมบรรทัดใหม่และ White Spaces เพื่อความชัดเจน แต่อย่ารวมไว้ในจำนวนอักขระ ต้นคริสต์มาสถูกสร้างขึ้นเช่นนี้โดยมี "ลำตัว" ซึ่งประกอบด้วยเพียงศูนย์กลาง "*" N = 3: * *** ***** * N = 4: * *** ***** ******* * N = 5: * *** ***** ******* ********* * N กำหนดความสูงของกิ่งก้านที่ไม่รวมลำต้นหนึ่งบรรทัด สุขสันต์วันคริสต์มาส PPCG!

15
สร้างข้อความแสดงข้อผิดพลาดที่ยาวที่สุดใน C ++
เขียนโปรแกรมสั้นที่จะสร้างข้อความที่ยาวที่สุดที่เป็นไปได้ข้อผิดพลาดในมาตรฐาน C ++ คอมไพเลอร์ ( gcc, cl.exe, iccหรือclang) คะแนนของแต่ละรายการคือจำนวนตัวอักษรในข้อความแสดงข้อผิดพลาดที่ยาวที่สุดที่คอมไพเลอร์ปล่อยออกมา ชนิดที่รวมอยู่ในซอร์สโค้ดของคุณและคอมไพเลอร์ที่ยกมาจะนับเป็นอักขระตัวเดียว การโกง คุณสามารถกำหนดเทมเพลตใหม่ในเทมเพลตในเทมเพลตที่มีชื่อยาว ๆ ได้ แต่ฉันคาดหวังว่ามีอะไรสร้างสรรค์ ฉันพยายามป้องกันบางอย่างโดยกฎล่าสุด แต่แน่นอนว่ากฎนั้นดีกว่าและฉันยินดีที่จะปรับปรุง

30
เคล็ดลับสำหรับการเล่นกอล์ฟใน ECMAScript 6 ขึ้นไป
สิ่งนี้คล้ายกับ "เคล็ดลับสำหรับการเล่นกอล์ฟใน <... >" อื่น ๆ แต่มีการกำหนดเป้าหมายเฉพาะคุณลักษณะใหม่ใน JavaScript ที่แสดงใน ECMAScript 6 ขึ้นไป JavaScript โดยเนื้อแท้เป็นภาษาที่ละเอียดมากfunction(){}, .forEach()แปลงสตริงอาร์เรย์วัตถุอาร์เรย์เหมือนอาร์เรย์ ฯลฯ ฯลฯ มี bloats สุดและไม่ดีต่อสุขภาพกอล์ฟ ในทางกลับกัน ES6 + มีคุณสมบัติที่มีประโยชน์บางอย่างและลดการปล่อยทิ้ง x=>y, [...x]ฯลฯ เป็นเพียงตัวอย่างบางส่วน โปรดโพสต์เทคนิคดีๆที่สามารถช่วยลดจำนวนไบต์พิเศษเหล่านี้จากโค้ดของคุณ หมายเหตุ: เคล็ดลับสำหรับ ES5 มีอยู่แล้วในTips for golfing in JavaScript ; คำตอบของหัวข้อนี้ควรมุ่งเน้นไปที่เทคนิคเฉพาะใน ES6 และรุ่น ES อื่น ๆ ในอนาคต อย่างไรก็ตามเธรดนี้มีไว้สำหรับผู้ใช้ที่กำลังเล่นกอล์ฟโดยใช้คุณสมบัติ ES5 รู้รอบอาจมีเคล็ดลับที่จะช่วยให้พวกเขาเข้าใจและจับคู่ฟีเจอร์ ES6 กับสไตล์ของการเข้ารหัส ES5

30
BrainF *** edBotsForBattling - การแข่งขัน Brainf ***
บอททั้งหมดในเวทีการต่อสู้จู่ ๆ ก็ถูกสมองเบ็คและไม่มีใครสามารถอธิบายได้ว่าทำไม แต่ใครจะเป็นห่วงตราบใดที่พวกเขายังสามารถต่อสู้ได้แม้ว่า Brainfuck เป็นภาษาเดียวที่พวกเขาเข้าใจอีกต่อไป เป็นเวลานานแล้วที่การส่งครั้งสุดท้ายดังนั้นในที่สุดฉันก็จะประกาศผู้ชนะของ BrainFuckedBotsForBattling: ขอแสดงความยินดีกับ LymiaAluysia ที่ชนะ NyurokiMagicalFantasy! ป้ายบอกคะแนน | Owner | Bot Score | |--------------------|-------------------------------| | LymiaAluysia | NyurokiMagicalFantasy - 600 | | Sylwester | LethalLokeV2.1 - 585 | | weston | MickeyV4 - 584 | | Sp3000 | YandereBot - 538 | | Comintern …

9
กอล์ฟปฏิทินจุติ
มันเป็นช่วงเวลาของปีที่พวกเราหลายคนได้รับปฏิทินการถือกำเนิดของเรา! หากคุณไม่คุ้นเคยกับปฏิทินจุติปฏิทินเหล่านี้เป็นปฏิทินพิเศษที่ใช้นับถอยหลังถึงวันคริสต์มาส จากประสบการณ์ของฉันประตูถูกวางแบบสุ่มและส่วนหนึ่งของความสนุกในขณะที่เด็กกำลังออกกำลังกายซึ่งเป็นประตูในวันพรุ่งนี้! บ่อยครั้งที่วันนี้ปฏิทินมีช็อคโกแลตอยู่ด้านหลังแต่ละประตู แต่แทนที่จะซื้อปฏิทินจุติในปีนี้คุณควรสร้าง ASCII หนึ่งอัน! งาน กำหนดอินพุตจำนวนเต็ม ( n) ในช่วง0- 24สร้างปฏิทินการถือครอง ASCII โดยเปิดประตูหมายเลขขึ้น - nเปิด คุณต้องใช้คำสั่งเช่นเดียวกับในตัวอย่างด้านล่าง: 2, 17, 8, 12, 1, 6, 11, 20, 5, 22, 3, 10, 15, 23, 7, 16, 9, 24, 18, 4, 13, 19, ,2114 ประตู ประตูที่ปิดจะต้อง: .-----------. | | | | | | …

23
การเขียนโปรแกรมโลกที่เก่าแก่
ลองกำหนดโปรแกรมที่เก่าแก่เป็นโปรแกรมที่ไม่มีข้อผิดพลาดใด ๆ ของตัวเอง แต่จะผิดพลาดถ้าคุณแก้ไขได้โดยการเอาย่อยที่ต่อเนื่องกันใด ๆ ของตัวอักษร N, 1 <= N < program lengthที่ ตัวอย่างเช่นโปรแกรมสามตัวอักษร Python 2 `8` เป็นโปรแกรมที่เก่าแก่( ขอบคุณ Sp )เนื่องจากโปรแกรมทั้งหมดที่เกิดจากการลบสตริงย่อยของความยาว 1 ทำให้เกิดข้อผิดพลาด (ข้อผิดพลาดทางไวยากรณ์ในความเป็นจริง แต่ข้อผิดพลาดประเภทใดจะทำ): 8` `` `8 และโปรแกรมทั้งหมดที่เป็นผลมาจากการลบสตริงย่อยของความยาว 2 ทำให้เกิดข้อผิดพลาด: ` ` ตัวอย่างเช่นหาก`8เป็นโปรแกรมที่`8`ไม่มีข้อผิดพลาดก็จะไม่ได้รับความบริสุทธิ์เนื่องจากผลลัพธ์ทั้งหมดของการลบสตริงย่อยจะต้องเกิดข้อผิดพลาด งานของคุณในการท้าทายนี้คือการเขียนโปรแกรมที่สั้นที่สุดที่เป็นไปได้โดยไม่ต้องป้อนข้อมูล แต่ให้ผลลัพธ์หนึ่งในห้าคำต่อไปนี้: world earth globe planet sphere คำใดที่คุณเลือกขึ้นอยู่กับคุณ คำเดียวรวมถึงบรรทัดใหม่ท้ายที่เป็นตัวเลือกควรพิมพ์ไปยัง stdout (หรือภาษาอื่นที่ใกล้เคียงที่สุดของคุณ) โปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ หมายเหตุ: ต้องการโปรแกรมแบบสแตนด์อโลนไม่ใช่ฟังก์ชั่น คำนี้เป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ เอาท์พุทWorldหรือEARTHไม่ได้รับอนุญาต …

14
[คริสต์มาสชุดรูปแบบการปฏิเสธความรับผิดที่นี่]
หมายเหตุสำหรับ mods ถ้าชื่อไม่ยุติธรรมให้เปลี่ยนเป็นอะไรฉันคิดว่ามันตลก คุณได้รับมอบหมายให้แขวนไฟสำหรับเทศกาลคริสต์มาสนี้และครอบครัวของคุณได้ตัดสินใจว่ามันจะเป็นวันคริสต์มาสที่มีความสุขคุณต้องแขวนไฟคริสต์มาสอย่างน้อย 2 ต้นที่บ้านของคุณ ดังนั้นความท้าทายของคุณคือได้รับจำนวน1 < nส่งออกจำนวนที่สอดคล้องกันของไฟคริสต์มาสที่คุณกำลังจะถูกแขวนตามข้อกำหนดดังต่อไปนี้ ... นี่คือโครงสร้างของไฟคริสต์มาสขั้นพื้นฐาน: _?_ [___] /:' \ |:: | \::. / \::./ '=' ส่วนที่ไม่แน่นอนเพียงอย่างเดียวคือเครื่องหมายคำถามขึ้นอยู่กับว่าแสงส่องถึงจุดใดในโซ่การเชื่อมต่อจะแตกต่างกันอย่างมาก สำหรับแสงแรกในห่วงโซ่คุณจะต้องออก: .--._ _(_ [___] /:' \ |:: | \::. / \::./ '=' สำหรับแสงสุดท้ายในห่วงโซ่คุณจะต้องเอาท์พุท: _.--. _)_ [___] /:' \ |:: | \::. / \::./ '=' และสำหรับแสงสว่างทั้งหมดที่อยู่ตรงกลาง: _.--.--._ _Y_ [___] …

30
เคล็ดลับการตีกอล์ฟในจาวา
มีทางลัดที่มีประโยชน์ใด ๆ ที่สามารถใช้ได้ใน Java หรือไม่? ดังที่แสดงด้านล่างimportเพิ่มอย่างน้อย 17 อักขระในโปรแกรม import java.io.*; ฉันเข้าใจว่าวิธีแก้ปัญหาง่าย ๆ คือการใช้ภาษาอื่น แต่ดูเหมือนจะเป็นความท้าทายที่แท้จริงในการย่อโปรแกรม Java ให้สั้นลง เคล็ดลับควรมีความเฉพาะเจาะจงกับ Java: หากพวกเขาสามารถใช้ได้กับภาษาที่เหมือน C ส่วนใหญ่พวกเขาจะอยู่ในรายการเคล็ดลับทั่วไป
86 code-golf  tips  java 

28
จัดเรียงพิกเซลภาพใหม่ดังนั้นจึงไม่สามารถจดจำได้และนำกลับมาใช้ใหม่
สร้างโปรแกรมที่สามารถจัดเรียงพิกเซลใหม่ในภาพเพื่อให้ไม่สามารถจดจำได้ อย่างไรก็ตามโปรแกรมของคุณจะสามารถแปลงกลับเป็นรูปภาพดั้งเดิมได้ คุณสามารถเขียนสองฟังก์ชั่น - สำหรับการเข้ารหัสและถอดรหัสอย่างไรก็ตามหนึ่งฟังก์ชั่นที่ใช้ซ้ำ ๆ ให้ภาพต้นฉบับ (ตัวอย่างในคณิตศาสตร์ - f(x) = 1 - x) เป็นโบนัส นอกจากนี้การสร้างรูปแบบบางอย่างในเอาต์พุตก็ให้โบนัสเช่นกัน รูปภาพอาจถูกแทนด้วยอาร์เรย์ 1D / 2D หรือวัตถุรูปภาพหากภาษาของคุณรองรับ โปรดทราบว่าคุณสามารถเปลี่ยนลำดับพิกเซลได้เท่านั้น! จะมีเหตุผลที่จะเลือกเป็นรหัสผู้ชนะซึ่งให้ภาพที่เป็นที่รู้จักน้อยกว่า แต่ฉันไม่ทราบวิธีการวัดอย่างแม่นยำทุกวิธีที่ฉันสามารถจินตนาการสามารถโกงได้ ดังนั้นฉันเลือกคำถามนี้ว่าเป็นการประกวดความนิยม - ให้ผู้ใช้เลือกคำตอบที่ดีที่สุด! ภาพทดสอบ 1 (800 x 422 px): ภาพทดสอบ 2 (800 x 480 px): โปรดระบุด้วยภาพออกรหัส

30
Eww ไบต์เหล่านั้นรวม
เขียนโปรแกรมหรือฟังก์ชั่นที่เมื่อได้รับสตริงตัวกรองที่แตกต่างกันมากที่สุดเท่าที่มันสามารถและส่งกลับสตริงที่ทำความสะอาด อย่างไรก็ตามเนื่องจากโปรแกรมของคุณเกลียดพวกเขาจึงไม่สามารถมีไบต์เหล่านี้ในรหัสของคุณเอง คะแนนของคุณจะเป็นจำนวนไบต์ที่แตกต่างกันซึ่งโปรแกรมของคุณกรองออกจากอินพุตด้วยยิ่งสูงยิ่งดี นี่เป็นคะแนนสูงสุด 255 (เนื่องจากโปรแกรมของคุณต้องมีอย่างน้อยหนึ่งไบต์) tiebreaker คือความยาวของรหัสของคุณโดยที่ต่ำกว่าจะดีกว่า ตัวอย่างเช่นหากโปรแกรมของคุณกรองไบต์0123456789มันจะได้รับคะแนน 10 แต่โปรแกรมของคุณไม่สามารถมีไบต์เหล่านี้ได้ กฎระเบียบ Bytes หมายถึง octets คุณยังมีตัวเลือกในการป้อนข้อมูลเป็นรายการจำนวนเต็มด้วยค่าตั้งแต่ 0 ถึง 255 ซึ่งสอดคล้องกับไบต์ที่เทียบเท่า เอาต์พุตของคุณควรอยู่ในรูปแบบเดียวกับอินพุตของคุณ ไม่อ่านซอร์สโค้ดของคุณ รหัสของคุณต้องไม่ว่างเปล่า ใช่ฉันรู้ว่าจะต้องมีคำตอบ Lenguage / Unary แต่อย่างน้อยมันก็โปรดกอล์ฟ?;) แก้ไขกฎ: คุณอาจเลือกที่จะละเว้นไบต์ตัวอย่างเช่นถ้ามันไม่สามารถแยกแยะได้จากไบต์ที่ยกเลิกสำหรับสตริงหรือ EOF อย่างไรก็ตามนี่หมายความว่าคุณไม่สามารถใช้ในการส่งได้และจะไม่นับรวมอยู่ในคะแนนของคุณ หากคุณเลือกที่จะทำเช่นนั้นคะแนนสูงสุดของคุณจะเป็น 254 แต่คุณไม่ต้องจัดการกับไบต์นั้นในข้อมูลของคุณ

25
หนูหิว
มีกองชีสจำนวนสิบหกกองวางอยู่บนพื้นที่ 4x4 พวกเขากำลังมีป้ายกำกับจากที่จะ16กองเล็กที่สุดคือและอีกคนหนึ่งที่ใหญ่ที่สุดคือ16111161616111161616 Hungry Mouse หิวมากจนมันพุ่งตรงไปยังกองที่ใหญ่ที่สุด (เช่น ) และกินทันที161616 หลังจากนั้นมันก็จะไปกองใกล้เคียงที่ใหญ่ที่สุดและกินมันเร็วเช่นกัน (ใช่ ... มันหิวจริงๆ ) และต่อ ๆ ไปจนกว่าจะไม่มีกองใกล้เคียงอีกต่อไป กองอาจมีมากถึง 8 เพื่อนบ้าน (แนวนอนแนวตั้งและแนวทแยงมุม) ไม่มีการพันรอบตัว ตัวอย่าง เราเริ่มต้นด้วยกองชีสต่อไปนี้: 3615147891101211165134237105681213159114141162\begin{matrix} 3&7&10&5\\ 6&8&12&13\\ 15&9&11&4\\ 14&1&16&2 \end{matrix} หิวเมาส์แรกกินและจากนั้นกองเพื่อนบ้านที่ใหญ่ที่สุดซึ่งเป็น11161616111111 36151478911012🐭↑5134237105681213159🐭4141↑2\begin{matrix} 3&7&10&5\\ 6&8&12&13\\ 15&9&🐭&4\\ 14&1&\color{grey}\uparrow&2 \end{matrix} การเคลื่อนไหวครั้งต่อไปคือ , , , , , , , ,และตามลำดับที่แน่นอนนี้131313121212101010888151515141414999666777333 🐭↗↓↗←↙↖1↙↑↗↑5←42🐭←↙5↗↙↑←↓↖↗4↗1↑2\begin{matrix} 🐭&\color{grey}\leftarrow&\small\color{grey}\swarrow&5\\ \small\color{grey}\nearrow&\small\color{grey}\swarrow&\color{grey}\uparrow&\color{grey}\leftarrow\\ \color{grey}\downarrow&\small\color{grey}\nwarrow&\small\color{grey}\nearrow&4\\ …
85 code-golf  matrix 

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