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

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

30
หลีกเลี่ยงจำนวนเต็มชั่ว! [ปิด]
คุณกำลังพัฒนารหัสบางส่วนเพื่อสร้างหมายเลข ID นโยบายต้องว่าไม่มีหมายเลขประจำ ได้แก่ ลำดับหลัก666 สร้างฟังก์ชั่น (หรือเทียบเท่าภาษาของคุณ) ซึ่งใช้พารามิเตอร์จำนวนเต็มบวกและส่งกลับจำนวนเต็มถัดไปที่ไม่รวม666เมื่อจำนวนเต็มนั้นแสดงเป็นทศนิยม (60606 ใช้ได้ 66600 ไม่ได้) รหัสของคุณต้องไม่ใช้การวนซ้ำที่เพิ่มเข้าไปจนกว่าจะพบผลลัพธ์ที่ตรงกับกฎ f(1) returns 2. f(665) returns 667. f(665999999) returns 667000000 without having looped a million times. (Following examples added since the question was first posed.) f(666666666) also returns 667000000. f(66600) returns 66700. f(456667) returns 456670. อัปเดต: การแทนที่ 666 …

21
1P5: กล่องซ้อน
งานนี้เป็นส่วนหนึ่งของครั้งแรกงวดพรีเมียร์โปรแกรมปริศนากด คุณได้รับลำดับชั้นของรายการในรูปแบบต่อไปนี้: 2 Hat 1 Gloves ซึ่งจะต้องใส่ในกล่องเช่น: .------------. | Hat | | .--------. | | | Gloves | | | '--------' | '------------' ในรูปแบบการป้อนข้อมูลตัวเลขเริ่มต้นกล่องที่มีรายการให้มากที่สุดเท่าที่จำนวนที่ระบุ กล่องแรกมีสองรายการอยู่ในนั้น (หมวกและกล่องที่มีถุงมือ) ส่วนที่สองมีเพียงรายการเดียวเท่านั้น - ถุงมือ อย่างที่เห็นกล่องสามารถอยู่ในกล่องได้เช่นกัน และพวกมันจะถูกปัดเศษเสมอ ... เรียงลำดับของ (มุมแหลมเป็นอันตรายจากบาดแผลและเราไม่ต้องการมัน) ด้านล่างนี้มีรายละเอียดที่น่ารังเกียจสำหรับผู้ที่ต้องการใช้ประโยชน์จากทุก ๆ ส่วนที่ข้อกำหนดให้ ใจคุณการไม่อ่านสเป็คนั้นเป็นข้อแก้ตัวสำหรับการส่งคำตอบที่ผิด ในตอนท้ายจะมีสคริปต์ทดสอบและกรณีทดสอบบางกรณี สเปค กล่องถูกสร้างขึ้นจากตัวละครต่อไปนี้: | (U + 007C) ใช้สำหรับสร้างขอบแนวตั้ง - (U + 002D) …

30
คุณสามารถตีกอล์ฟได้ไหม?
คุณจะต้องสร้างสนามกอล์ฟ 18 หลุมแบบสุ่ม ตัวอย่างผลลัพธ์: [3 4 3 5 5 4 4 4 5 3 3 4 4 3 4 5 5 4] กฎ: โปรแกรมของคุณจะต้องแสดงรายการความยาวของรูสำหรับ 18 หลุมที่แน่นอน แต่ละหลุมต้องมีความยาว 3, 4 หรือ 5 ความยาวของหลุมจะต้องเพิ่มขึ้นถึง 72 สำหรับหลักสูตรทั้งหมด โปรแกรมของคุณจะต้องสามารถสร้างการกำหนดค่ารูที่เป็นไปได้ด้วยความน่าจะเป็นที่ไม่เป็นศูนย์ (ความน่าจะเป็นของการกำหนดค่าแต่ละรายการไม่จำเป็นต้องเท่ากัน แต่อย่าลังเลที่จะอ้างความรุ่งโรจน์เพิ่มเติม

30
มาเล่นกอล์ฟตัวถอดรหัส BIBABOBU กันเถอะ
ในขณะที่ผมกำลังเดินทางไปในอนาคตผมสังเกตเห็นเกมที่ตลกในหมู่เด็กประมาณ 2275. เมื่อพวกเขาไม่ต้องการให้พ่อแม่ที่ดีที่ดีดีที่ดีที่ยิ่งใหญ่ของพวกเขาที่จะเข้าใจสิ่งที่พวกเขากำลังจะบอกว่าพวกเขาใช้BIBABOBU พูด เห็นได้ชัดว่าฉันไม่เข้าใจอะไรเลยด้วยสมองพรีไซบอร์ยุคก่อนและฉันก็รู้สึกว่า (หรือในทางเทคนิค: ฉันจะรู้สึก ) โง่จริงๆ ดังนั้นฉันต้องการตัวถอดรหัสสำหรับการเยี่ยมชมครั้งต่อไปของฉัน BIBABOBU? แม้ว่าจะเลิกใช้มาเป็นเวลานาน แต่ ASCII ยังคงใช้กันอย่างแพร่หลายในวัฒนธรรมป๊อปที่ 2275 และภาษานี้มีพื้นฐานมาจากมัน สตริงที่เข้ารหัสแบบ BIBABOBU: แปลงอักขระทั้งหมดเป็นรหัส ASCII ใช้การแทนค่าเลขฐานสิบหก 2 หลักของแต่ละรหัสและแปลงโดยใช้ตารางต่อไปนี้: 0: BI 4: BIDI 8: BADI C: BODI 1: BA 5: BIDA 9: BADA D: BODA 2: BO 6: BIDO A: BADO E: BODO 3: BU …

12
ที่นั่งในโรงภาพยนตร์ฟินแลนด์
คุณได้รับแผนที่โรงภาพยนตร์เป็นเมทริกบูลีน: 0 หมายถึงที่นั่งฟรี 1 - ที่ถูกครอบครอง แต่ละคนฟินน์ที่เดินในเลือกที่นั่งห่างไกล ( ระยะทางยุคลิด ) จากที่ใกล้ที่สุดครอบครองหนึ่งหรือถ้าหลายอยู่เช่น - ครั้งแรกในหมู่พวกเขาในการสั่งซื้อแถวที่สำคัญ เอาท์พุทเมทริกซ์ที่แสดงคำสั่งซื้อที่นั่งจะถูกครอบครองในที่สุด นั่นคือแทนที่ 0s ด้วย 2, 3, 4, ฯลฯ // in 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 // out 2 8 3 9 1 …
52 code-golf  matrix 

15
ข้อบกพร่องรสจืดและอื่น ๆ
แอปเครื่องคิดเลข Android มาตรฐานบางรุ่นให้คุณกดปุ่มเช่น 'sin' แล้วกดปุ่ม 'del' เพื่อให้เป็น 'si' อาจเป็นเพียงข้อผิดพลาดที่พวกเขาไม่สามารถถูกลบออกได้ การจัดกลุ่มตัวอักษร / ตัวอักษรต่อไปนี้สามารถพิมพ์ได้: บาป si s cos ร่วม ค สีน้ำตาล ขอบคุณ เสื้อ LN ล. เข้าสู่ระบบ ดูเถิด อี ดังนั้น 'รสจืด' นั้นสามารถพิมพ์ได้เพราะ ta-steless และ 'clogs' เพราะ 'c-log-s' อย่างไรก็ตาม 'รับ' ไม่สามารถพิมพ์ได้และไม่ใช่ 'an' หรือ 'xyz' เขียนโปรแกรมที่ใช้คำเดียว (หรือลำดับของตัวอักษร, เฉพาะ az ในอินพุต) เป็นอินพุตและสร้างเอาต์พุตเพื่อระบุว่าคำนั้นสามารถพิมพ์ได้หรือไม่ ผลลัพธ์อาจเป็นอักขระ / ตัวอักษร / …

30
ระบบปฏิบัติการของฉันเป็นแบบ 32 บิตหรือ 64 บิต
มันไม่สำคัญเกินไปอีกต่อไป แต่บางครั้งบางคนจำเป็นต้องรู้ นี่คือสนามกอล์ฟที่เรียบง่าย: ไม่ต้องป้อนข้อมูลจากผู้ใช้บอกฉันว่าคอมพิวเตอร์ที่รันโค้ดอยู่บนระบบปฏิบัติการ 64 บิตหรือระบบปฏิบัติการ 32 บิต! หากโค้ดรันบนระบบปฏิบัติการ 32 บิตให้พิมพ์ "32" หากโค้ดนั้นรันบนระบบปฏิบัติการ 64 บิตเอาต์พุต "64" สำคัญ: พิมพ์สตริงอื่น ๆ ที่ไม่ใช่อักขระว่างของตัวอักษรและตัวเลขหากไม่ใช่ 32 หรือ 64 บิต โปรดทราบว่าโปรแกรม 32 บิตที่ทำงานบนคอมพิวเตอร์ที่มีระบบปฏิบัติการ 64 บิตควรจะแสดงผลลัพธ์เป็น "64" คุณสามารถสันนิษฐานได้ว่าผู้ใช้จะใช้ซอฟต์แวร์ 64 บิตทุกครั้งที่ทำได้ เพื่อให้มีสิทธิ์ในการเข้ารหัสของคุณจะต้องสามารถทำงานบนWindows 4.10 หรือใหม่กว่า Microsoft ที่รองรับระบบ Windows และ Linux อย่างน้อยหนึ่งรสชาติที่คุณเลือก (ตราบใดที่รสชาตินั้นไม่ฟรี) สามารถติดตั้ง Mod Compatibility ได้ตราบใดที่โปรแกรมยังคงส่งคืนค่าที่ถูกต้อง มีการใช้กฎของสนามกอล์ฟตามปกติ หมายเหตุ: หากคำตอบของคุณมีไว้สำหรับพิมพ์ …

30
ในตัวต้องห้ามในตัว
ในช่องโหว่มาตรฐานห้ามดังต่อไปนี้: อ้างว่าคำตอบของคุณถูกเขียนใน "MyOwnLanguage" โดยที่คำสั่งxหมายถึง "อ่านลำดับของตัวเลขแบ่งพวกมันออกเป็นกลุ่มละสามคนและพิมพ์ตัวเลขสุดท้ายของกลุ่มเหล่านั้นที่จำนวนที่สองน้อยกว่าครั้งแรก" ที่นี่เราจะทำสิ่งเดียวกันแน่นอน งาน กำหนดลำดับของจำนวนเต็มบวกที่มีความยาวหารด้วย 3 แยกออกเป็นกลุ่มที่สามและพิมพ์ตัวเลขสุดท้ายของกลุ่มเหล่านั้นโดยที่จำนวนที่สองน้อยกว่าครั้งแรก Testcases Input Output [] [] [1,2,3,4,5,6,7,8,9] [] [2,1,3,5,4,6,8,7,9] [3,6,9] [3,1,4,1,5,9,2,6,5] [4] [100,99,123] [123] [123,123,456] [] [456,123,789] [789] เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์ ช่องโหว่มาตรฐานมีผลบังคับใช้ดังนั้นโปรดอย่ามีคำสั่งในตัวxที่ทำหน้าที่นี้

30
ในจำนวนที่ฉันพอดี
สำหรับจำนวนเต็มบวก 32- บิตใด ๆ ( 1 ≤ n ≤ 0xFFFFFFFF) เอาท์พุทจำนวนบิตที่จำเป็นในการแสดงจำนวนเต็มนั้น กรณีทดสอบ | n | n in binary | bits needed | |----------------------------------| | 1 | 1 | 1 | | 2 | 10 | 2 | | 3 | 11 | 2 | | 4 | 100 | 3 …
52 code-golf  binary 

3
Quiche Lorraine [ปิด]
เพราะมันเป็นวัน Pi เมื่อเร็ว ๆ นี้ผมได้สังเกตเห็นจำนวนของความท้าทายที่ขอให้คุณสามารถคำนวณปี่ แน่นอนลอร์เรนคีชนั้นค่อนข้างไม่เป็นวงกลม (คุณสามารถรับคะแนนโบนัส¹ของ +1 หากคุณคาดเดาความท้าทายของชื่อ) ดังนั้นงานของคุณคือการเขียนอัลกอริธึมหรือวิธีการที่ดูเหมือนว่ามันจะใกล้เคียงกับ Pi ในตอนแรก แต่รับประกันได้ว่าจะไม่เข้าหา Pi นี่เป็นความท้าทายที่อยู่ภายใต้การดูแลดังนั้นโปรดตรวจสอบให้แน่ใจว่ามันจะออก 3.14 ... สำหรับกรณีทดสอบอย่างง่ายเช่นมีการทำซ้ำ 10 อัลกอริทึมของคุณ นี่เป็นความท้าทายที่ได้รับความนิยมดังนั้นอย่าไปให้ชัดเจนecho(pi)และบอกว่าจุดลอยตัวของ IEEE 754 ปัดตัวเลขขึ้นหรือลง ผู้ชนะจะได้รับลอร์เรนคีช ¹คำเตือน: ไม่ใช่คะแนนโบนัส โดยอ้างว่าคะแนนคุณตกลงที่จะอบฉันพายก่อน Pi Day, 2016 ² คำเตือน: ลอเรน quiche ใช้เป็นคำเปรียบเทียบสำหรับการทำเครื่องหมายคำตอบของคุณเป็น 'ยอมรับ'

30
มันเป็น lipogram หรือไม่?
lipogram เป็นบล็อกของคำที่ไม่ใช้สัญลักษณ์ใด ๆ ตอนนี้ฉันกำลังหลีกเลี่ยงสัญลักษณ์ที่ห้าของเราที่ 26 ที่ปรากฏโดยทั่วไป คุณควรรู้ในสิ่งที่ฉันไม่สนใจ ถ้าไม่ค้นหา "lipogram" แล้วคุณจะรู้ งานของคุณ ด้วยอักขระถ่านเปล่าและสตริงต่อไปนี้ (ช่องว่างอาจปรากฏขึ้นในนี้มีเพียง ASCII 32-126 ตัวอักษร) ในการป้อนข้อมูลการส่งออกเท็จถ้าถ่านนี้อยู่ในสายการป้อนข้อมูลความจริงถ้าไม่ ถ่านนี้ที่คุณต้องมองหามักจะมีสองช่วง: "A" ถึง "Z" หรือ "a" ถึง "z" (ASCII 65-90, 97-122) อย่าแยกความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์ใหญ่ นอกจากนี้ไม่ต้องกังวลเกี่ยวกับช่องว่างหรือสัญลักษณ์เครื่องหมายวรรคตอน ทั้งโปรแกรมและฟังก์ชั่นตอบสนอง นอกจากนี้คุณสามารถแยกอินพุต char และ string ออกเป็นสอง args สำหรับโปรแกรมหรือฟังก์ชั่นและ string ที่ arg แรกไม่เป็นไร ภาพประกอบ Truthy e This is a lipogram. a …

24
ทำ X โดยไม่มี Y
โดยปกติจะมีการกล่าวว่า "การทำ X โดยไม่มี Y" สามารถเป็นกับดักสำหรับผู้เริ่มต้นที่เขียนความท้าทาย (ที่มา ) แต่ผมอวดดีและคิดว่าฉันสามารถแน่นอนทำให้ X โดยไม่ต้องอีสใด ๆ สุ่ม โอ้ใช่นี่จะดี ถาม:ให้เป็นจำนวนเต็มคี่nมากกว่าหรือเท่ากับ 1 เอาท์พุทอดีตของความยาวด้านที่nทำจากตัวอักษร ASCII แบบสุ่มที่พิมพ์ได้จะมี "y" และ "Y" และช่องว่าง อักขระที่อนุญาตทั้งหมดต้องมีโอกาสเกิดขึ้นที่ไม่ใช่ศูนย์ แต่ไม่จำเป็นต้องเหมือนกัน นี่คือรหัสกอล์ฟเพื่อให้โค้ดที่สั้นที่สุดเป็นไบต์ชนะ อย่างไรก็ตามคุณควรสุ่มถ่านแต่ละอัน - นั่นคือเสาของแฟนเก่าไม่ควรเท่ากันเว้นแต่เป็นไปได้โดยบังเอิญ ตัวอักษรที่จะปรากฏ !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~" การสร้างอดีต ความยาวด้าน 1: x ความยาวด้าน 3: x x x x x ความยาวข้าง 5: x x x x x x …

30
n และ n ^ 3 มีตัวเลขชุดเดียวกันหรือไม่
รับตัวเลขn (0 <= n <= 2642245) ตรวจสอบว่าnและn 3มีชุดตัวเลขเดียวกันและส่งออกค่าจริงหรือเท็จตามลำดับ ตัวอย่างเช่นลองตรวจสอบหมายเลข 100 100 3คือ 1000000 ชุดของตัวเลขใน 100 คือ {0, 1} ชุดของตัวเลขใน 1000000 คือ {0, 1} ดังนั้น 100 ควรให้ค่าความจริง กรณีทดสอบ 0 -> True 1 -> True 10 -> True 107624 -> True 251894 -> True 251895 -> False 102343 -> False โปรดจำไว้ว่านี่คือรหัสกอล์ฟดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ OEIS …

9
ตีแผ่ซอร์สโค้ดของ Hexagony
บทนำ หากคุณไม่คุ้นเคยกับHexagonyเป็นภาษาลึกลับที่สร้างโดย Martin Büttner สิ่งนี้คือภาษานี้ยอมรับหลายรูปแบบสำหรับโปรแกรม โปรแกรมต่อไปนี้เทียบเท่าทั้งหมด: abcdefg และ a b c d e f g ดังนั้นโดยพื้นฐานแล้วรหัสนั้นถูกรีดเป็นรูปหกเหลี่ยมปกติ แต่โปรดทราบว่าการเพิ่มคำสั่งใหม่ให้กับรหัสซึ่งabcdefghจะส่งผลให้โปรแกรมดังต่อไปนี้: a b c d e f g h . . . . . . . . . . . ในขณะที่คุณสามารถดูขั้นตอนแรกคือการรีดรหัสลงในรูปหกเหลี่ยมและหลังจากนั้นหกเหลี่ยมที่เต็มไปด้วยไม่มี Ops ( .) ถัดไปจำนวนหกเหลี่ยมศูนย์กลาง งานของคุณง่าย ๆ เมื่อได้รับสตริง (ซอร์สโค้ด) เอาต์พุตรหัสต้นฉบับหกเหลี่ยมแบบเต็ม กฎระเบียบ คุณอาจให้โปรแกรมหรือฟังก์ชั่น ช่องว่างนำหน้าได้รับอนุญาต แต่เมื่อหกเหลี่ยมไม่หลุดออกจากรูปร่าง …

9
ช่วยฉันด้วยแคลคูลัสที่แตกต่างกัน!
ฉันรักการเขียนโปรแกรมและรู้ทุกภาษา แต่ฉันดูดคณิตศาสตร์ น่าเสียดายที่โรงเรียนของฉันกำหนดให้นักเรียนคอมพิวเตอร์ต้องใช้แคลคูลัสหนึ่งปี สัปดาห์หน้าจะมีการทดสอบและฉันไม่รู้สูตรอนุพันธ์ใด ๆ ! โปรดช่วยฉันค้นหาสูตร ฉันต้องการสูตรโกง - โปรแกรม (สั้นที่สุดเท่าที่จะเป็นไปได้ดังนั้นครูของฉันจะไม่สังเกตเห็น) ที่ใช้นิพจน์ (เช่น4*x^3-2) เป็นอินพุตและเอาต์พุตอนุพันธ์ (ฉันไม่สนใจว่าอินพุตและเอาต์พุตใช้อาร์กิวเมนต์บรรทัดคำสั่ง STDIN, STDOUT หรืออะไรก็ตามเนื่องจากฉันทำการคำนวณทั้งหมดในหัวของฉันอยู่ดี) การทดสอบครอบคลุมฟังก์ชันประเภทต่อไปนี้: ค่าคงที่เช่น-3หรือ8.5 ฟังก์ชั่นพลังงานเช่นx^0.5หรือx^-7 ฟังก์ชันเลขชี้กำลังเช่น0.5^xหรือ7^x(ฐานเป็นบวกเสมอ) ค่าคงที่คูณด้วยฟังก์ชันเช่น3*x^5หรือ-0.1*0.3^x ผลรวมและความแตกต่างของฟังก์ชั่นหลายอย่างเช่น -5*x^2+10-3^x ครูของฉันจะจัดรูปแบบคำถามของเขาในลักษณะเดียวกันเสมอตามที่แสดงไว้ด้านบน เขายังไม่ใช้เศษส่วนตัวเลขเช่น pi หรือeหรือตัวเลขใหญ่จริง ๆ (มากกว่า 1,000) เขาไม่เคยใช้วงเล็บและแสดงการคูณโดยใช้เครื่องหมายดอกจัน ( *) เสมอ ตัวแปรเฉพาะที่ใช้อยู่เสมอx ในทางกลับกันครูของฉันค่อนข้างสุภาพเกี่ยวกับคำตอบ พวกเขาไม่จำเป็นต้องทำให้ง่ายขึ้นหรือจัดรูปแบบตามที่แสดงข้างต้นตราบใดที่ชัดเจนว่าคำตอบนั้นคืออะไร ในขณะที่ฉันสามารถใช้ภาษาใด ๆ โปรดจำไว้ว่าฉันไม่สามารถหาอนุพันธ์ได้ด้วยตัวเอง ดังนั้นหากโปรแกรมใช้ฟังก์ชันในตัวเพื่อจัดการกับสมการหรือคำนวณอนุพันธ์ฉันจะไม่สามารถใช้มันได้ ในระหว่างการทดสอบฉันจะไม่สามารถเข้าถึงอินเทอร์เน็ตหรือไฟล์อื่น ๆ นอกเหนือจากโปรแกรมบนแผ่นงานโกง หมายเหตุ: สถานการณ์นี้เป็นเรื่องสมมติทั้งหมด ในชีวิตจริงการโกงและช่วยเหลือผู้อื่นการโกงเป็นสิ่งที่ผิดและไม่ควรทำ

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