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

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

16
หมุนจุด
แนะนำ 2 × n . ':เมทริกซ์บูลีนสามารถแสดงเป็นสตริงของสี่ตัวอักษร สตริงมี "แถวบน" และ "แถวล่าง" ที่มีจุดแทน 1s และช่องว่างว่างแทน 0s ตัวอย่างเช่นเมทริกซ์ 2x6 1 0 1 0 0 1 0 0 0 1 0 1 ' '. :สามารถแสดงเป็น งานของคุณคือทำเมทริกซ์ใน "ฟอร์มที่บีบอัด" นี้และหมุนรายการตามเข็มนาฬิกาหนึ่งขั้นตอนเช่นสายพานลำเลียง อินพุต การป้อนข้อมูลของคุณเป็นสตริงตัว. ':เดียว ความยาวของมันรับประกันอย่างน้อย 2 เอาท์พุต เอาต์พุตของคุณจะเป็นสตริงอินพุต แต่ทุกจุดหมุนหนึ่งขั้นในทิศทางตามเข็มนาฬิกา ยิ่งไปกว่านั้นจุดบนแถวบนสุดจะอยู่ทางขวาหนึ่งจุดยกเว้นจุดขวาสุดซึ่งเลื่อนลง จุดบนแถวล่างเลื่อนไปหนึ่งก้าวทางซ้ายยกเว้นจุดซ้ายสุดซึ่งเลื่อนขึ้น โดยเฉพาะอย่างยิ่งสตริงเอาต์พุตต้องมีความยาวเท่ากันกับต้นฉบับและช่องว่างมีความสำคัญ ตัวอย่าง พิจารณาสตริงป้อนเข้า:..:'.ซึ่งสอดคล้องกับเมทริกซ์ 2 × 6 …
46 code-golf  string 

3
ล็อคจักรยานรวมกัน
สถานการณ์ หลังจากทำงานเป็นเวลานานทั้งวันในสำนักงานและท่องดูstackexchange.comในที่สุดฉันก็เดินออกจากประตูเวลา 16:58 น. เหนื่อยกับวันนั้น เนื่องจากฉันยังเป็นเพียงผู้ฝึกงานโหมดการขนส่งปัจจุบันของฉันจึงเป็นจักรยาน ฉันตรงไปที่Peugeot Reynolds 501 ที่ไว้ใจได้ของฉันแต่ก่อนที่ฉันจะแล่นเรือไปได้ฉันต้องปลดล็อคก่อน ตัวล็อคเป็นรหัสล็อคสี่หลักมาตรฐาน (0-9) ผ่านทางกรอบและล้อหน้า ขณะที่ฉันพยายามตื่นตัวอยู่ฉันก็ดึงมือขึ้นเพื่อเข้าร่วม ความท้าทาย เนื่องจากนิ้วของฉันอ่อนล้าฉันต้องการเปลี่ยนการล็อคให้เป็นการผสมผสานที่ถูกต้องกับการเคลื่อนไหวที่น้อยที่สุด หนึ่งการเคลื่อนไหวถูกกำหนดให้เป็นหมุนโดยหนึ่งตำแหน่ง (36 องศา) ตัวอย่างเช่นมีการเคลื่อนไหวจากการ5737 5738อย่างไรก็ตามฉันสามารถที่จะจับได้ถึงสามวงติดต่อกันในเวลาเดียวกันและหมุนพวกเขาเป็นวงเดียวซึ่งนับเป็นการเคลื่อนไหวเพียงครั้งเดียวเท่านั้น ตัวอย่างนอกจากนี้ยังมีเพียงหนึ่งการเคลื่อนไหวจาก5737ไปหรือ6837 5626การย้ายจาก5737ไปยัง6838ไม่ใช่หนึ่งการเคลื่อนไหวเนื่องจากตัวเลข 1,2 และ 4 เคลื่อนไปในทิศทางเดียวกัน แต่เป็นอิสระจากตัวเลข 3 ดังนั้นสำหรับชุดค่าผสมที่กำหนดฉันสามารถเห็นได้บนล็อคจักรยาน (จำนวนเต็ม 4 หลักใด ๆ ) อะไรคือจำนวนการเคลื่อนไหวที่ต่ำที่สุดที่ฉันสามารถทำได้เพื่อปลดล็อคและใช่ฉันสามารถหมุนในทิศทางใดก็ได้ ด้วยวิธีนี้ฉันหมายความว่าฉันสามารถเปลี่ยนตัวเลขบางอย่างในทิศทางเดียวและตัวเลขอื่น ๆ ในทิศทางอื่น: การเคลื่อนไหวของฉันทั้งหมดไม่ได้เป็นแบบเข็มหรือตามเข็มนาฬิกาสำหรับการปลดล็อคแต่ละครั้ง เพราะฉันขี้เกียจรหัสปลดล็อคของฉันคือ 0000 นี่คือรหัสกอล์ฟฉันไม่สามารถเขียนรหัสได้มากนักดังนั้นโปรแกรมที่สั้นที่สุดในจำนวนไบต์ชนะ ข้อมูลมาจาก stdin และรหัสของคุณควรส่งออกชุดค่าผสมที่ฉันเห็นในแต่ละขั้นตอนหลังจากการเคลื่อนไหวแต่ละครั้งรวมถึง 0000 ที่สิ้นสุด เอาต์พุตชุดค่าผสมแต่ละชุดควรคั่นด้วยช่องว่าง / …

15
อิเล็กตรอนที่กระดอนเป็นเส้นลวด
ลองนึกภาพ "ลวด" ที่มีnช่องว่าง ลองจินตนาการดูเพิ่มเติมว่ามี "อิเล็กตรอน" ในสายนั้น อิเล็กตรอนเหล่านี้มีชีวิตอยู่เพียงครั้งเดียวเท่านั้น ช่องว่างใด ๆ ในลวดที่อยู่ติดกับอิเล็กตรอนหนึ่งตัวจะกลายเป็นอิเล็กตรอน B1/Sในเกมคำศัพท์ชีวิตนี้เป็น ตัวอย่างเช่นนี่คือสายของความยาว 10 ที่มีระยะเวลา 62 กฎระเบียบ อินพุต,, nเป็นเลขจำนวนเต็มบวกเดียว เอาต์พุตจะต้องเป็นจำนวนเต็มเดียวที่แสดงถึงช่วงเวลาของเส้นลวดที่มีความยาว n สถานะเริ่มต้นคืออิเล็กตรอนเดี่ยวที่ปลายด้านหนึ่งของเส้นลวด ช่วงเวลาไม่จำเป็นต้องรวมถึงสถานะเริ่มต้น ความยาวบางส่วนไม่เคยกลับสู่สถานะเริ่มต้น แต่ความยาวทั้งหมดเป็นระยะ ลวดแบบคงที่ (เช่นไม่มีอิเล็กตรอน) มีระยะเวลา 1 เงื่อนไขของขอบเขตไม่ได้เป็นระยะ นั่นคือลวดไม่ได้ toroidal ในทางใดทางหนึ่ง กรณีทดสอบ ขอขอบคุณเป็นพิเศษกับ orlp สำหรับการผลิตรายการนี้ (ฉันได้ตรวจสอบแล้วไม่เกิน n = 27) 1 1 2 2 3 1 4 6 5 4 …

19
Lever Simulator 2015
ทำไมต้องเป็น Simulator? เด็ก ๆ ในทุกวันนี้ไม่มีเวลาหรือความทะเยอทะยานที่จะไปและสแต็คกล่องที่เห็นหรือเล่นด้วยการปรับสมดุลวัตถุทางกายภาพ ทำให้เหลือพื้นที่มากมายในตลาดซอฟต์แวร์สำหรับ Lever Simulator ซึ่งตามโมเดลของฉันจะขายอย่างบ้าคลั่ง! ต้องการความช่วยเหลือในการเขียนโปรแกรม ฉันได้ยื่นสิทธิบัตรสำหรับเกมดังกล่าว (รอดำเนินการ) แต่ต้องการโปรแกรมเมอร์ผู้เชี่ยวชาญเพื่อเขียนเกมตรรกะสำหรับฉัน จากความเข้าใจของฉันมันเป็นวิธีปฏิบัติมาตรฐานในการชดเชยโปรแกรมเมอร์ตามขนาดของไบต์ของโปรแกรมสุดท้าย เช่นนี้ฉันจะทำการตัดสินสัญญาที่มีกำไรนี้ให้กับผู้ประมูลที่ต่ำที่สุด สเปค คันโยกเป็นชุดของกล่องหรือช่องว่างที่สมดุลกับศูนย์กลาง แต่ละกล่องมีน้ำหนักหนึ่งถึงเก้าและช่องว่างไม่มีน้ำหนัก อย่างที่คุณทราบน้ำหนักของกล่องบนคันโยกนั้นเป็นสัดส่วนโดยตรงกับความกว้างของกล่องนั้นจากศูนย์กลาง กล่องน้ำหนัก4ที่อยู่บนพื้นที่ที่สามจากศูนย์กลางจะช่วยให้12หน่วยแรงที่มีประสิทธิภาพไปยังด้านข้างของคันโยกนั้น ฉันต้องการโปรแกรมที่ได้รับคันโยกเข้าจะส่งออกไม่ว่าคันโยกจะเอียงไปทางซ้ายขวาหรือมีความสมดุลอย่างสมบูรณ์ แนวทาง I / O คุณจะเขียนโปรแกรมให้ฉัน ข้อมูลที่ป้อนจะมีข้อความหนึ่งบรรทัด อินพุตจะมาจากstdinหรือเป็นหนึ่งในสตริงบรรทัดคำสั่ง กล่องจะแสดงโดยอักขระ ' 1' ถึง ' 9' ตัวละครเหล่านี้เป็นตัวแทนของน้ำหนักที่เกี่ยวข้อง พื้นที่ว่างจะถูกแทนด้วยช่องว่าง ' ' ศูนย์กลางจะถูกแสดงด้วยเครื่องหมายรูปหมวก ' ^' ก้านอินพุตตัวอย่างอาจมีลักษณะดังนี้: 8 2^ 941 คันโยกนี้มีความสมดุลอย่างสมบูรณ์แบบ: (4*8) + 0 + …

17
เคล็ดลับการเล่นกอล์ฟในเยลลี่
วุ้นเป็นนัยกอล์ฟที่มุ่งเน้นการเขียนโปรแกรมภาษาโดยเราเองมากเดนนิส มันโผล่ขึ้นมาในคำตอบที่นี่บ่อยขึ้นเรื่อย ๆ เต้นภาษากอล์ฟ y อื่น ๆ เช่น Pyth และ CJam โดยใช้หน้ารหัสของตัวเองและระบบลูกโซ่ที่ทรงพลังเพื่อแสดงรายการที่ชัดเจน รวบรวมเคล็ดลับที่เป็นประโยชน์สำหรับการเล่นกอล์ฟในเยลลี่ (เช่นเคยหนึ่งเคล็ดลับต่อคำตอบโปรด!)
46 code-golf  tips  jelly 

10
ซิกแซ็กสตริง
เขียนโปรแกรม (หรือฟังก์ชัน) ที่รับสายอักขระที่ไม่ว่างเปล่าของอักขระ ASCII ที่พิมพ์ได้ พิมพ์ (หรือส่งคืน) ห่วงโซ่ซิกแซกของตัวละครในสตริงที่มีตัวละครทุกตัวที่เชื่อมโยงกันโดย: /หากตัวอักษรตัวแรกเกิดขึ้นก่อนตัวอักษรตัวที่สองตามลำดับ ASCII ปกติ เช่น B / A \หากตัวอักษรตัวแรกเกิดขึ้นหลังจากตัวละครตัวที่สองในลำดับ ASCII ปกติ เช่น B \ A -ถ้าตัวอักษรตัวแรกและตัวที่สองเหมือนกัน เช่น A-A ดังนั้นผลลัพธ์สำหรับProgramming Puzzles & Code Golfจะเป็น o / \ r z-z o e G l / \ / \ / \ / \ / \ P …
46 code-golf  string 

26
แปลรหัส oOo
รับอินพุตของโปรแกรมที่เขียนในoOo CODEให้เอาท์พุทรหัส BF ที่มันแทน นี่เป็นคำอธิบายสั้น ๆ ว่า oOo CODE ทำงานอย่างไร: ครั้งแรกตัวละครที่ไม่ใช่ตัวอักษรทั้งหมดจะถูกลบออก (ทุกอย่างไม่อยู่ในช่วง A-Za-z) ตัวอย่างเช่นใช้โปรแกรมPROgRam reVERsES giVeN iNPut sEqUENcE(ตัวอย่างที่ให้ไว้ในหน้า esolangs wiki ที่ทำสิ่งที่คุณต้องการ) PROgRamreVERsESgiVeNiNPutsEqUENcEหลังจากขั้นตอนแรกนี้ตอนนี้เรามี ถัดไปแบ่งตัวอักษรที่เหลือทั้งหมดลงในกลุ่มของ 3 PRO,gRa,mre,VER,sES,giV,eNi,NPu,tsE,qUE,NcEตอนนี้เรามี หากมีกลุ่มต่อท้ายที่มี 1 หรือ 2 ตัวอักษรให้ทิ้งมัน แปลงแต่ละกลุ่มของ 3 ตัวอักษรเป็นคำสั่ง BF ตามตารางต่อไปนี้: ooo > ooO < oOo [ oOO ] Ooo - OoO + OOo . OOO …

2
การขยาย OEIS: การนับการเอียงเพชร
ฉันสัญญาว่านี่จะเป็นความท้าทายครั้งสุดท้ายของฉันเกี่ยวกับการเอียงกระเบื้อง (ในขณะนั้น) ในด้านที่สดใสความท้าทายนี้ไม่มีอะไรเกี่ยวข้องกับศิลปะ ASCII และไม่ใช่รหัสกอล์ฟดังนั้นนี่จึงแตกต่างอย่างสิ้นเชิง ดังนั้นเพื่อเป็นการเตือนความจำหกเหลี่ยมทุกอันสามารถตั้งชื่อด้วยเพชรที่แตกต่างกันสามแบบ: คำถามที่น่าสนใจที่จะถามคือมีจำนวนเท่าใดสำหรับขนาดหกเหลี่ยมที่กำหนด ดูเหมือนว่าตัวเลขเหล่านี้ได้รับการศึกษาอย่างเป็นธรรมอย่างทั่วถึงและสามารถพบได้ใน OEIS A008793 อย่างไรก็ตามปัญหาที่ได้รับ trickier ถ้าเราถามว่าหลาย tilings อยู่ถึงการหมุนและการสะท้อน ตัวอย่างเช่นสำหรับความยาวด้าน N = 2 มีการเอียง 20 ต่อไปนี้: ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ /\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\ /\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ …

30
ชื่อองค์ประกอบด้านบน 118
IUPACในภูมิปัญญาที่ไม่สามารถทำได้ของพวกเขาได้สร้างชื่อองค์ประกอบที่เป็นระบบสำหรับองค์ประกอบที่สร้างขึ้นใหม่ นี่คือชื่อชั่วคราวขององค์ประกอบจนกว่าพวกเขาจะตัดสินใจเกี่ยวกับชื่อจริง มันทำงานได้เช่น: แต่ละหลักของหมายเลของค์ประกอบจะถูกกำหนดคำนำหน้าตามค่าของมัน คำนำหน้าจะถูกรวมเข้ากับ 'ium' ในตอนท้าย เมื่อดำเนินการเสร็จแล้วและหากคุณได้รับ double i's (ii) หรือ triple n's (nnn) ให้แทนที่พวกเขาด้วย single i's และ double n's สัญลักษณ์สำหรับองค์ประกอบคือตัวอักษรตัวแรกของคำนำหน้าแต่ละคำที่ใช้ต่อกันและผลลัพธ์เป็นตัวพิมพ์ใหญ่ คำนำหน้าใช้อยู่ด้านล่าง 0 nil 5 pent 1 un 6 hex 2 bi 7 sept 3 tri 8 oct 4 quad 9 enn ดังนั้นสำหรับกอล์ฟนี้รหัสของคุณจำเป็นต้องสร้างทั้งชื่อองค์ประกอบและสัญลักษณ์ของมันสำหรับจำนวนเต็มบวกที่กำหนด ดังนั้นหากรหัสของคุณได้รับ 137 ก็ควรพิมพ์ที่ stdout หรือกลับทั้งสองและuntriseptium Utsมันควรจะถูกต้องอย่างน้อยที่จะ …

30
พอยน์เตอร์พอยน์เตอร์พอยน์เตอร์!
บทนำ ในเอาต์พุตข้อผิดพลาดของบางภาษาเช่น Java ตัวชี้จะแสดงขึ้นเพื่อให้โปรแกรมเมอร์เข้าใจถึงข้อผิดพลาดที่ผิดพลาด นำตัวอย่างนี้ไปใช้กับ Ideone: Main.java:12: error: ';' expected Invalid Java! ^ สังเกตว่าเครื่องหมายรูปหมวกแสดงรหัสที่ไม่ถูกต้องอยู่ที่ไหน ท้าทาย ความท้าทายของคุณคือ: จำนวนที่กำหนดNและสตริงSวางตัวชี้บนNตัวอักษรในลำดับS ตัวอย่าง อินพุต :2, "Lorem ipsum, dollar sit amet." ผลผลิต : Lorem ipsum, dollar sit amet. ^ กฎระเบียบ รับอินพุตผ่าน STDIN หรือพารามิเตอร์ฟังก์ชัน เอาต์พุตถูกพิมพ์ไปยังคอนโซลหรือreturned การขึ้นบรรทัดใหม่การเว้นวรรค ฯลฯ อนุญาตให้ใช้ในเอาต์พุต อักขระตัวชี้ต้องเป็น^ คาเร็ตและต้องอยู่ในบรรทัดใหม่ นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดชนะ โชคดี!
46 code-golf 

30
ข้อความปะรำปลอม
ในความท้าทายนี้ข้อความปะรำปลอมคือข้อความที่แสดงเป็นส่วน ๆ ในลักษณะคล้ายกับการเลื่อน ตัวอย่างบางส่วน: testing 4 t te tes test esti stin ting ing ng g hello 2 h he el ll lo o foobarz 3 f fo foo oob oba bar arz rz z Something a bit longer 10 S So Som Some Somet Someth Somethi Somethin Something Something …
46 code-golf  string 

24
เคล็ดลับการตีกอล์ฟใน Pyth
Pythเป็นภาษาโปรแกรมหลามแรงบันดาลใจในการดำเนินการสร้างโดยผู้ใช้ PPCG isaacg คุณมีเคล็ดลับอะไรสำหรับการเล่นกอล์ฟใน Pyth? ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะเจาะจงกับ Pyth กรุณาหนึ่งเคล็ดลับต่อคำตอบ
46 code-golf  tips  pyth 

30
ร็อคตลอดเวลา
ในอักขระ Unicode น้อยที่สุดให้พิมพ์ดังต่อไปนี้ (144 ตัวอักษร): 1, 2, 3 o'clock, 4 o'clock rock, 5, 6, 7 o'clock, 8 o'clock rock, 9, 10, 11 o'clock, 12 o'clock rock, We're gonna rock around the clock tonight. คุณไม่ต้องใช้ตัวเลขใด ๆ 1ในรหัสของคุณยกเว้นหลัก

21
วาดบันไดปีศาจ
The Devil's Staircaseเป็นฟังก์ชั่นเศษส่วนที่เกี่ยวข้องกับชุดคันทอร์ งานของคุณคือการทำซ้ำฟังก์ชั่นขี้ขลาดนี้ - ในรูปแบบ ASCII! อินพุต จำนวนเต็มเดียวที่n >= 0ระบุขนาดของเอาต์พุต อินพุตอาจถูกกำหนดผ่าน STDIN, อาร์กิวเมนต์ของฟังก์ชันหรืออาร์กิวเมนต์บรรทัดคำสั่ง เอาท์พุต การแสดงผล ASCII- ศิลปะของขนาดบันไดของปีศาจnทั้งคืนเป็นสตริงหรือพิมพ์ไปยัง STDOUT ช่องว่างต่อท้ายที่ส่วนท้ายของแต่ละแถวไม่เป็นไร แต่ช่องว่างนำหน้าไม่ใช่ คุณสามารถเลือกที่จะพิมพ์ขึ้นบรรทัดใหม่ได้ สำหรับขนาด0เอาต์พุตเป็นเพียง: x (หากคุณต้องการคุณสามารถใช้อักขระ ASCII ที่พิมพ์ได้อื่น ๆ นอกจากเว้นวรรคแทนx) สำหรับขนาดn > 0เรา: ใช้ขนาดเอาต์พุตn-1และยืดแต่ละแถวออกเป็นสามส่วน ระลอกคลื่นระหว่างแถวของxs เดี่ยว เลื่อนแถวไปทางขวาเพื่อให้มีหนึ่งเดียวxในแต่ละคอลัมน์และตำแหน่งของแถวแรกxมีค่าน้อยที่สุดขณะที่ลดลงด้วยแถว ตัวอย่างเช่นผลลัพธ์สำหรับn = 1คือ: x xxx x เพื่อให้ได้ผลลัพธ์n = 2เรายืดแต่ละแถวออกเป็นสามส่วน: xxx xxxxxxxxx xxx ระลอกคลื่นน้อยระหว่างแถวของซิงเกิลx: x …

7
chatbot นี้คือใคร
วัตถุประสงค์: ภารกิจคือการสร้าง chatbot กับคนที่คุณสามารถใช้เวลาพูดคุยกับความคิดที่ลึกที่สุดของคุณด้วย สร้าง chatbot ด้วย AI ที่เรียนรู้จากข้อมูลที่คุณป้อน บอทของคุณควรเป็นแรงบันดาลใจให้คุณปลดปล่อยความจริงภายในที่มืดมนที่สุดของคุณ แรงบันดาลใจ: http://en.wikipedia.org/wiki/Chatterbot http://io9.com/5901579/10-tricks-that-chatbots-use-to-make-you-believe-theyre-human กฎ: คุณสามารถใช้ภาษาการเขียนโปรแกรมใด ๆ โปรแกรมของคุณไม่ควรรับอินพุตใด ๆ จากชื่อไฟล์เครือข่ายหรือสิ่งอื่นใดนอกจากอินพุตของผู้ใช้ ไม่สามารถมีคำศัพท์ที่ตั้งไว้ล่วงหน้าบอทควรเรียนรู้ทุกสิ่งที่รู้จากการป้อนข้อมูลของผู้ใช้และการอภิปรายสามารถเกี่ยวกับอะไรก็ได้ เกณฑ์บังคับ: นี่ไม่ใช่ Code-golf แต่โปรดทำให้มันง่ายขนาดซอร์สโค้ดควรสอดคล้องกับภาษาการเขียนโปรแกรมความหมาย: GolfScript = สั้น BF = ยาวอื่น ๆ = ใช้สามัญสำนึก ใช้รหัสตัวอย่างเป็นข้อมูลอ้างอิงรหัสของคุณอาจมีขนาดใหญ่เป็นสองเท่า แต่ก็ดีกว่าดีกว่า โปรแกรมของคุณไม่สามารถเริ่มล่าช้า (ล่าช้า 5-10 วินาที) ภายใน 1,000 ประโยคแรก การอภิปรายที่สมเหตุสมผลควรใช้เวลาประมาณ 20-30 ประโยค อัลกอริทึมของคุณควรแตกต่างกันในเชิงตรรกะจากโค้ดตัวอย่างมากที่สุดเท่าที่จะทำได้ เกณฑ์การตัดสินโบนัสเสริม: อัลกอริทึมการเรียนรู้ bot ที่ดีกว่าโปรแกรมที่ดีกว่า …

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