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

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

5
การนำอัลกอริทึมแฮช SHA-1 มาใช้
เป้าหมายของ code-golf นี้คือการสร้างโปรแกรมที่รับสตริงเป็นอินพุตและคุณต้องส่งออกค่าแฮชSHA-1เป็นเลขฐานสิบหก คุณสามารถค้นหารหัสเทียมสำหรับ SHA-1 ได้ที่นี่ กฎอื่น ๆ : ไม่มีการเข้าถึงเครือข่าย คุณไม่ได้รับอนุญาตให้เรียกใช้โปรแกรมภายนอก คุณไม่ได้รับอนุญาตให้ใช้วิธีการในตัวเพื่อแฮชอินพุต รหัสที่สั้นที่สุดชนะ มีความจำเป็นเพียงจัดการกับอินพุต ASCII เท่านั้น เอาต์พุตอาจเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ อินพุตสามารถจัดเตรียมโดยใช้: พรอมต์สำหรับการป้อนข้อมูล การใช้อาร์กิวเมนต์บรรทัดคำสั่ง ใช้ STDIN กรณีทดสอบ: Input: The quick brown fox jumps over the lazy dog Output: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 ---------------------------------------------------------- Input: The quick brown fox jumps right over the lazy dog Output: 1c3aff41d97ada6a25ae62f9522e4abd358d741f ------------------------------------------------------------ …

1
พูดตัวเลขตั้งแต่ 0 ถึง 9
แรงบันดาลใจจากคำถามนี้จากอุปกรณ์อิเล็กทรอนิกส์ SEนี่คือความท้าทายสำหรับคุณ: เขียนโปรแกรมหรือรูทีนย่อยที่ใช้ตัวเลขทศนิยม (0 ถึง 9) และพูดออกเสียงโดยไม่ต้องใช้เครื่องมือสังเคราะห์เสียงพูดที่มีอยู่ การป้อนข้อมูล: คุณอาจขอให้ใส่ตัวเลขในรูปแบบที่สมเหตุสมผลเช่นสตริงของ ASCII, อาร์เรย์ของจำนวนเต็ม, ตัวเลขเข้ารหัส BCD เป็นต้นหากวิธีการแก้ปัญหาของคุณเป็นโปรแกรมที่ปฏิบัติการได้คุณอาจใช้อินพุตเป็น พารามิเตอร์บรรทัดคำสั่งอ่านจากอินพุตมาตรฐานหรือรับในลักษณะที่สมเหตุสมผลอื่น ๆ โปรแกรมของคุณจะต้องสามารถพูดได้อย่างน้อยแปดหลักต่อการร้องขอ คุณอาจสันนิษฐานว่าตัวเลขตัวแรกไม่ใช่ศูนย์เว้นแต่เป็นตัวเลขหลักเดียว เอาท์พุท: โปรแกรมของคุณอาจพูดตัวเลขโดยตรงโดยใช้อุปกรณ์เสียงหรืออาจส่งออกไฟล์เสียงที่เล่นได้ ไฟล์เอาต์พุตถ้ามีอาจอยู่ในรูปแบบเสียงมาตรฐานหรืออาจประกอบด้วยข้อมูลตัวอย่างดิบ หากคุณส่งออกข้อมูลตัวอย่างดิบโปรดสังเกตพารามิเตอร์ที่เหมาะสมสำหรับการเล่น (อัตราตัวอย่างบิตต่อตัวอย่างความ endianness ลงนาม / ไม่ได้ลงนาม # ช่อง) รูปแบบที่รองรับโดยaplayเป็นที่ต้องการ คุณมีอิสระในการตัดสินใจรายละเอียดเกี่ยวกับวิธีการพูดตัวเลข แต่ผลลัพธ์ของคุณควรประกอบด้วยตัวเลขภาษาอังกฤษที่พูดในลักษณะที่เข้าใจได้โดยผู้พูดภาษาอังกฤษทั่วไปและควรชัดเจนพอที่ผู้ฟังจะสามารถถอดความได้อย่างถูกต้อง ตัวเลขสุ่มแปดหลักที่พูด ไม่เพียง beeping nครั้งไม่นับ อย่าลืมที่จะรวมการหยุดระหว่างตัวเลข เกณฑ์การให้คะแนน: ใช้กฎการให้คะแนนรหัสกอล์ฟแบบมาตรฐาน: คะแนนของคุณคือความยาวของรหัสเป็นไบต์หรือหากรหัสของคุณเขียนด้วยข้อความ Unicode ในหน่วย Unicode คะแนนต่ำสุดชนะ ภาษาใดก็ได้ ตามคำถามเดิมเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ SE เป็นเรื่องเกี่ยวกับการเขียนโปรแกรมแบบฝังตัวฉันรู้สึกว่าควรโยนกระดูกให้ผู้เขียนโดยใช้ภาษาระดับต่ำ: หากโซลูชันของคุณเขียนด้วยภาษาที่รวบรวมคุณอาจเลือกที่จะนับความยาวของไฟล์ปฏิบัติการที่คอมไพล์ในหน่วยไบต์เป็นคะแนนของคุณ (ใช่ไบต์.classที่คอมไพล์แล้วล่วงหน้าเช่นไฟล์Java …
15 code-golf  audio 

16
รวมอาร์เรย์โดยไม่ต้องทำซ้ำ
ฉันเพิ่งเห็นรหัส Javascript นี้ใน StackOverflow สำหรับการรวมสองอาร์เรย์และลบรายการที่ซ้ำกัน: Array.prototype.unique = function() { var a = this.concat(); for(var i=0; i<a.length; ++i) { for(var j=i+1; j<a.length; ++j) { if(a[i] === a[j]) a.splice(j--, 1); } } return a; }; var array1 = ["Vijendra","Singh"]; var array2 = ["Singh", "Shakya"]; var array3 = array1.concat(array2).unique(); ในขณะที่รหัสนี้ใช้งานได้มันไม่มีประสิทธิภาพอย่างน่ากลัว ( O(n^2)) ความท้าทายของคุณคือการสร้างอัลกอริทึมที่มีความซับซ้อนน้อยลง …

12
เคล็ดลับการตีกอล์ฟใน Tcl
คุณมีเคล็ดลับอะไรบ้างสำหรับการเล่นกอล์ฟใน Tcl? ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะ Tcl (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
15 code-golf  tips 

30
คู่หรือคี่: ผู้เล่นสามคน
มันเป็นเกมสามผู้เล่นเล่นด้วยมือเดียว ในเวลาเดียวกันผู้เล่นแต่ละคนจะแสดงมือของเขาด้วยการขยาย 0 ถึง 5 นิ้ว หากผู้เล่นทุกคนแสดงหมายเลขเดียวกัน (คู่หรือคี่) เหมือนกันจะไม่มีผู้ชนะ แต่อย่างอื่นผู้เล่นแสดงให้เห็นถึงความแตกต่างในการชนะสองครั้ง P l a y e r s A B C Winner Even Even Even No winner Odd Odd Odd No winner Even Odd Odd Player A Odd Even Even Player A Even Odd Even Player B Odd Even Odd Player …
15 code-golf  number  game 

8
ทัวริงเครื่องจำลอง
เขียนโปรแกรมจำลองเครื่องทัวริง เพื่อความง่ายเราสามารถสมมติสถานะเป็นจำนวนเต็มสัญลักษณ์เป็นอักขระถ่านสัญลักษณ์ว่างเท่ากับช่องว่าง 5-tuple ในรูปแบบของสถานะปัจจุบัน, สัญลักษณ์อินพุต, สถานะถัดไป, สัญลักษณ์เอาต์พุต, ทิศทาง (ซ้ายหรือขวา) ลำดับไม่จำเป็น แต่ระบุว่าถ้าคุณสลับ เครื่องต้องหยุดเมื่อถึงสถานะที่ไม่รู้จักไม่อนุญาตให้มีเงื่อนไขหยุดชะงักอื่น ๆ เทปไม่มีที่สิ้นสุดในทั้งสองทิศทางและคุณสามารถอ่านอักขระว่างได้เสมอ อินพุต: เทปเริ่มต้นสถานะเริ่มต้นและโปรแกรม คุณมีอิสระที่จะอ่านข้อมูลจากที่ใดก็ได้ในรูปแบบที่คุณต้องการ เอาท์พุท: เทปหลังจากการดำเนินการของโปรแกรม ต้องมี: โปรแกรมตัวอย่างที่ทำงานบนโปรแกรมจำลองการทำงานของคุณ นี่คือโค๊ดโคฟเพื่อให้รหัสที่สั้นที่สุดชนะ ฉันจะโพสต์การใช้งานและโปรแกรมตัวอย่างในอีกไม่กี่ชั่วโมงข้างหน้า

2
Major Dichotomy สาขาวิชาเอก
กำหนดรายการของคอร์ดที่ระบุว่าเป็น 'Major' หรือ 'Minor' อินพุต อินพุตจะเป็นรายการของคอร์ดหนึ่งรายการต่อบรรทัดประกอบด้วย 3 โน้ตคั่นด้วยช่องว่าง แต่ละโน้ตจะประกอบด้วยชื่อโน้ตเป็นตัวพิมพ์ใหญ่ ( A- G) และตัวเลือกที่ไม่ตั้งใจ ( #หรือb) คอร์ดอาจอยู่ในการผกผันใด ๆ (เช่นบันทึกอาจอยู่ในลำดับใด ๆ ) เอาท์พุต หากคอร์ดเป็นส่วนใหญ่เอาต์พุต 'เมเจอร์' หากคอร์ดน้อยแสดงผลลัพธ์ 'Minor' หากคอร์ดไม่ได้เป็นหลักหรือรองให้เอาบรรทัดว่างออก ตัวอย่าง อินพุต C E G F Ab C C Eb Gb E G B Db F Ab Bb G D D A Gb เอาท์พุต …
15 code-golf  music 

15
ตีกอล์ฟปัญหาย่อย
งาน เมื่อระบุรายการของจำนวนเต็มที่คั่นด้วยช่องว่างเป็นอินพุตให้ส่งออกชุดย่อยที่ไม่ว่างเปล่าทั้งหมดของตัวเลขเหล่านี้ซึ่งแต่ละชุดย่อยจะรวมเป็น 0 กรณีทดสอบ อินพุต: 8 −7 5 −3 −2 เอาต์พุต:-3 -2 5 เกณฑ์การชนะ นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ!
15 code-golf  math 

4
สร้าง GUI Piano [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ท้าทาย สร้างคีย์บอร์ด GUI ที่มีอักขระน้อยที่สุด ตัวอย่าง เนื่องจากนี่เป็นงานที่มอบหมายในหนึ่งในหลักสูตรของฉันฉันจึงไม่สามารถแสดงซอร์สโค้ดได้ อย่างไรก็ตามนี่คือภาพหน้าจอของแป้นพิมพ์ของฉัน ในตัวอย่างนี้กุญแจของฉันเป็นประเภทJButtonและฉันใช้ Midi Synthesizer เพื่อสร้างเสียง (ด้วยค่าเริ่มต้นของซอง ADSR) กฎระเบียบ คุณได้รับอนุญาตให้ใช้ไลบรารีภายนอกมาตรฐาน สร้างสรรค์กับเสียงของคุณ คุณสามารถใช้ 8 บิต sitar ฯลฯ เพื่อความง่ายคุณอาจมีห้าปุ่ม; ขาวดำจาก C ถึง E (ห้าปุ่มแรกบนแป้นพิมพ์) ที่สำคัญที่สุดคือ ... แสดงงานของคุณ! ข้อสังเกต : อาจเป็นงานที่มีขนาดค่อนข้างใหญ่ทั้งนี้ขึ้นอยู่กับภาษาที่คุณเลือกใช้ นี่เป็นคำถามแรกของฉันเกี่ยวกับ SE Code Golf หากมีสิ่งใดไม่ชัดเจนโปรดสอบถามรายละเอียดเพิ่มเติม แก้ไข : วันที่ครบกำหนดสำหรับความท้าทายนี้จะเป็น 9/22/12 หากคุณโพสต์คำตอบหลังจากวันที่นี้ฉันจะตรวจสอบโดยไม่คำนึงถึง …
15 code-golf  music 

3
regex จับคู่ตัวเอง [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เขียน regex ที่ไม่สำคัญที่ตรงกับตัวเอง ตัวอย่างเช่น#.*$จะจับคู่ความคิดเห็นนอกสตริงใน python จนกระทั่งถึงจุดสิ้นสุดของบรรทัดและจับคู่ตัวเองในไวยากรณ์ perl regex กฎ : การแสดงออกปกติจะต้องทำสิ่งที่มีประโยชน์หรือปฏิบัติ บอกไวยากรณ์ของ regex ที่คุณใช้ (เช่น perl หรือ POSIX) ผู้ชนะคือคำตอบที่ได้รับการโหวตสูงสุด มีความคิดสร้างสรรค์!

4
มันสนุกมากที่ได้อยู่ที่ YMCA
"ซีเอ"เป็นเพลงดิสโก้ได้รับความนิยมจากชาวบ้านที่มีการเต้นรำที่รู้จักกันดี เขียนโปรแกรมที่สั้นที่สุดเพื่อพิมพ์อักษรตัวใหญ่ "Y", "M", "C" และ "A" ที่ซิงโครไนซ์กับคอรัสของเพลง โดยทั่วไปแล้วตัวอักษรหนึ่งตัวจะไปที่แต่ละบรรทัดที่ส่งไปยังเอาต์พุตมาตรฐาน นี่คือหลักเพื่อลดความซับซ้อนของโปรแกรมที่อยู่ภายใต้การบัฟเฟอร์ผลลัพธ์ของไลบรารีมาตรฐาน C (การพิมพ์บรรทัดใหม่ล้างข้อมูลบัฟเฟอร์ขาออก) ดังนั้นคุณอาจละเว้นบรรทัดใหม่ใด ๆ หรือทั้งหมดหากการละเลยดังกล่าวจะทำให้โปรแกรมของคุณสั้นลง โปรแกรมของคุณซึ่งเริ่มในเวลาเดียวกันกับเพลงจะต้องส่งออกตัวอักษร "Y" ภายในระยะเวลา 0.125 วินาทีของแต่ละช่วงเวลาหลังจากเริ่มต้น (ในไม่กี่วินาทีฉันกำหนดสิ่งเหล่านี้จากมิวสิควิดีโอที่โพสต์บน YouTube) 45.766 49.611 60.889 64.661 109.816 113.591 124.810 128.687 173.830 177.620 188.950 192.724 204.013 207.739 219.057 ตัวอักษร "M", "C" และ "A" ตามลำดับมี 0.930 s, 1.395 s และ 1.628 s …
15 code-golf  music 

13
ย้ายเฉพาะช่วงเวลาโอ้ฉัน!
ภารกิจนั้นง่าย: โปรแกรมของคุณอ่านจำนวนเต็มเป็นอินพุตและพิมพ์ว่ามันเป็นไพร์มหรือไม่ คุณสามารถพิมพ์ "ใช่ / ไม่ใช่", "จริง / เท็จ" หรืออะไรก็ได้ที่ระบุผลลัพธ์อย่างไม่น่าสงสัย ความท้าทายคือรหัสจะต้องทำงานกับการย้ายแถวและคอลัมน์ หากต้องการยกเว้นโซลูชันที่เห็นได้ชัด (สั้นที่สุด "แก้ปัญหาง่าย ๆ " ซ้ำแล้วซ้ำอีกในแนวตั้งโดยใช้ถ่านด้วยความคิดเห็น) ตัวชี้วัดนั้นแตกต่างจากรหัสปกติเล็กน้อยกอล์ฟเล็กน้อย: เนื่องจากการจัดรูปแบบมีความสำคัญอย่างยิ่งในการท้าทายนี้ขนาดของรหัสจะถูกวัดในพื้นที่สี่เหลี่ยมเล็กที่สุดที่โค้ดพอดีในคำอื่น ๆ ช่องว่างนับและเส้นควรจะเต็มความยาวเท่ากัน (คุณไม่ได้ ต้องทำจริง ๆ เมื่อคุณโพสต์โซลูชันเพื่อความเรียบง่าย) ตัวอย่างเช่น int main() { return 0; } จะมีขนาด 4 * 13 = 52, (และเห็นได้ชัดว่ามันไม่พอดีกับเกณฑ์ใดเกณฑ์หนึ่งจากสองข้อนี้: การตรวจจับเฉพาะและ transposable) ขนาดที่เล็กที่สุดชนะ คุณสามารถใช้ภาษาใดก็ได้และฟังก์ชั่นห้องสมุดใด ๆ ยกเว้นว่าจุดประสงค์เดียวของฟังก์ชั่นนั้นคือการค้นหาสร้างหรือตรวจจับเฉพาะช่วงเวลา แก้ไข: ในขณะที่ผู้ชนะอาจเป็นทางออกของ Golfscript ฉันจะให้รางวัล 50 …

20
สร้างผลรวมกริด
สร้างกริด 7 x 7 เต็มไปด้วยตัวเลขสุ่ม อย่างไรก็ตามในเซลล์ที่มีจำนวนแถวและคอลัมน์คี่ (เริ่มต้นที่ 0) คุณต้องใช้ผลรวมของเซลล์โดยรอบ นี่คือตัวอย่างเล็ก ๆ ที่มีตารางขนาด 3 คูณ 3 (ตัวหนาเป็นสี่เหลี่ยมจัตุรัส): 2 2 2 2 16 2 2 2 2 และนี่คือตัวอย่างขนาด 7 คูณ 7 ตาราง: 6 5 4 3 7 2 5 6 43 3 50 8 43 8 4 7 8 8 9 3 …

12
แปลงจากไบนารีเป็นลบ
ได้รับจำนวนเต็มไบนารีอย่างรวมระหว่าง0และ1111111111111111(เช่น 16 บิตจำนวนเต็มไม่ได้ลงนาม) ขณะที่นำเข้าส่งออกเลขเหมือนกันในnegabinary อินพุตสามารถอยู่ในรูปแบบใดก็ได้ที่สะดวกที่สุดสำหรับภาษาของคุณ ตัวอย่างเช่นหากโปรแกรมจัดการกับอินพุตด้วยตัวเลข 16 หลักได้0000000000000101ง่ายกว่า101คุณสามารถเขียนโปรแกรมเพื่อรับอินพุตด้วยวิธีนั้นเท่านั้น ตัวอย่าง I / O > 1 1 > 10 110 > 1010 11110 > 110111001111000 11011001110001000 > 1001001 1011001 นี่คือโปรแกรมตัวอย่างที่ฉันเขียนซึ่งทำการแปลงฐานรวมถึงฐานที่เป็นลบและไม่ใช่จำนวนเต็ม คุณสามารถใช้มันเพื่อตรวจสอบงานของคุณ

25
คำนวณ pi ถึง 5 ทศนิยม
สิ่งนี้มาจากhttp://programmers.blogoverflow.com/2012/08/20-controversial-programming-opinions/ "เนื่องจาก Pi สามารถประมาณได้โดยใช้ฟังก์ชั่น 4 * (1 - 1/3 + 1/5 - 1/7 + …) พร้อมเงื่อนไขเพิ่มเติมที่ให้ความแม่นยำมากขึ้นเขียนฟังก์ชันที่คำนวณ Pi ถึงความแม่นยำทศนิยม 5 ตำแหน่ง " หมายเหตุการประเมินจะต้องทำโดยการคำนวณลำดับที่ได้รับข้างต้น
15 code-golf  pi 

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