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

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


16
ไฮกุที่ทำงานได้ซึ่งส่งออกไฮกุ [ปิด]
ปริศนา: เขียนโปรแกรมสั้นสามบรรทัดซึ่ง: มี 5/7/5 พยางค์ต่อบรรทัดเมื่ออ่านออกเสียง ส่งออกไฮกุเมื่อทำงาน ตัวอย่างของโปรแกรมที่มีโครงสร้างที่ถูกต้อง แต่เอาต์พุตที่ไม่ใช่ไฮกุคือ (Python): >>> for x in range(3): ... print "EXTERMINATE HUMANS" ... # I am a Dalek. ... EXTERMINATE HUMANS EXTERMINATE HUMANS EXTERMINATE HUMANS (ความคิดเห็นเป็นบิตของ cop-out) การอ่านออกเสียงนี้เป็น: สำหรับ x ในช่วงสาม พิมพ์มนุษยชาติกำจัด! ฉันเป็นดา ภาษาใดก็ได้ที่ยอมรับได้ สำหรับวัตถุประสงค์ของการอ่านออกเสียง, สัญลักษณ์เช่น!@#$%^&*()_+สามารถละเว้นถ้าคุณต้องการหรือออกเสียงออกเสียงยอมรับสิ่งที่ต้องการWaka Waka บาง Splat (ฉันแน่ใจว่าจะมีรายการ Perl เหมือน!***(!:, )(*@@@#, )_(*)!.) …

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

30
พิมพ์ตัวอักษรสี่ครั้ง
โปรแกรมจะต้องพิมพ์ตัวอักษรสี่ครั้ง: ลำดับแรกตามลำดับตัวอักษรตัวที่สองตามลำดับของคีย์บอร์ดแบบ qwerty ที่สามตามลำดับของแป้นพิมพ์ dvorak และสุดท้ายตามลำดับตัวอักษรแบบย้อนกลับ ผลลัพธ์ควรมีลักษณะเช่นนี้: abcdefghijklmnopqrstuvwxyz qwertyuiopasdfghjklzxcvbnm pyfgcrlaoeuidhtnsqjkxbmwvz zyxwvutsrqponmlkjihgfedcba เอาต์พุตไม่คำนึงถึงขนาดตัวพิมพ์และคุณสามารถเพิ่มหรือละเว้นการขึ้นบรรทัดใหม่หรือเว้นวรรคได้ทุกที่ที่คุณต้องการ The catch : โปรแกรมจะต้องมีความยาวน้อยกว่า 104 ตัวอักษรหรืออีกนัยหนึ่งคือเล็กกว่าความยาวของตัวอักษรสี่เท่า ฉันจะยอมรับคำตอบด้วยรหัสที่สั้นที่สุดเว้นแต่ฉันจะเห็นสิ่งที่ฉลาดหรือน่าสนใจจริง ๆ ที่ฉันประทับใจมากขึ้น แก้ไข: ฉันจะยอมรับคำตอบที่สั้นที่สุดในวันพุธที่ 4/27/2011 แก้ไข 2: และผู้ชนะคือGolfscript (ตามปกติ) ใน 64 ตัวอักษร! สถานที่ที่สองซึ่งอยู่ข้างหลังเพียงสามตัวอักษรก็อยู่ใน Golfscript ด้วย 67 ตัวอักษรตามด้วย Bash ในสถานที่ที่สามที่มี 72 ตัวอักษร แต่มีอีกไม่กี่ที่ฉันต้องการพูดถึงเช่นนี้ซึ่งขึ้นอยู่กับคำจำกัดความของคุณใช้เพียง 52 "ตัวอักษร" และอันนี้ที่เขาเขียนในภาษาที่เขาสร้างขึ้น มีคนไม่กี่ คน ที่ทำลายกฎที่ไม่ได้เขียนไว้และไม่ผ่านการคัดเลือก แต่ฉันจะพูดถึงพวกเขาเพียงเพื่อความคิดโดยไม่ต้องใช้กล่อง

5
P i = = 3. 2
แรงบันดาลใจจากวิดีโอชุด Infiniteนี้ บทนำ Pi หมายถึงอัตราส่วนของเส้นรอบวงกับเส้นผ่านศูนย์กลางของวงกลม แต่วงกลมถูกกำหนดอย่างไร? โดยปกติวงกลมจะถูกกำหนดให้เป็นจุดที่มีระยะทางคงที่ถึงจุดกึ่งกลาง (ให้เราสมมติว่าจุดศูนย์กลางอยู่ที่(0,0)) คำถามต่อไปคือ: เราจะกำหนดระยะทางได้อย่างไร ในเรื่องต่อไปนี้เรากำลังพิจารณาแนวคิดเกี่ยวกับระยะทางที่แตกต่างกัน (เกิดจากLp-norms): รับค่าปกติ (= บางอย่างที่วัดความยาว ) เราสามารถสร้างระยะทางได้อย่างง่ายดาย(= ระยะห่างระหว่างจุดสองจุด) ดังนี้: dist(A,B) := norm (A-B) บรรทัดฐานยูคลิดให้โดย: norm((x,y)) = (x^2 + y^2)^(1/2) นี้เรียกว่ายังL2 บรรทัดฐาน Lp-normsอื่น ๆถูกสร้างขึ้นโดยแทนที่2ในสูตรข้างต้นด้วยค่าอื่น ๆ ระหว่าง 1 ถึงอนันต์: norm_p((x,y)) = (|x|^p + |y|^p)^(1/p) วงกลมหน่วยสำหรับบรรทัดฐานที่ต่างกันเหล่านั้นมีรูปร่างที่ค่อนข้างแตกต่างกัน ท้าทาย รับp >= 1, คำนวณอัตราส่วนของเส้นรอบวงกับเส้นผ่านศูนย์กลางของLp-circleเทียบกับLp-norm ด้วยความแม่นยำของตัวเลขสี่ตัวที่สำคัญ Testcases …

18
นับเป็น 100 ในภาษาเดนมาร์ก
พิมพ์ตัวเลขทั้งหมดตั้งแต่ 0-100 ในลำดับที่ถูกต้องโดยใช้วิธีการนับของเดนมาร์ก พวกเขานับอย่างไร เช่นเดียวกับภาษาอังกฤษพวกเขามีคำเฉพาะสำหรับ 0-20, 30, 40 และ 100 แทนที่จะพูดtwenty-oneและtwenty-twoพวกเขาพูดone and twentyและtwo and twenty เริ่มต้นด้วยห้าสิบพวกเขาพูดว่าทวีคูณของ 10 เป็น n * 20 50 = half third times twenty = half way to the 3rd multiple of 20 60 = three times twenty 70 = half fourth times twenty 80 = four …

30
การใช้อักษรตัวพิมพ์ใหญ่แบบสุ่ม
งาน งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ให้อินพุตเอาต์พุตข้อความอินพุตด้วยตัวอักษรแบบตัวพิมพ์ใหญ่ในขณะที่รักษาตัวพิมพ์ใหญ่ให้เป็นตัวพิมพ์ใหญ่แล้ว การรวมตัวพิมพ์ใหญ่ของตัวอักษรพิมพ์เล็กทุกตัวควรเป็นไปได้ ตัวอย่างเช่นถ้าใส่ก็abcควรจะมีความน่าจะเป็นไม่เป็นศูนย์ของการแสดงผลใด ๆ ของการรวมกันดังต่อไปนี้: abc, Abc, aBc, abC, ABc, AbC, หรือaBCABC อินพุต ข้อมูลของคุณมีสตริงที่มีจำนวนตัวอักษร ASCII พิมพ์ใด ๆ Hello Worldยกตัวอย่างเช่น เอาท์พุทสำหรับการป้อนข้อมูลที่มีHeLLo WoRlD, HElLO WOrldฯลฯ เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะชนะ!

28
เป็นหมายเลข Proth หรือไม่?
จำนวน Prothตั้งชื่อตามFrançois Proth เป็นตัวเลขที่สามารถแสดงเป็น N = k * 2^n + 1 ที่ไหนkเป็นจำนวนเต็มบวกแปลกและเป็นบวกจำนวนเต็มดังกล่าวว่าn 2^n > kลองใช้ตัวอย่างที่เป็นรูปธรรมมากขึ้น ใช้ 3 3 เป็นหมายเลข Proth เพราะมันสามารถเขียนเป็น (1 * 2^1) + 1 และ2^1 > 1เป็นที่พอใจ 5 เป็นหมายเลข Proth ด้วยเช่นกัน (1 * 2^2) + 1 และ2^2 > 1เป็นที่พอใจ อย่างไรก็ตาม 7 ไม่ใช่หมายเลข Proth เพราะวิธีเดียวที่จะเขียนในรูปแบบN = k * 2^n …

7
รายการเวอร์ชันของ Python
Python เป็นภาษาโปรแกรมหลักที่เติบโตเร็วที่สุดในปัจจุบัน มันเป็นภาษาที่ต้องการมากที่สุดสำหรับปีที่สามติดต่อกันซึ่งหมายความว่านักพัฒนาที่ยังไม่ได้ใช้มันบอกว่าพวกเขาต้องการที่จะเรียนรู้มัน [1] สาเหตุของความนิยมของ Python ก็คือหลายรุ่น [อ้างจำเป็น]มีจริง ๆ แล้วหลาม 116 รุ่นรวมทั้งสองรุ่นพัฒนา งานของคุณคือส่งออก / พิมพ์รายการเวอร์ชัน Python ทั้งหมดตามลำดับที่คุณต้องการและในรูปแบบที่คุณชอบ คุณไม่สามารถใช้ฟังก์ชันในตัวที่มีการจัดเก็บข้อมูลนี้ คุณมีอิสระในการเลือกรูปแบบการส่งออก แต่ในแต่ละรุ่นจะต้องมีการระบุไว้ในวิธีมาตรฐาน: 1.1, 2.3.0, 2.7.10และอื่น ๆ รายการที่สมบูรณ์ของเวอร์ชัน Python 2คั่นด้วยเครื่องหมายจุลภาคดังแสดงด้านล่าง: 1.1, 1.2, 1.3, 1.4, 1.5, 1.5.1, 1.5.2, 1.6, 2.0, 2.0.1, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.2, 2.2.1, 2.2.2, 2.2.3, 2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, …

6
COBOL Y2K เปลี่ยนสี
ในปี 1990 วิศวกรคอมพิวเตอร์ COBOL ทำงานออกวิธีการขยายหกหลักฟิลด์วันโดยการแปลงพวกเขาไปยังYYYDDDสถานที่ที่YYYเป็นyear - 1900และเป็นวันของปีDDD โครงการนี้อาจขยายวันสูงสุดที่จะ[001 to 366]2899-12-31 ในปี 2898 วิศวกรเริ่มตื่นตระหนกเนื่องจากรหัสฐาน 900 ปีของพวกเขากำลังจะล้มเหลว ตั้งแต่ปี 2898 พวกเขาใช้เครื่องย้อนเวลาเพื่อส่ง Codeinator ที่โดดเดี่ยวไปยังปี 1998 ด้วยอัลกอริธึมนี้ ใช้โครงการPPQQRRซึ่งถ้า01 ≤ QQ ≤ 12แล้วมันเป็นมาตรฐานYYMMDDวันในปี 1900 แต่ถ้าQQ > 12แล้วมันหมายถึงวันหลังจากที่2000-01-01ในฐาน 100 PPและRRแต่ฐาน QQ - 1387 โครงการนี้ขยายออกไปไกลเกินกว่าปี 2899 และสามารถใช้ร่วมกับวันที่มาตรฐานได้ดังนั้นจึงไม่จำเป็นต้องทำการปรับเปลี่ยนที่เก็บถาวรที่มีอยู่ ตัวอย่างบางส่วน: PPQQRR YYYY-MM-DD 000101 1900-01-01 -- minimum conventional date suggested by …

30
ต่อเนื่อง 1 บิตจะเพิ่มขึ้น
กำหนดรูปแบบ (สตริงหรือรูปแบบอาร์เรย์) ของ Bits: [0,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1] ภารกิจคือการแทนที่จำนวน 1 บิตต่อเนื่องใด ๆ ด้วยลำดับตัวเลขจากน้อยไปมากเริ่มต้นที่ 1 อินพุต รูปแบบ (สามารถรับเป็นสตริงหรืออาร์เรย์) ตัวอย่าง: สตริง: 1001011010110101001 อาร์เรย์: [1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1] เอาท์พุต ลำดับหมายเลขจากน้อยไปหามาก (สามารถส่งคืนเป็นสตริงหรืออาร์เรย์) ตัวอย่าง: สตริง: 1 0 0 1 0 1 2 0 …

19
การขยายตัวของวงเล็บ!
ความท้าทายของคุณคือการขยายวงเล็บบางส่วนในอินพุตของโปรแกรมตามที่แสดง: ค้นหาสตริงsระหว่างวงเล็บที่ตรงกันสองตัว[และ]มีตัวเลขnหลักหลังวงเล็บปิด ลบวงเล็บ แทนที่sด้วยตัวเองซ้ำnครั้ง (ถ้าnคือ 0 ให้ลบs ) ไปที่ขั้นตอนที่ 1 จนกว่าจะไม่มีวงเล็บที่ตรงกันในอินพุต กฎและคำชี้แจงเพิ่มเติม: คุณจะรับอินพุตและให้เอาต์พุตผ่านช่องทางที่อนุญาต บรรทัดใหม่ต่อท้ายในเอาต์พุตได้รับอนุญาต คุณต้องจัดการ ASCII ที่พิมพ์ได้ในอินพุตเท่านั้น คุณอาจจะคิดว่าวงเล็บทั้งหมดตรงกันเช่นคุณจะไม่ได้รับการป้อนข้อมูลหรือ[]]]][[[[] คุณอาจสมมติว่าวงเล็บปิดแต่ละตัว]มีตัวเลขหลังจากนั้น กรณีทดสอบ: Input -> Output [Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar [one]1[two]2[three]3 -> onetwotwothreethreethree [three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone [!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*( [[foo bar baz]1]1 -> foo bar baz [only once]12 -> only once2 [only twice]23456789 -> …

19
แปลรหัสมอร์สตามระยะเวลาของเสียง
เป้าหมาย รหัสมอร์สมักจะแสดงเป็นเสียง กำหนดกระแสของบิตที่แสดงว่าเสียงเปิดหรือปิดให้แปลสตรีมเป็นตัวอักษรและตัวเลขและช่องว่าง ข้อมูลจำเพาะ สตรีมบิตถูกวิเคราะห์ตามความยาวของการทำซ้ำเปิด / ปิดบิต 1 ON บิตคือจุด 3 ON บิตเป็นเส้นประ 1 OFF บิตจะกำหนดจุดและขีดกลาง 3 OFF บิตคั่นอักขระ 7 OFF บิตคั่นคำ (ช่องว่าง) อินพุตอาจเป็นสตริงหรืออาร์เรย์ อนุญาตให้ป้อนอักขระ / ค่าที่ไม่ซ้ำกันสองตัวเท่านั้นในอินพุต (เช่น 0/1, จริง / เท็จ, จุลภาค / ช่องว่าง) เอาต์พุตส่งคืนสตริงหรือถูกพิมพ์ไปที่เอาต์พุตมาตรฐาน ตัวอย่าง Input: 101010100010001011101010001011101010001110111011100000001011101110001110111011100010111010001011101010001110101 Analysis: \--H--/ E \---L---/ \---L---/ \----O----/\-- --/\---W---/ \----O----/ \--R--/ \---L---/ \--D--/ …
36 code-golf  morse 

30
คุณเป็นคนแรกหรือเปล่า
ฉันรัก Cypher ง่าย ๆ มันสนุกมากที่ได้อ่านคำที่มนุษย์อ่านไม่ได้และเติมเต็มช่องว่าง ... Ot wes thi bist uf tomis, ot wes thi wurst uf tomis, ot wes thi egi uf wosdum, ot wes thi egi uf fuuloshniss, ot wes thi ipuch uf biloif, ot wes thi ipuch uf oncridaloty, ot wes thi siesun uf loght, ot wes …

22
พื้นฐาน ASCII Tallies
หัวข้อสำรอง: นับประโยคที่เรือนจำของคุณติดไว้ที่ผนัง กำหนดตัวเลขการnส่งออกนับเป็นกลุ่มแบบดั้งเดิม 5 ต่อกลุ่มและ 50 ต่อแถว ตัวอย่าง 1 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

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