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

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

4
ตัวค้นหาคำ
ระบุรายการคำและตารางตัวอักษรค้นหาคำทั้งหมดในตารางและลบตัวอักษรใด ๆ ที่ไม่ได้เป็นส่วนหนึ่งของคำใด ๆ คำอาจจะไปข้างหน้าถอยหลังขึ้นหรือลงในแนวทแยง คุณอาจสมมติว่าไม่มีคำใดในรายการที่จะเกิดขึ้นมากกว่าหนึ่งที่ในตาราง อินพุตจะเป็นรายการคำศัพท์ 1 ต่อบรรทัดตามด้วยบรรทัดว่างแล้วตามด้วยตารางตัวอักษร ตัวอย่าง อินพุต ADA ALGOL ASSEMBLY BASIC COBOL DELPHI FORTRAN JAVA LABVIEW LOGO PASCAL PERL PHP PYTHON SMALLTALK VISUALC LLJKCABLFCI OROLOBOCOIM GELACSAPRSX LPSTAHWVTAV ANRLXLXQRBI IHPLEDOXAHS KJYAPHPYNOU FABMADANZJA EVISNOHTYPL AAYLBMESSAC WEIVBALOGOM เอาท์พุต LL K FC OR LOBOCOI GELACSAPRS LP T TAV A L …

5
เขียนรหัส Buggy [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ตอนนี้เป็นเวลาที่จะแสดงความสามารถของคุณในการเขียนโค้ดที่ไม่ดี ฉันลองใช้ตัวต่อเขียนโปรแกรมรูปแบบใหม่ที่ใกล้เคียงที่สุดกับการประกวด C ความแตกต่างที่สำคัญคือมันไม่ได้เลวร้ายนัก: มันเป็นแค่ความสนุกที่สะอาด เป้าหมายของจิ๊กซอว์คือการแพ็คข้อบกพร่องให้มากที่สุดเท่าที่จะทำได้ในโปรแกรม ผู้ชนะการประกวดนี้คือผู้ที่เขียนโปรแกรมที่มีข้อบกพร่องมากที่สุดต่อตัวละคร เพื่อหลีกเลี่ยงความคิดเห็นจำนวนมากที่ขอความกระจ่างฉันควรกำหนดตอนนี้สิ่งที่ฉันคิดว่าเป็นข้อบกพร่องที่มีคุณสมบัติ ครั้งแรกข้อผิดพลาดที่ไม่ได้เป็นข้อผิดพลาด หากเป็นปัญหาที่ล่ามสามารถตรวจพบว่าเป็นข้อผิดพลาด (เช่น delimeters ที่ไม่ตรงกัน, ไวยากรณ์ที่มีรูปแบบไม่ดี, acessing คุณสมบัติของวัตถุเป็นโมฆะ ฯลฯ ) หรือถ้ามันป้องกันโปรแกรมจากการดำเนินการหรือดำเนินการต่อไป แมลง. มิฉะนั้นคุณสามารถพิมพ์ตัวอักษรสี่ตัวและล่ามสามารถแสดงรายการข้อผิดพลาดทางไวยากรณ์ได้แปดข้อและคุณสามารถอ้างสิทธิ์อัตราส่วนตัวผิดพลาดที่ 2 ประการที่สองข้อผิดพลาดจะต้องไม่ผิดอย่างเห็นได้ชัดและข้อผิดพลาดที่ไม่ได้เป็นไข่อีสเตอร์ แน่นอนว่านี่เป็นเกณฑ์ส่วนตัว แต่ฉันคิดว่าจำเป็นต่อการแข่งขันประเภทนี้ ซึ่งหมายความว่าคุณไม่สามารถมีรหัสตามเงื่อนไขที่ mangles รหัสโดยเฉพาะในรูปแบบที่ชัดเจน (อ่าน: ใช้ภาษาพิทัวริงเพราะไม่มีใครรู้ถึงความแตกต่าง) ประการที่สามข้อผิดพลาดจะต้องเป็นที่น่าเชื่อถือ นี่เป็นอัตนัยเช่นเดียวกับข้างต้น แต่ข้อผิดพลาดจะต้องดูเหมือนว่ามันอาจถูกเขียนขึ้นโดยคนที่พิถีพิถันน้อยกว่าหรืออาจงมงายหรือคนที่ทำผิดพลาด ซึ่งรวมถึงตัวอย่างเช่นข้อผิดพลาดหรือไวยากรณ์ที่ไม่ถูกต้องที่ถูกต้องและมีลักษณะที่ถูกต้อง แต่ทำให้เกิดพฤติกรรมที่ไม่พึงประสงค์ (พูดโดยใช้วงเล็บเหลี่ยมแทนวงเล็บ) ข้อผิดพลาดอาจทำให้เกิดพฤติกรรมที่ไม่พึงประสงค์ใด ๆ กับโปรแกรมรวมถึง …

8
ความหนาแน่นตัวเลขจำนวนสแควร์
ความหนาแน่นเลขฐานสองจำนวน (SNDD) ของตัวเลข - คิดค้นด้วยตัวเอง - คืออัตราส่วนของการนับจำนวนสแควร์ที่พบในหลักต่อเนื่องกับความยาวของตัวเลข ตัวอย่างเช่น 169 เป็นตัวเลข 3 หลักที่มี 4 ช่องสี่เหลี่ยมคือ 1, 9, 16, 169 - และดังนั้นจึงมีความหนาแน่นตัวเลขสี่หลักเท่ากับ 4/3 หรือ 1.33 หมายเลข 4 หลัก 1444 มี 6 สี่เหลี่ยมจัตุรัส - 1, 4, 4, 4, 144, 1444 - และทำให้อัตราส่วน 6/4 หรือ 1.5 โปรดสังเกตในตัวอย่างก่อนหน้านี้ที่อนุญาตให้ทำซ้ำได้ นอกจากนี้ไม่อนุญาต 441 เพราะไม่สามารถพบได้อย่างต่อเนื่องภายในหมายเลข 1444 งานของคุณคือการเขียนโปรแกรมที่ค้นหาช่วงที่กำหนด A - …

9
เลือกการผจญภัยของคุณเอง
เลือกหนังสือผจญภัยของคุณเองเป็นรูปแบบของวรรณกรรมเชิงโต้ตอบที่ผู้อ่านจะต้องทำการตัดสินใจที่มีผลต่อผลลัพธ์ของเรื่องราว ในบางจุดของเรื่องผู้อ่านมีหลายตัวเลือกที่สามารถเลือกได้แต่ละคนส่งผู้อ่านไปยังหน้าอื่นในหนังสือ ตัวอย่างเช่นในการตั้งค่าจินตนาการเราอาจต้องตัดสินใจในหน้า 14 ว่าจะเสี่ยงเข้าไปในถ้ำลึกลับโดย "กระโดด" ถึงหน้า 22 หรือสำรวจป่าใกล้เคียงโดยการกระโดดไปที่หน้า 8 "กระโดด" เหล่านี้สามารถแสดงได้ เป็นคู่ของหมายเลขหน้าดังนี้: 14 22 14 8 ในกรณีส่วนใหญ่มีเรื่องราวตอนจบมากมาย แต่มีเพียงไม่กี่คนที่ดี เป้าหมายคือการนำทางเรื่องราวไปสู่จุดจบที่ดี งาน: รับรายการของ "การข้าม" สำหรับหนังสือที่กำหนดงานของคุณคือการกำหนดเส้นทางที่จะนำไปสู่การสิ้นสุดที่เฉพาะเจาะจง ตั้งแต่นี้ค่อนข้างง่ายความท้าทายที่แท้จริงคือการทำมันในตัวละครน้อยที่สุด นี่คือกอล์ฟรหัส ตัวอย่างอินพุต (โดยที่ 1 คือจุดเริ่มต้นและ 100 คือเป้าหมาย): 1 10 10 5 10 13 5 12 5 19 13 15 12 20 15 100 ตัวอย่างผลลัพธ์: 1 …

30
การค้นหาตัวเลขที่ไม่ได้สำคัญมาก
ความท้าทายของคุณถ้าคุณเลือกที่จะยอมรับมันคือการฟังก์ชั่น code-golf ที่ส่งคืนจริงหรือเท็จ (หรือบางส่วนที่มีความหมายคล้ายกันคือใช่และไม่ใช่) หากตัวเลขตรงตามเกณฑ์ต่อไปนี้: จำนวนเต็มนั้นเป็นจำนวนเฉพาะหรือ จำนวนเต็มเพื่อนบ้านอย่างใดอย่างหนึ่งเป็นจำนวนเฉพาะ ตัวอย่างเช่น: อินพุต7จะคืนค่าเป็น True อินพุตของ8จะส่งคืนค่าเป็น True ด้วยเช่นกัน อินพุตของ15จะส่งคืนค่าเท็จ (ทั้ง 14, 15, หรือ 16 เป็นไพร์ม) อินพุตต้องสามารถส่งคืนได้อย่างถูกต้องสำหรับตัวเลขระหว่าง 2 ^ 0 ถึง 2 ^ 20 ดังนั้นจึงไม่จำเป็นต้องกังวลเกี่ยวกับปัญหาการลงชื่อหรือการล้นของจำนวนเต็ม

4
ASCII art การวาดเส้น Bresenham
เขียนโปรแกรมที่สั้นที่สุดที่วาดเส้น Bresenham ในรูปแบบ ASCII โปรแกรมของคุณควรใช้จำนวนเต็มสองจำนวนxและy(บรรทัดคำสั่งหรือ stdin, ตัวเลือกของคุณ) และวาดบรรทัด ASCII ซึ่งเริ่มต้นที่ด้านซ้ายบนและไปxหน่วยที่ถูกต้องและyหน่วยลง คุณต้องใช้_และ\ตัวละครและวางไว้ในตำแหน่งที่ถูกต้องตามอัลกอริทึมของ Bresenham คุณอาจถือว่าx >= yดังนั้นจึงไม่จำเป็นต้องมีเซ็กเมนต์แนวตั้ง โปรดทราบว่าเนื่องจากคุณกำลังใช้_อักขระสำหรับบรรทัดที่y=3คุณอาจต้องแสดงข้อความออก 4 บรรทัด (และคุณอาจปล่อยบรรทัดว่างนำหน้าเมื่อไม่จำเป็น) ตัวอย่าง: 11 3 _ \___ \___ \_ 11 1 _____ \_____ 5 4 \ \_ \ \ สำหรับคะแนนที่ครึ่งทางคุณสามารถเลือกปัดเศษได้: 10 1 ____ \_____ or _____ \____

7
พจนานุกรม Tic Tac Toe
TicTacToeเกมสามารถแสดงโดยสตริงแสดงถึงลำดับของตำแหน่งเป็นผู้เล่นให้ย้ายของพวกเขา 0 1 2 3 4 5 6 7 8 สมมติว่าXเล่นก่อนเสมอ ดังนั้นสตริงของ "012345678" หมายถึงเกม XOX OXO XOX แจ้งให้ทราบล่วงหน้าเป็นเกมที่ได้รับรางวัลแล้วเมื่อผู้เล่นXเครื่องหมายที่จุดที่เกมสิ้นสุดการอนุญาตให้ชนะไป6 X(กล่าวคือไม่สนใจการเคลื่อนไหวที่เหลือเมื่อผู้เล่นชนะ) ความท้าทายของคุณ (รหัส) คือการพิมพ์เกมทั้งหมด (เรียงลำดับ) และผลลัพธ์ของมัน รูปแบบ <movesequence>:<result>\n เช่น: 012345678:X 012345687:X 012345768:X ... แสดงXว่าผู้เล่นคนที่ 1 ชนะOสำหรับผู้เล่นที่สองและDเสมอ จะมี9!เกม (362880) นี่คือข้อมูลบางอย่างเพื่อยืนยันผลลัพธ์ของคุณ 'X' Wins: 212256 'O' Wins: 104544 Draws : 46080 นี่คือ codegolf และควรดำเนินการภายในหนึ่งนาที มีความสุข! …

24
12 Days of Christmas Lyrics
ฉันคิดว่านี่จะเป็นความท้าทายที่สนุกสำหรับทุกคนและฉันอยากรู้วิธีแก้ปัญหาที่คนคิด พิมพ์เนื้อเพลง "12 Days Of Christmas" On the first day of Christmas, my true love gave to me, A partridge in a pear tree. On the second day of Christmas, my true love gave to me, Two turtle doves, And a partridge in a pear tree. ... On the twelfth …

30
'เพิ่ม' ตัวอักษรในหนึ่งคำ
พ่อของฉันเป็นครูที่เกษียณอายุราชการและเขาเคยฝึกสะกดคำศัพท์และแบบทดสอบคณิตศาสตร์ร่วมกันซึ่งนักเรียนจะสะกดคำและจากนั้นให้คะแนนคำด้วยการเพิ่มตัวอักษรโดยที่ = 1, b = 2 เป็นต้น (เช่น cat = 3 + 1 + 20 = 24) สิ่งนี้ทำให้การจัดลำดับแบบทดสอบง่ายขึ้นเนื่องจากเขาเพียงแค่ต้องตรวจสอบ 'คะแนน' ไม่ถูกต้องแทนที่จะใช้คำที่สะกดผิดและได้รับประโยชน์เพิ่มเติมจากการทดสอบ 2 ทักษะในครั้งเดียว เขาจ้างเพื่อนของฉันคนหนึ่งเขียนโปรแกรมที่จะทำคะแนนให้เขาดังนั้นเขาจึงสามารถสร้างคีย์คำตอบที่มีความยาวได้โดยไม่มีข้อผิดพลาด ปัญหานี้ได้รับแรงบันดาลใจจากโปรแกรมนั้น ที่ต้องการ: ยอมรับคำใด ๆ ด้วยตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ส่งคืนข้อผิดพลาดสำหรับอักขระพิเศษใด ๆ เช่นช่องว่างยัติภังค์, @ ^% # ฯลฯ a = 1, b = 2, ... และ A = 1, B = 2, ... …
17 code-golf  word 

30
ฟังก์ชันการแปลง IPv4 Integer
เขียนฟังก์ชั่นที่สั้นที่สุดเพื่อแปลงที่อยู่ IP ให้เป็นจำนวนเต็มแทนและส่งออกเป็นจำนวนเต็ม ในการเปลี่ยนที่อยู่ IPv4 เป็นการแสดงจำนวนเต็มการคำนวณต่อไปนี้เป็นสิ่งจำเป็น: แบ่งที่อยู่ IP ออกเป็นสี่ octet (Octet1 * 16777216) + (Octet2 * 65536) + (Octet3 * 256) + (Octet4) ตัวอย่างอินพุต 192.168.1.1 10.10.104.36 8.8.8.8 ตัวอย่างผลลัพธ์ 3232235777 168454180 134744072

23
Sieves ที่แตกต่าง
รับรายการจำนวนเต็มสร้างมาสก์บูลีนซึ่งดัชนีจริงสามารถใช้เพื่อกรองค่าที่แตกต่างจากรายการ ดัชนีใดที่ถูกเลือกว่าเป็นของจริงไม่สำคัญตราบใดที่มีเพียงดัชนีเดียวที่ถูกเลือกสำหรับดัชนีแต่ละชุดที่สอดคล้องกับค่าที่เหมือนกัน อินพุตจะเป็นรายการที่ไม่ว่างเปล่าของจำนวนเต็มไม่เป็นลบในรูปแบบที่เหมาะสมกับภาษาของคุณและเอาต์พุตจะเป็นรายการค่าบูลีนตามข้อกำหนดด้านบน คุณได้รับอนุญาตให้ใช้คำจำกัดความของคุณเองของความจริงและค่าเท็จในรายการผลลัพธ์ ในตัวอย่างด้านล่างของฉันฉันกำหนด1ให้เป็นความจริงและ0เป็นเท็จ [5, 4, 7, 1] Input [1, 1, 1, 1] Output Select only the values with with true indicies in the sieve [5 4 7 1] Contains zero duplicate values [5, 9, 7, 5, 6, 0, 5] [0, 1, 1, 1, 1, 1, 0] [ 9, …

29
ฉันย้อนกลับซอร์สโค้ดคุณย้อนกลับอินพุต!
อีกหนึ่งที่เห็นได้ชัดrip-offของrip-offของrip-off ลงคะแนนโหวตเหล่านั้น! งานของคุณถ้าคุณต้องการที่จะยอมรับมันคือการเขียนโปรแกรม / ฟังก์ชั่นที่ส่งออก / ส่งกลับสตริงอินพุต / อาร์กิวเมนต์ ส่วนที่ยุ่งยากคือถ้าฉันย้อนกลับซอร์สโค้ดของคุณเอาต์พุตจะต้องกลับด้านด้วย เพื่อความง่ายคุณสามารถสมมติว่าอินพุตเป็นสตริงบรรทัดเดียวที่มีตัวอักษร ASCII เท่านั้น (az), ตัวเลข (0-9) และเว้นวรรค ควรรองรับอินพุตที่มีความยาวอย่างน้อย 8 ตัวอักษร (ไม่เกิน 8 ตัว) พฤติกรรมสำหรับการป้อนข้อมูลที่ว่างเปล่าไม่ได้กำหนด ตัวอย่าง สมมติว่ารหัสที่มาของคุณและใส่ของมันคือABC xyzถ้าผมเขียนแทนและเรียกใช้การส่งออกจะต้องมีCBAzyx สมมติว่ารหัสที่มาของคุณและใส่ของมันคือABC 96ถ้าผมเขียนแทนและเรียกใช้การส่งออกจะต้องมีCBA69 ช่องว่างสีขาวนำหน้าหรือต่อท้ายเป็นที่ยอมรับตราบใดที่สอดคล้องกันทั้งในเอาต์พุตปกติและกลับด้าน

14
การเรียงสับเปลี่ยนในการปลอมตัว
กำหนดnnnเวกเตอร์มิติvvvกับรายการจริงพบการเปลี่ยนแปลงที่อยู่ใกล้pppของ(1,2,...,n)(1,2,...,n)(1,2,...,n)ด้วยความเคารพต่อl1l1l_1 -distance รายละเอียด ถ้ามันเป็นความสะดวกสบายมากขึ้นคุณสามารถใช้พีชคณิต(0,1,...,n−1)(0,1,...,n−1)(0,1,...,n-1)แทน หากมีการเรียงสับเปลี่ยนที่ใกล้เคียงที่สุดคุณสามารถส่งออกหนึ่งรายการหรือทั้งหมดก็ได้ l1l1l_1ระยะห่างระหว่างสองเวกเตอร์u,vu,vu,vถูกกำหนดให้เป็นd(u,v)=∑i|ui−vi|.d(u,v)=∑i|ui−vi|.d(u,v) = \sum_i \vert u_i-v_i\vert. หากคุณต้องการคุณสามารถสันนิษฐานได้ว่าอินพุตประกอบด้วยจำนวนเต็มเท่านั้น ตัวอย่าง [0.5 1] -> [1 2], [2 1] c*[1 1 ... 1] -> any permutation [1 4 2 6 2] -> [1 4 3 5 2], [1 4 2 5 3] [1 3 5 4 1] -> [2 3 …

10
เขียนฟังก์ชั่นที่ส่งคืนออบเจกต์ที่ทำซ้ำได้ของจุดที่ถูกต้องทั้งหมด 4 ทิศทางติดกับ (x, y)
ความต้องการทั่วไปในคลาสอัลกอริทึมและวิทยาการคอมพิวเตอร์โดยทั่วไปคือการทำซ้ำ 4 ทิศทางในตารางหรือเมทริกซ์ (เช่นใน BFS หรือ DFS) สิ่งนี้ดูเหมือนจะส่งผลให้เกิดรหัส clunky และ verbose จำนวนมากที่มีการคำนวณและการเปรียบเทียบจำนวนมากภายในลูป ฉันเห็นวิธีการต่าง ๆ มากมาย แต่ฉันไม่สามารถสั่นคลอนความรู้สึกว่ามีวิธีรัดกุมกว่านี้ ความท้าทายคือการเขียนฟังก์ชั่นบริสุทธิ์ที่กำหนดความกว้างและความสูงของระนาบ จำกัดn, mที่จุดกำเนิด(0,0)และพิกัด(x,y)ที่สามารถเป็นตัวแทนของจุดที่ถูกต้องภายในระนาบนั้นส่งคืนวัตถุที่ซ้ำได้ของทุกจุดภายในระนาบที่มีทิศทาง 4 (x,y)เพื่อที่อยู่ติดกัน เป้าหมายคือการกำหนดฟังก์ชั่นนี้ให้น้อยที่สุดเท่าที่จะเป็นไปได้ ตัวอย่างบางส่วนเพื่อช่วยแสดงให้เห็นถึงอินพุต / เอาต์พุตที่ถูกต้อง: n = 5 (y-axis), m = 3 (x-axis) (zero-based) matrix = [ [A, B, C], [D, E, F], [G, H, I], [J, K, L], [M, …

2
เขียนตัวรับรังสีที่ชุบแข็งด้วยรังสี
ภารกิจคือการเขียนผู้ฉายรังสีที่ชุบแข็งด้วยรังสี ฉันหมายความว่ายังไงกันแน่? irradiator เป็นโปรแกรมที่เมื่อได้รับสตริงเป็นอินพุตจะส่งออกเวอร์ชันที่เป็นไปได้ทั้งหมดของสตริงโดยลบหนึ่งอักขระ ตัวอย่างเช่นเมื่อได้รับอินพุทHello, world!แล้วโปรแกรมควรส่งออก: ello, world! Hllo, world! Helo, world! Helo, world! Hell, world! Hello world! Hello,world! Hello, orld! Hello, wrld! Hello, wold! Hello, word! Hello, worl! Hello, world อย่างไรก็ตามเครื่องฉายรังสีจะต้องได้รับการปกป้องจากรังสีดังนั้นรังสีที่คุณเขียนจะต้องอยู่รอดเมื่อใส่เข้าไปในตัวมันเอง กล่าวคือเมื่อลบหนึ่งไบต์ของโปรแกรมของคุณโปรแกรมจะยังคงทำงานได้อย่างถูกต้อง กรณีทดสอบ abc -> bc; ac; ab foo bar -> oo bar:fo bar:fo bar:foobar:foo ar:foo br:foo ba source …

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