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

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

1
ถอดรหัสบล็อกของ AES
วันนี้เป้าหมายของคุณคือการถอดรหัสข้อความลับโดยใช้การเข้ารหัส AES ให้รหัสและคีย์คุณจะถอดรหัสและพิมพ์ข้อความ โปรแกรมของคุณอาจเป็นภาษาใดก็ได้ มันจะถูกรันด้วยอินพุตบน stdin และเอาต์พุตบน stdout จะถูกตรวจสอบความถูกต้อง บรรทัดแรกของอินพุตบน stdin จะเป็นรหัส 16 ไบต์เข้ารหัสเป็นเลขฐานสิบหก บรรทัดที่สองของอินพุตบน stdin จะเป็นรหัส 16 ไบต์เข้ารหัสในเลขฐานสิบหก เอาต์พุตของโปรแกรมต้องเป็นข้อความ 16 ไบต์หลังจากถอดรหัส ciphertext โดยใช้ AES-128 พร้อมคีย์ที่กำหนด คุณต้องแสดงผลลัพธ์ที่แปลเป็น octets ASCII คุณอาจสันนิษฐานว่าผลลัพธ์ใด ๆ คือ ASCII ที่ถูกต้องหลังจากถอดรหัส คุณไม่สามารถใช้คุณลักษณะไลบรารี่ / บิวด์อินที่ใช้ AES ได้ คุณสามารถใช้คุณสมบัติดังกล่าวเพื่อแปลงระหว่างการเข้ารหัสฐานสิบหก / ไบนารี / ASCII รหัสที่สั้นที่สุดเป็นไบต์ชนะ ตัวอย่างอินพุตและเอาต์พุต: bd8ab53f10b3d38576a1b9a15cf03834 02c0ee126cae50ba938a8b16f0e04d23 โจมตีพรุ่งนี้ เเละอีกอย่าง: …

5
เขียนเกมที่สั้นที่สุดของ Alak
Alak ถูกคิดค้นโดยนักคณิตศาสตร์ AK Dewdney และอธิบายไว้ในหนังสือ 1984 Planiverse ของเขา กฎของ Alak นั้นเรียบง่าย: Alak เป็นเกมที่ผู้เล่นสองคนเล่นบนกระดานหนึ่งมิติพร้อมช่องสิบเอ็ดช่อง แต่ละสล็อตสามารถถือได้ทีละชิ้นมากที่สุด มีสองชนิดคือ "x" และ "o" x เป็นของผู้เล่นหนึ่งคน การกำหนดค่าเริ่มต้นของบอร์ดคือ: xxxx___oooo ผู้เล่นผลัดกันขยับ ในแต่ละตาแหน่งผู้เล่นแต่ละคนสามารถเคลื่อนที่ได้เพียงชิ้นเดียวครั้งเดียว ผู้เล่นไม่สามารถผ่านขึ้นไปได้ ผู้เล่นสามารถย้ายชิ้นส่วนใดก็ได้ของเขาไปยังช่องว่างถัดไปทางซ้ายหรือขวาซึ่งอาจเกี่ยวข้องกับการกระโดดข้ามช่องว่าง ผู้เล่นไม่สามารถขยับชิ้นส่วนออกจากด้านข้างของกระดาน หากการเคลื่อนไหวสร้างรูปแบบที่ชิ้นส่วนของฝ่ายตรงข้ามล้อมรอบทั้งสองด้านโดยสีของผู้เสนอญัตติสองชิ้น (โดยไม่มีช่องว่างว่างที่ไม่ว่าง) จากนั้นชิ้นส่วนที่ล้อมรอบจะถูกลบออกจากกระดาน เป้าหมายของเกมคือการลบชิ้นส่วนของฝ่ายตรงข้ามทั้งหมดที่จุดสิ้นสุดเกม การเอาออกทั้งหมด - แต่ - หนึ่งจบเกมเช่นกันเนื่องจากคู่ต่อสู้ไม่สามารถล้อมคุณด้วยชิ้นเดียวและจะสูญเสียภายในไม่กี่เคลื่อนไหวเสมอ ฉันพบเกมนี้ออนไลน์และสงสัยว่า: มันสามารถเล่นกอล์ฟได้หรือไม่? กติกาการเล่นกอล์ฟ รหัสของคุณจะต้องเป็นไปตามกฎทั้งหมดในเกมการจับการเคลื่อนไหวที่เหมาะสมเป็นต้น (ยกเว้นเพียงคุณไม่ต้องเพิ่มบอท แต่คุณต้องมีผู้เล่นทั้งสองที่ควบคุมอย่างใดและผู้เล่นคนหนึ่งต้องเป็นมนุษย์) ข้อมูลจะต้องย้ายชิ้นส่วนที่ tile X ถึง tile Y หรือออก ตัวอย่างเช่นคุณสามารถใช้1 …

4
เคล็ดลับสำหรับการเล่นกอล์ฟใน OCaml
แรงบันดาลใจจากการแบ่งประเภทของ 'เคล็ดลับสำหรับการเล่นกอล์ฟในภาษา xyz' อื่น ๆ ตามปกติโปรดแนะนำเคล็ดลับเฉพาะสำหรับ OCaml และไม่ใช่การเขียนโปรแกรมทั่วไป กรุณาหนึ่งเคล็ดลับต่อคำตอบ
10 code-golf  tips 

6
สร้างแป้นพิมพ์ลัดสำหรับเมนู
ปุ่มลัดเมนู ตามเนื้อผ้าเมนูผู้ใช้สามารถเข้าถึงได้โดยใช้แป้นพิมพ์ลัดเช่นAlt + (a letter)หรือแม้แต่กดปุ่มตัวอักษรเมื่อกล่องข้อความทั้งหมดไม่มีการโฟกัส ( สไตล์gmail ) งานของคุณ เมื่อได้รับรายการเมนูเป็นอินพุตงานของคุณคืออนุญาตให้แต่ละรายการเมนูมีตัวอักษรลัดที่เหมาะสม เขียนฟังก์ชั่นหรือโปรแกรมที่รับชุดคำ - รายการเมนู (เป็นอาร์เรย์ของสตริงหรือเทียบเท่าภาษาของคุณ) และส่งคืนพจนานุกรมหรือ hashmap จากตัวอักษรตัวเดียวไปยังรายการเมนู คุณสามารถใช้พารามิเตอร์และส่งคืนค่าหรือใช้ STDIN และส่งออกผลลัพธ์ของคุณไปยัง STDOUT คุณไม่ได้รับอนุญาตให้สันนิษฐานว่าตัวแปรโกลบอล / ขอบเขตได้รับการป้อนข้อมูลเรียบร้อยแล้ว อัลกอริทึมเพื่อกำหนดตัวอักษรที่เหมาะสม โดยทั่วไปมันเป็นตัวอักษรตัวแรกของคำ ดูสมมติฐานและตัวอย่างด้านล่าง (a letter) + (a number)ในกรณีที่ตัวอักษรของรายการทั้งหมดจะไม่สามารถใช้ทางลัดจะ ตัวอักษรใดที่คุณเลือกจากรายการนั้นเป็นกฎเกณฑ์ ตัวเลขควรเริ่มต้นจาก 0 และเพิ่มขึ้นทีละ 1 - เช่นนั้นทางลัดทั้งหมดจะไม่ซ้ำกัน ดูตัวอย่างที่สามด้านล่าง สมมติฐาน การป้อนข้อมูลจะเป็นชุดคือไม่มีการซ้ำทุกรายการไม่ซ้ำกัน ความยาวของอินพุตอาจเป็นจำนวนเต็มใด ๆ ที่ไม่เป็นลบ (มากถึง MAX_INT ของภาษาของคุณ) การพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่: อินพุตเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ …
10 code-golf  string 

14
ตัวแก้ฟังก์ชันเชิงเส้นจากสองจุด (x, y)
งาน เขียนฟังก์ชัน L () ที่รับสอง Tuple อาร์กิวเมนต์ของพิกัดในรูปแบบ (x, y) และส่งกลับฟังก์ชันเชิงเส้นตามลำดับในรูปแบบ (a, c) โดยที่ a คือประสิทธิภาพร่วมของเทอม x และ c คือค่าตัดแกน y คุณสามารถสันนิษฐานได้ว่าอินพุตจะไม่เป็นเส้นตั้งฉากกับแกน x และอินพุตทั้งสองนั้นเป็นจุดแยกต่างหาก เกณฑ์การให้คะแนน นี่คือ Code Golf: โปรแกรมที่สั้นที่สุดชนะ โปรดทราบ: ไม่มีการใช้ฟังก์ชันทางคณิตศาสตร์ใด ๆ นอกเหนือจากตัวดำเนินการพื้นฐาน (+, -, /, *) ตัวอย่าง นี่คือทางออกที่ไม่ตีกอล์ฟของฉันใน Python def L(Point1, Point2): x = 0 y = 1 Gradient = …
10 code-golf 

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

5
โปรแกรมที่พิมพ์ภาพสะท้อนของตัวมันเอง
เขียนโปรแกรมที่สร้างภาพสะท้อนของตัวเอง ตัวอย่างเช่นจะเป็นรหัสอูฐที่ยอดเยี่ยมที่อ่านมันเป็นรหัสของตัวเองและผลิต 2x2 รุ่นเล็กกว่าสองตัว รับอินพุต: $_='ev al("seek\040D ATA,0, 0;");foreach(1..3) {<DATA>;}my @camel1hump;my$camel; my$Camel ;while( <DATA>){$_=sprintf("%-6 9s",$_);my@dromedary 1=split(//);if(defined($ _=<DATA>)){@camel1hum p=split(//);}while(@dromeda ry1){my$camel1hump=0 ;my$CAMEL=3;if(defined($_=shif t(@dromedary1 ))&&/\S/){$camel1hump+=1<<$CAMEL;} $CAMEL--;if(d efined($_=shift(@dromedary1))&&/\S/){ $camel1hump+=1 <<$CAMEL;}$CAMEL--;if(defined($_=shift( @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if( defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@ camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\ 064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse; print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y /LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/; $_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval; eval ("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;( );;s ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__ \124 \1 50\145\040\165\163\145\040\157\1 46\040\1 41\0 40\143\141 \155\145\1 54\040\1 51\155\ …

7
รหัสสี CSS แบบสุ่ม
บล็อกนี้โพสต์เกี่ยวกับการสร้างรหัสสี CSS แบบสุ่มใน JavaScript มีหลายวิธีในการสร้างสีแบบสุ่มใน JavaScript สั้นที่สุดที่ฉันสามารถหาคือ: '#'+(Math.random()*0xffffff).toString(16).slice(-6) หากคุณไม่คุ้นเคยกับเอกสารสีอ่านรหัส CSS ที่นี่ เราทำได้ดีกว่านี้ไหม แล้วภาษาอื่น ๆ ล่ะ?
10 code-golf  random  css 

16
รหัสที่สั้นที่สุดสำหรับเอาต์พุตที่ยาวที่สุด [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว อันนี้ค่อนข้างเรียบง่าย เขียนโปรแกรมที่สั้นที่สุดที่คุณสามารถทำได้ในขณะที่สร้างผลลัพธ์มากที่สุด เพื่อให้สนุกโปรแกรมที่สร้างเอาต์พุตไม่สิ้นสุดจะถูกตัดสิทธิ์ ผู้ชนะคือโปรแกรมที่มีขนาดเอาต์พุต / อัตราส่วนขนาดโค้ดใหญ่ที่สุด ผลลัพธ์ขึ้นอยู่กับสิ่งที่ใช้งานได้บนคอมพิวเตอร์ของฉันซึ่งเป็น Mac ที่ใช้ Mac OS X 10.7.5 พร้อมด้วยหน่วยความจำ Intel Core i5 และ 8GB
10 code-golf 

4
ลำดับ "การลืมเพื่อเข้าสู่โหมดแทรก" ที่เป็นอันตรายที่สุดในกลุ่ม
แกล้งทำเป็นว่าคุณมีไฟล์ข้อความโดยพลการ (ซึ่งคุณสามารถเลือกได้) ให้ลำดับของการกดแป้นที่เป็นอันตรายที่สุด (*) ถ้ามันตั้งใจจะแทรกลงในข้อความ แต่ถูกป้อนในโหมดปกติแทน (เช่นi/ aไม่ได้กด) คุณไม่สามารถเข้าสู่โหมดภาพและไม่ออกเป็นกลุ่ม การทำลายล้างถูกกำหนดดังนี้: อัตราส่วนของตัวละครที่ถูกเปลี่ยน / ลบโดยจำนวนการกดแป้นที่จำเป็น คุณจะได้รับคะแนนโบนัสหากการเปลี่ยนแปลงของคุณไม่สามารถยกเลิกได้ด้วยจำนวนที่uแน่นอน ตัวอย่าง: ไฟล์อินพุตที่ไม่มีตัวแบ่งบรรทัด ลำดับการป้อนข้อมูล: dfs.

7
Code-Golf: ลำดับ Farey (I)
ท้าทาย ในภารกิจนี้คุณจะได้รับจำนวนเต็ม N (น้อยกว่า 10 ^ 5) ออกลำดับ Fareyของคำสั่ง N อินพุต N ถูกกำหนดในบรรทัดเดียวอินพุตถูกยกเลิกโดย EOF อินพุต 4 3 1 2 เอาท์พุต F4 = {0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1} F3 = {0/1, 1/3, 1/2, 2/3, 1/1} F1 = {0/1, 1/1} F2 = {0/1, 1/2, 1/1} ข้อ จำกัด จำนวนอินพุตไม่เกิน 10 ^ …
10 code-golf  math  code-golf  math  code-golf  number  number-theory  code-golf  math  arithmetic  repeated-transformation  code-golf  geometry  popularity-contest  code-golf  code-golf  tips  haskell  math  fastest-algorithm  code-golf  combinatorics  code-golf  math  polynomials  rational-numbers  code-golf  code-golf  popularity-contest  javascript  code-golf  kolmogorov-complexity  code-golf  code-golf  math  combinatorics  permutations  code-challenge  restricted-source  random  array-manipulation  code-challenge  generation  code-golf  code-golf  ascii-art  arithmetic  division  code-challenge  number  code-golf  math  number  binary  code-golf  ascii-art  code-golf  interpreter  stack  code-golf  internet  networking  code-golf  math  code-golf  ascii-art  code-golf  math  sequence  code-golf  hello-world  restricted-source  code-golf  ascii-art  code-golf  geometry  code-golf  kolmogorov-complexity  pi  code-golf  math  combinatorics  permutations  code-golf  math  code-challenge  ascii-art  code-golf  string  code-golf  quine  code-golf  math  floating-point  golfscript  code-golf  string  code-golf  sliding-puzzle  code-challenge  arithmetic  code-golf  math  code-golf  geometry  optimized-output 

6
วันที่ในเวลา Usenet คืออะไร?
กันยายน 1993 เป็นที่รู้จักใน Usenet ในเดือนกันยายนที่ไม่สิ้นสุด ตัวอย่างเช่นวันที่มีการโพสต์คำถามนี้คือวันเสาร์, กันยายน 8740, 1993 โปรแกรมหรือฟังก์ชั่นของคุณควรใช้วันที่แบบคริสต์ศักราช (พร้อมปีบวก) เป็นอินพุตและส่งคืนวันที่เดียวกับผลลัพธ์ถ้าเป็นก่อนกันยายน 1993 หรือวันที่ในปฏิทินกันยายน 1993 หากหลังจากนั้น คุณอาจยอมรับ YYYY-MM-DD, YYYY / MM / DD, MM / DD / YYYY, DD / MM / YYYY, D-Monthnameabbr-YYYY หรือรูปแบบที่นิยมอื่น ๆ ที่ใช้ครบทั้งปี (ตรงข้ามกับ ปีแบบโมดูโล 100) คุณต้องยอมรับรูปแบบที่คุณเลือกเท่านั้น รูปแบบผลลัพธ์ต้องตรงกับรูปแบบอินพุต อินพุตตัวอย่าง→เอาท์พุท: วันอาทิตย์ที่ 6 สิงหาคม 2560 →วันอาทิตย์ที่ 8741 กันยายน …
9 code-golf  date 

3
Fizz Buzz Lightyear
จากความท้าทายที่เกี่ยวข้องกับ FizzBuzz จำนวนมาก (สองรายการ) ที่โพสต์เมื่อเร็ว ๆ นี้ทาง PPCG ฉันถูกล่อลวงให้คิดหาตัวเอง ดูเถิด ... Fizz Buzz Lightyear เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เป็นจำนวนเต็มnและพิมพ์ออกมาFizzBuzzสำหรับหารจำนวนใด ๆ โดย 15 Fizzสำหรับหารจำนวนใด ๆ โดย 3 และBuzzสำหรับหารจำนวนใด ๆ โดย 5 ขึ้นไป n(และรวม) เอาต์พุตสำหรับทุกคนiจะต้องตามด้วยการขึ้นบรรทัดใหม่ แต่มีการบิด! ทุกครั้งที่คุณพิมพ์งานBuzzBuzz Lightyear ในท้ายที่สุดจะได้รับสายเรียกเข้าและข้อผิดพลาดในโปรแกรมของคุณ จากนั้นเขาก็แนะนำตัวเอง - แต่เนื่องจากเขาชนพื้นดินสิ่งที่เขาพูดบางอย่างปะปนกับเอาท์พุทของโปรแกรมของคุณ: Buzz Lightyear, Space Ranger, Universe Protection Unit. FizzBuzz Lightyear, Space Ranger, Universe Protection Unit. …
9 code-golf 

3
ลำดับพจนานุกรมภาษาเกาหลีเหนือ
วัตถุประสงค์ ระบุสตริงของพยางค์อังกูลเรียงลำดับตัวอักษรตามลำดับพจนานุกรมของเกาหลีเหนือ พยางค์อังกูลเบื้องต้น อังกูล (한글) เป็นระบบการเขียนภาษาเกาหลีที่คิดค้นโดย Sejong the Great พยางค์ฮันกึลได้รับการจัดสรรในจุด Unicode U + AC00 - U + D7A3 พยางค์อังกูลประกอบด้วยพยัญชนะเริ่มต้นสระและพยัญชนะตัวสุดท้าย พยัญชนะเริ่มต้นคือ: ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ เสียงสระคือ: ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ …

5
Blobs หิว KoTH
การประกวดเสร็จสิ้น! อ่านความคิดเห็นเกี่ยวกับ blobs เพื่อดูคะแนนของพวกเขา KOTH นี้เป็นแรงบันดาลใจอย่างอิสระโดยรองพื้นของคัดเลือกโดยธรรมชาติจำลอง บอทของคุณคือหยด เพื่อความอยู่รอดคุณต้องกินเม็ดเพื่อฟื้นพลังงานซึ่งใช้ในการย้าย ด้วยพลังงานพิเศษหยดสามารถแบ่งออกเป็นสอง พลังงานและการเคลื่อนไหว หยดของคุณเริ่มต้นแต่ละรอบด้วยพลังงาน 100 ครั้งและไม่มีขีด จำกัด ปริมาณพลังงานที่สามารถรวบรวมได้ แต่ละรอบวิ่งเป็นรอบโดยแต่ละหยดมีตัวเลือกให้เคลื่อนที่ทิศเหนือทิศตะวันออกทิศใต้หรือทิศตะวันตกในรอบที่กำหนดหรือหยุดนิ่ง การเคลื่อนย้ายใช้พลังงาน 1 พลังงานและพลังงานนิ่งอยู่ที่ 0.25 ความยาวด้านของแผนที่คือceil(0.25 * blobCount) * 2 - 1หน่วยอย่างน้อย 9 หน่วย Blobs ทั้งหมดเริ่มต้นที่ขอบของแผนที่โดยมีหนึ่งวางในแต่ละมุมและทุกหยดถัดไปจะถูกวางไว้ 2 หน่วยจากคนอื่น ๆ ทุกๆ 30 รอบคลื่นของเม็ดจะถูกวางในจุดสุ่มรอบแผนที่อย่างน้อย 1 หน่วยจากขอบใด ๆ แต่ละครั้งที่คลื่นของเม็ดปรากฏขึ้นปริมาณของเม็ด (แต่เดิมจำนวนสองเท่าของ blobs หรือความกว้างของแผนที่แล้วแต่จำนวนใดจะใหญ่กว่า) ในคลื่นถัดไปจะลดลง 1 โดยบังคับให้จำนวน blobs ลดลงเมื่อเวลาผ่านไป เม็ดแต่ละคืนพลังงานระหว่าง …

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