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

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

7
ค้นหาอาชญากรจากหูนิ้วและหัวของเขา
ก่อนที่จะมีการค้นพบลายนิ้วมือและการทดสอบดีเอ็นเอตำรวจอังกฤษใช้ระบบการวัดสัดส่วนร่างกายเพื่อระบุผู้กระทำผิดซ้ำ บางส่วนของร่างกายของอาชญากรถูกวัดและเก็บไว้ในบันทึก - ส่วนต่าง ๆ ของร่างกายนี้จะไม่เปลี่ยนขนาดหลังจากผู้ใหญ่ ระบบนี้เป็นที่รู้จักกันbertillonnage แผนภาพด้านล่างแสดงระบบจัดเก็บข้อมูลที่ตำรวจใช้เพื่อเข้าถึงบันทึกเหล่านี้อย่างรวดเร็ว แผนภาพที่ 1: ระบบจัดเก็บข้อมูลที่มีหมายเลขกำกับ หมายเหตุ: หากคุณไม่สามารถเห็นภาพลองกระจก Imgur หรือรวบรวมมันด้วยตัวคุณเอง ตู้เก็บเอกสารประกอบด้วย 81 หมายเลขลิ้นชัก ลิ้นชักแต่ละใบบรรจุการ์ดและการ์ดแต่ละใบมีการวัดส่วนต่าง ๆ ของร่างกายอาชญากร: ความยาวของหัว ( H) ความกว้างของหัว ( B) ความกว้างของหูข้างขวา ( E) ความยาวของนิ้วชี้ของพวกเขา ( F) การวัดแต่ละประเภทจัดเป็นทั้งขนาดเล็กขนาดกลางหรือขนาดใหญ่ ยกตัวอย่างเช่นลิ้นชัก 56 มีบัตรที่มีลักษณะดังต่อไปนี้: H ขนาดเล็กขนาดใหญ่ B กลางอีและเอฟขนาดเล็กนี้สามารถ notated โดยใช้ตัวอักษรS, MและLในสถานที่ของขนาดเล็กขนาดกลางและขนาดใหญ่: SH,LB,ME,SF โปรดทราบว่าตัวอักษรขนาดไปก่อนแล้วสิ่งที่วัดคือ นอกจากนี้!อาจใส่เครื่องหมายอัศเจรีย์ไว้ด้านหน้าเพื่อทำให้เกิดค่าลบ: !SH,LB,!ME,SF สิ่งนี้บ่งชี้ว่าการ์ดที่มีคุณสมบัติดังต่อไปนี้: ไม่เล็ก …
17 code-golf  math 

4
เขียนโปรแกรมที่แทนที่ด้วยช่องว่างวงเล็บปีกกาในกรณีที่จัดฟันในสถานที่ทำให้ชะงักงัน
คุณเป็นผู้จัดการโครงการ วันหนึ่งหนึ่งของการเขียนโปรแกรมของคุณไปบ้า ( ไม่ใช่ความผิดของคุณ ) และเอาการแสดงออกทั้งหมดใน codebase และเพิ่มวงเล็บสุ่มกับพวกเขาก่อนที่จะเลิกสูบบุหรี่ในจุดที่คุยโวเกี่ยวกับการไร้ความสามารถของคุณ ( ยังไม่ใช่ความผิดของคุณ ) นี่จะเป็นการแก้ไขที่ง่ายอย่างไรก็ตามด้วยเหตุผลบางอย่างที่คุณไม่ได้ใช้การควบคุมการแก้ไข ( ไม่ใช่ความผิดทั้งหมดของคุณ ) และด้วยเหตุผลบางอย่างไม่มีโปรแกรมเมอร์คนอื่น ๆ ที่ต้องการผ่านทุกนิพจน์เพื่อแก้ไขวงเล็บที่ไม่ตรงกัน ( โดยวิธีการที่ไม่ใช่ความผิดของคุณ ) โปรแกรมเมอร์วันนี้คุณคิดกับตัวเอง คุณจะต้องทำเอง สยองขวัญ! งานดังกล่าวควรจะอยู่ภายใต้คุณ ... อินพุตจะเป็นบรรทัดเดียวซึ่งจะมีจำนวนวงเล็บซ้าย ( ( [ {) และวงเล็บปีกกาขวา ( ) ] }) นอกจากนี้ยังอาจมีความคิดเห็น ( /* */) และตัวอักษรสตริง ( " "หรือ' ') และตัวเลขตัวอักษรหรือสัญลักษณ์ต่างๆ จะมีตัวยึดอย่างน้อยหนึ่งตัว (นอกความคิดเห็นหรือตัวอักษรสตริง) ที่ไม่มีการกัดกร่อนที่ตรงกันข้าม (นอกความคิดเห็นหรือตัวอักษรสตริง) …

7
เอาท์พุทสองหลาย
ความท้าทาย ฉันขอเสนออีกสายลับเทียบกับสายลับที่ท้าทายการเจาะรู obfuscators เมื่อเทียบกับแคร็กเกอร์ ในกรณีนี้ แต่ตัวเลขที่จะป้องกันไม่ได้ใส่ แต่เอาท์พุท กฎของการท้าทายนั้นง่าย เขียนรูทีนด้วยข้อกำหนดต่อไปนี้: ชุดคำสั่งอาจเขียนเป็นภาษาใดก็ได้ แต่ต้องไม่เกิน 320 ไบต์ รูทีนต้องยอมรับจำนวนเต็ม 32- บิตที่ได้รับการรับรองทั้งสามเป็นอินพุต มันสามารถอยู่ในรูปแบบของฟังก์ชั่นที่ยอมรับ 3 ข้อโต้แย้งฟังก์ชั่นที่ยอมรับอาร์เรย์ 3 องค์ประกอบเดียวหรือโปรแกรมสมบูรณ์ที่อ่านจำนวนเต็ม 3 จำนวนจากอินพุตมาตรฐานใด ๆ รูทีนต้องเอาท์พุทจำนวนเต็ม 32- บิตที่เซ็นชื่อหนึ่งชุด โดยอินพุตที่เป็นไปได้ทั้งหมดรูทีนต้องส่งออกระหว่างค่าเฉพาะ 2 ถึง 1,000 (รวม) จำนวนของค่าที่ไม่ซ้ำกันการส่งออกสามารถประจำเรียกว่ามันสำคัญ ดังตัวอย่างโปรแกรม C int foo( int i1, int i2, int i3 ) { return 20 + (i1^i2^i3) %5; …

10
สัญลักษณ์กับตัวอักษร
สัญลักษณ์กับตัวอักษร อักขระ ASCIIได้ถูกแบ่งออกครั้งเดียวอีกครั้ง ! ชุดของคุณมีจดหมายและสัญลักษณ์ จดหมาย ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz สัญลักษณ์ !"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~ ภารกิจคือการเขียนโปรแกรมสองโปรแกรม: พิมพ์ตัวอักษรแต่ละตัวเพียงครั้งเดียวโดยไม่ต้องใช้ตัวอักษรใด ๆ ในโปรแกรมของคุณ พิมพ์The Symbolsแต่ละครั้งโดยไม่ต้องใช้สัญลักษณ์ใด ๆ ในโปรแกรมของคุณ กฎระเบียบ ช่องว่างอาจปรากฏในโปรแกรมหรือผลลัพธ์ของคุณ ไม่อนุญาตให้ใช้อักขระที่ไม่ใช่ ASCII เอาท์พุทไปที่ออกมาตรฐานหรือไฟล์เป็นเนื้อหาหรือชื่อของไฟล์ ไม่มีอินพุต เอาต์พุตต้องมีอักขระ ASCII จากชุดหนึ่งหรืออีกชุดเท่านั้น โปรแกรมสามารถเขียนในภาษาต่าง ๆ หรือภาษาเดียวกันโดยมีข้อยกเว้นหนึ่งข้อ: ภาษาช่องว่างอาจจะใช้เฉพาะสำหรับโปรแกรมใดโปรแกรมหนึ่ง ช่องโหว่มาตรฐานใช้ เกณฑ์การให้คะแนน # of characters in program 1 +# of characters in program 2 =Score คะแนนต่ำสุดชนะ! บันทึก: เพื่อสนับสนุนการส่งมากขึ้นคุณยังอาจโพสต์คำตอบด้วยวิธีแก้ปัญหาสำหรับหนึ่งในโปรแกรม คุณจะไม่สามารถชนะ แต่คุณจะยังสามารถอวดสิ่งที่ยอดเยี่ยม …

30
รหัสตัวต่อจิ๊กซอว์
นี่คือความท้าทายขึ้นอยู่กับคำตอบ! ลำดับของคำตอบมีความสำคัญและงานที่แน่นอนของคุณขึ้นอยู่กับคำตอบสุดท้ายที่โพสต์ คุณอาจต้องการที่จะเรียงลำดับคำตอบโดยที่เก่าแก่ที่สุด มารวมรหัสกัน! ต่อไปนี้คือ 1920 อักขระสุ่ม (ASCII ที่พิมพ์ได้) คิดว่าพวกเขาเป็นกองชิ้นส่วนจิ๊กซอว์จิ๊กซอว์ที่ยังไม่เรียงอยู่ในกล่อง: L-^=v^Ej2tW8OxNOIecSt4m}tji2O%YRJ;PJ!M|0*oO77$*Rs&2*<c"KI7e%FY^?I=];Y@`x)u)IBk%_a#<E6<yv5O*$kL): KNGq)2Wa%b)j."(6U|{[UY@`lrCSJ`u0RHX!1z7f,v}n=GvRgkrEZ=YT:4H44bz]iC<](:+FF?Ay'vX~h5QMF)0vaXk1sk@p Zj).{+l;PBKHABvEP%FnSw>u<_-4B^A>I8Kay&5]vXZJ{fCF]UVZ<!ZpOI$7\Y%`@:%H3wPsX-`/l]ZZ?Q/d`\M<T@'t]zip {[ovg:6EpCT&'+vU4Heb^;}0AV|?<}M0rAH/^DL"RkT~%$[VUlM]-&We4(P=66},hL~;a`:$'yty.W[g2OWcL~b:Ryj0*eN< ;&-n[F1F=oh0k[NI!xS"]pA@Y;K}'=ekG5yda8J$+`N;:FIx:l,f_LT@sV[]HF@2*vl?|q"GL1j&%e(CyYPqY%3W|@`z}]bp 4_'1Nx{"G2&j6$UWt_#%`sTt2xC}s1P8J<gV24_RWge/aMuyVOjz=zS!1i2s@`Q#@^~@W/k@.YLbKxS:g9?J^p;7ju?B\yC5 x,ZApKS5G4}kx_iM)f4/|su>=[{XSV#{,j5Qn3U.v5LF;HXs%DYm4'+efmU;\}f6j$SFCRC`Gsd37:'3$q=bs;lvsW0Yj^:- I[94@I|.IpR=}4KB4Z0G4>8PR29'L?n\gk,*4X[-%T`\FC)jj0jl_x<xL8E:G2-"3tT8&E}"sE+SH[7jR%@V)a{!m8K>.rAO 2[dq7GX9nrz8p4}^2mn@q|dF%<.Tl8)Dk?O.<UoE(a*k_=4+u!h$^bVd:$jS#EHFh@Z=y=ib^~/~lEJ^SQ3E_t#&^IOov7v8 ~j#I#OHgxg{DZDyCsq-(GVq}HbiG,JV?eJ~5wJ;bSt@;3LI!2(6gIT92>}`_dw;YF@ccTIEz\Gu@2(}J2I1"S{R(2niIYPp9 8A3iiP[*!SH2*SN8'`V?w4Ufx2H*Az%{}FlUdH31TJ5{:ge^N91^;9Gj`Uqf'$_|8P"kHR1w.(ASwmN)U-~q"[XcWbqPnns= d.ZoPJ}$Xc2lA>HN28`(d0y+UAr*sQ=?KE07=\FsVN(#?&hRabS%BVI#<`O$o#4x5ZFFLGDcA4t?&Eh~Z$oBWwNSNv`^;vO' 2&9egng~L#\QkfMG?S/n@%-VA[?f9K&3"V%P#Sv0!D<,GV:Z;3c&zFe^k&^0b7fAjvrbMc^Lq7k$h=YL<h7<0\NK>~Q=uUv) 4cI$.'b-RVS-=rom:=8QR=c>9am-^5F[XGv>E/>|]~\']3{r{kTc?ee1v=;I7]52#NE)~A;}!z>5?hi{5<9FtWH6{VO_Y-Jy Mw>{l8n#mD,kl'8cG^.7sy=QqU-3~SKGs5(.Ta]:-Vfr'NS$o*q:w6e$&7spk3{CFT'l_hGY0-0Xui*5i^0^fO@6?2IdCn_C lPKaJ6]0t!u>v8<d'Vby]8kEHh04p(YI)&7w82BrGB3PkI,s+%7ux5)gau`G!8F8hLa4[lfD55Xf3Hqy*-K,?;2'fxH3JWYE Z.[N`:[K:CY@TzKX4TMXsm{Xbd:B3)Gy[mlwnC$>)z`:k=C\0ho/v{57#+2,*%]>p~vI2^C:2DebJR>.ESw^wd2N<~]O9sOQ `_yvIw&Ryf%JgT@W(G1wfU3.4G3U}x1jKJzJY\S9n$2~P;F}*eT9UXcTNBTrTs>~0v_Oi.y8ofX6i5u$;'^"q][QhTb*gO[U n'R0"v1r+9fv;5G7Bg=D:c*a=1@[}7}dYOO{Mz2&@6`jnNq.QcBDM9Dd=R.*=MqZ93#'{AJJFqx<{qb':B!H8ig1L%T\Vuc" (h$i3`,scX'hqpbw"=nY`*Lu:h1wR{+-`\^3cQkIWfq)3?&p;~pvDW$o7\O|R6rB2{PX.s#G6A.s<OA_,TI_b*&lO@L3KrQv "พื้น" ที่เรากำลังสับสนอยู่ในตอนแรกเป็นเพียงช่องว่างขนาด 96x20 (จุดรหัส 0x20) แต่ละคำตอบอาจเคลื่อนที่ไปรอบ ๆ บล็อกที่อยู่ติดกันและเลือกจิ๊กซอว์สูงสุด 10 ตัว (ตัวอักษร) และเพิ่มลงในจิ๊กซอว์เพื่อสร้างโปรแกรมใหม่ โปรแกรมนั้นจะต้องพิมพ์จำนวนคำตอบของคุณ (เรียงตามลำดับหมายเลขโดยเริ่มจาก 1) ตอบ สิ่งสำคัญที่ต้องเข้าใจเกี่ยวกับความท้าทายนี้คือการที่บุคคลเพียงคนเดียวสามารถตอบในเวลาและแต่ละคำตอบขึ้นอยู่กับหนึ่งก่อนที่มันจะ มีไม่ควรจะมีสองคำตอบที่มีหมายเลขเดียวกันN หากมีคนสองคนตอบพร้อมกันสำหรับNบางคนผู้ตอบในภายหลัง (แม้ว่าจะมีความแตกต่างไม่กี่วินาที) …

10
เขียนคำแก้สมการ [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว : ใช้ประโยชน์จาก "ช่องว่างฟรี" (10 คำตอบ) ปิดให้บริการใน2 เดือนที่ผ่านมา บทนำ ลองพิจารณาตัวอย่างต่อไปนี้: CODE + GOLF —————— GREAT นี่คือสมการที่ตัวอักษรแต่ละตัวแทนตัวเลขทศนิยมและคำที่เป็นตัวแทนของตัวเลขธรรมชาติ (ตัวอักษรที่คล้ายกันแสดงถึงตัวเลขที่คล้ายกันและตัวอักษรที่แตกต่างกันแสดงตัวเลขที่แตกต่างกัน) ภารกิจคือจับคู่ตัวอักษรแต่ละตัวด้วยค่าตัวเลขเพื่อให้สมการนั้นถูกต้อง ทางออกหนึ่งสำหรับสมการข้างต้นคือ: 9265 + 1278 —————— 10543 งานของคุณ งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่สามารถแก้สมการดังที่เห็นด้านบน อินพุต อินพุตเป็นสตริงในรูปแบบต่อไปนี้: [A-Z]+\+[A-Z]+=[A-Z]+ ตัวอย่าง: CODE+GOLF=GREAT AA+BB=CC เว้นช่องว่างและจะใช้เฉพาะตัวอักษรระหว่างตัวอักษร A และ Z เท่านั้น (ไม่มีตัวอักษรพิเศษหรือตัวเล็ก) สตริงนี้สามารถอ่านได้จากอินพุตมาตรฐานจากไฟล์หรือเป็นพารามิเตอร์ฟังก์ชั่น เอาท์พุต คุณมีสองอ็อพชันต่อไปนี้สำหรับรูปแบบเอาต์พุต: สมการดั้งเดิมที่มีตัวเลขแทน รายการตัวอักษรและค่าของพวกเขา หากมีวิธีแก้ไขหลายวิธีควรส่งคืน (แต่มีเพียงหนึ่งรายการเท่านั้น) หากไม่มีวิธีแก้ปัญหาโปรแกรมควรส่งคืนสตริงว่างหรือโมฆะ เอาต์พุตสามารถส่งคืนเป็นสตริงสามารถเขียนไปยังเอาต์พุตมาตรฐานหรือไฟล์ ตัวอย่าง: 9265+1278=10543 A=1 …

13
สร้างคอมไพเลอร์ FizzBuzz
ยินดีต้อนรับสู่โลกของคอมไพเลอร์กอล์ฟ งานของคุณคือการเขียนโปรแกรมที่สร้างโปรแกรมอื่นเพื่อเล่นตัวแปรของ FizzBuzz บนสเปค คอมไพเลอร์ของคุณ เขียนคอมไพเลอร์ที่สร้างตัวแปรของโปรแกรม FizzBuzz ให้เป็นข้อมูลจำเพาะ ข้อมูลจำเพาะของชุดตัวเลือกนี้จะแสดงในรูปแบบของอาร์เรย์ของคู่จำนวนเต็ม / สตริง ข้อมูลที่ป้อนอาจอยู่ในรูปแบบใดก็ได้ที่สะดวกกับภาษาของคุณ (ตัวอย่างของฉันใช้ n: xxxx แต่นี่ใช้เพื่อเป็นตัวอย่างเท่านั้น) แต่ละอินพุตจำนวนเต็มสามารถใช้ได้หนึ่งครั้งต่อการเรียกใช้คอมไพเลอร์ของคุณ จำนวนเต็มของแต่ละคู่จะมีค่าอย่างน้อยหนึ่งคู่ สตริงของแต่ละคู่จะประกอบด้วยตัวอักษร ASCII เพียงสี่ตัวเท่านั้น ผลลัพธ์จะต้องเป็นโปรแกรมสมบูรณ์แบบเดียวที่เป็นไปตามกฎด้านล่าง ผลลัพธ์อาจอยู่ในรูปแบบที่สะดวกใด ๆ ตราบใดที่มันเป็นโปรแกรมต้นฉบับเดิม (ดังนั้นจึงไม่มีการแสดงออกแลมบ์ดาที่ส่งคืน) พฤติกรรมไม่ได้ถูกกำหนดไว้สำหรับอินพุตที่ไม่เป็นไปตามกฎข้างต้น โปรแกรม FizzBuzz ที่คุณสร้างขึ้น โปรแกรมที่สร้างขึ้นโดยคอมไพเลอร์ของคุณจะใช้เป็นจำนวนเต็มเดียวnเป็น input มันจะส่งออกลำดับของตัวเลขเริ่มต้นจากหนึ่งถึงและรวมถึงnแทนที่ตัวเลขด้วยสตริง FizzBuzz เมื่อจำเป็น โปรแกรมที่สร้างขึ้นต้องเป็นภาษาเดียวกันกับคอมไพเลอร์ อินพุตnอาจอยู่ในรูปแบบใดก็ได้ที่สะดวกกับภาษาของคุณ nจะมีค่าอย่างน้อยหนึ่งค่า จำนวนที่เป็นจำนวนเต็มอย่างน้อยหนึ่งในจำนวนเต็มเข้ากับคอมไพเลอร์จะต้องถูกแทนที่ด้วยสตริงทั้งหมดที่จับคู่กับจำนวนเต็มเหล่านั้นรวมเข้าด้วยกัน จำนวนที่จะไม่ถูกแทนที่ด้วยสตริง FizzBuzz จะต้องส่งออกใน ASCII ทศนิยม ตัวอย่างเช่น; > GenFizzBuzz 3:Fizz 5:Buzz > …

15
ค้นหาตัวเลขสูงสุด 3 หมายเลขโดยไม่ต้องแยกสาขา
คราวนี้เป้าหมายของคุณคือการหาจำนวนเต็ม 3 จำนวน (จาก - (2 ^ 31) ถึง 2 ^ 31 - 1 ในส่วนเสริมของไบนารี 2) โดยไม่ต้องใช้การแยกหรือลูป คุณได้รับอนุญาตให้ใช้เท่านั้น ความไม่เท่าเทียมกัน / ความเท่าเทียมกัน ( ==, >, >=, <, <=, !=) นับเหล่านี้เป็น2ราชสกุล เลขคณิต ( +, -, *, /) ผู้ประกอบการเชิงตรรกะ ( !ไม่ใช่, &&และ, || หรือ) Bitwise ผู้ประกอบการ ( ~ไม่&และ|หรือ^แฮคเกอร์, <<, >>, >>>คณิตศาสตร์และตรรกะซ้ายกะขวา) ค่าคงที่ 0 …

6
พนักงานขาย
คุณจะได้รับเป็นรายการหรือเวกเตอร์หรืออะไรก็ตามกลุ่มของ 3-tuples หรืออะไรก็ตามที่สองสิ่งแรกคือสตริงและสิ่งที่สามคือจำนวน สตริงคือเมืองและจำนวนคือระยะห่างระหว่างพวกเขา คำสั่งของเมืองในทูเปิลนั้นเป็นเรื่องที่ไม่มีกฎเกณฑ์ (เช่นไม่สำคัญว่าจะมาก่อนและมาเป็นอันดับที่สอง) เนื่องจากเป็นระยะทางเท่ากันในแต่ละวิธี นอกจากนี้ยังมีสิ่งอันดับหนึ่งสำหรับการอ้างอิงที่เชื่อมต่อแต่ละคู่ อาจไม่มีการเชื่อมต่อทุกเมือง นอกจากนี้ระยะทางยังเป็นบวกอยู่เสมอ (ไม่ใช่0) คุณไม่จำเป็นต้องตรวจสอบเงื่อนไขเหล่านี้คุณอาจสันนิษฐานว่าอินพุตจะมีรูปแบบที่ดี งานของคุณคือคืนเมืองในลำดับวนรอบเช่นถ้าคุณเริ่มที่เมืองใดเมืองหนึ่งและวนรอบกลับไปที่เมืองเดียวกันระยะทางระหว่างเมืองจะน้อยที่สุด (อย่างแน่นอนและทั้งหมด กรณี) คุณอาจคิดว่ามีวิธีแก้ปัญหาอยู่ ตัวอย่างเช่นให้เราบอกว่าคุณได้รับ [("New York", "Detroit", 2.2), ("New York", "Dillsburg", 3.7), ("Hong Kong", "Dillsburg", 4), ("Hong Kong", "Detroit", 4), ("Dillsburg", "Detroit", 9000.1), ("New York", "Hong Kong", 9000.01)] คุณสามารถส่งออกใด ๆ ต่อไปนี้ (แต่คุณจะต้องส่งออกอย่างใดอย่างหนึ่ง): ["Detroit","Hong Kong","Dillsburg","New York"] ["Hong Kong","Dillsburg","New …

10
เขียนล่ามสำหรับจัมเปอร์ภาษาลึกลับของฉัน
ฉันคิดจัมเปอร์ภาษาลึกลับขึ้นมา หลังจากนั้นคุณจะเห็นว่าทำไม มันทำงานกับหน่วยความจำเข้าถึงโดยสุ่มด้วยไบต์เป็นเซลล์ RAM มีการทำดัชนีเป็นศูนย์และเต็มไปด้วยเลขศูนย์ในตอนแรก เมื่อพยายามเข้าถึงเซลล์ที่มีข้อผิดพลาดดัชนีเชิงลบควรจะปรากฏขึ้นและโปรแกรมสิ้นสุดลง เมื่อพยายามอ่านดัชนีที่ใหญ่กว่าครั้งสุดท้ายควรส่งคืนค่าศูนย์ เมื่อพยายามเขียนที่ดัชนีที่ใหญ่กว่าครั้งสุดท้าย RAM ควรเพิ่มเป็น 1024 และเซลล์ใหม่ที่เต็มไปด้วยศูนย์ (ในทางเทคนิคคุณสามารถเพิ่ม RAM ได้ไม่เกิน 1024 จากเหตุผลก็คือการเพิ่มประสิทธิภาพดังนั้นถ้าคุณใช้อักขระจำนวนมาก สามารถทำได้ไม่เกิน 1024) โปรแกรมยังมีตัวชี้ไปยังเซลล์ใน RAM ซึ่งเริ่มแรกเป็นศูนย์ เมื่อโปรแกรมเริ่มดำเนินการพรอมต์สำหรับสตริงอินพุตควรแสดง (หรือรับอินพุตจากอาร์กิวเมนต์บรรทัดคำสั่งก็ขึ้นอยู่กับคุณ) สตริงอินพุตไม่ควรมีอักขระ null (ศูนย์ไบต์) จากนั้นสตริงป้อนเข้าจะถูกเขียนลงใน RAM โดยเริ่มที่ดัชนีศูนย์ เมื่อโปรแกรมสิ้นสุดการดำเนินการกล่องที่มีผลลัพธ์ของโปรแกรมจะปรากฏขึ้น - เนื้อหาของ RAM จากดัชนีศูนย์ถึงศูนย์ไบต์แรกยกเว้น ตอนนี้ส่วนที่น่าสนใจที่สุดคือไวยากรณ์ โปรแกรมประกอบด้วยคำสั่ง (ตัวดำเนินการ unary-prefixes) และอาร์กิวเมนต์ คำสั่งและอาร์กิวเมนต์อาจคั่นด้วยช่องว่างหรือบรรทัดใหม่ แต่ไม่จำเป็น อย่างไรก็ตามการเว้นวรรคภายในอาร์กิวเมนต์ไม่ถูกต้องตัวอย่างเช่น# 2 = 4ถูกต้อง แต่# 2 = 4 …

2
การบีบอัดแบบผูกขาด
รับสตริงที่แสดงถึงสถานะปัจจุบันของเกมMonopolyที่จุดเริ่มต้นของการเปิดของผู้เล่นบีบอัดข้อมูลที่จำเป็นทั้งหมดลงในเอาต์พุตที่เล็กที่สุด คำตอบจะถูกตัดสินโดยขนาดของการส่งออกและขนาดแหล่งที่มา หมายเหตุ: มีหลายรูปแบบในภูมิภาค แต่การอ้างอิงทั้งหมดในโพสต์นี้ไปยังชื่อทรัพย์สิน ฯลฯ อ้างอิงจากบอร์ดนี้ การป้อนข้อมูล: อินพุตจะถูกกำหนดเป็น;สตริงที่แยกเดี่ยว สตริงนี้มอบให้กับโปรแกรมในลักษณะใดก็ตามที่เป็นธรรมเนียมในภาษาที่คุณเลือกไม่ว่าจะเป็น stdin, อาร์กิวเมนต์ ฯลฯ อินพุตที่ยังไม่ฟอร์แมตจะมีลักษณะดังนี้: numPlayers (1 to 8) whose turn (0 to numPlayers-1) for each player: bankrupt? (true/false) money (0 to 2^16-1) get-out-of-jail-free cards (0 to 2) position (0 to 39) jail turns (-1 to 2) for 28 properties: owner …

4
จบวงเล็บที่ขี้เกียจ
วงเล็บบนคีย์บอร์ดของฉันหมดและฉันต้องการหลีกเลี่ยงการใช้มากที่สุด ความท้าทายของคุณคือการรักษาสมดุลของเส้นที่มีวงเล็บด้วยการเพิ่มลงในก่อนและหลังแต่ละบรรทัด สิ่งนี้คล้ายกับวงเล็บอัตโนมัติและการปิดสตริง (เช่นOutput(1, 1, "Hello, World!) ของ TI-Basic นอกจากนี้ยังช่วยประหยัดไบต์อันมีค่าจากโปรแกรม! อินพุตตัวอย่าง: This line has no parentheses alert(Math.max(1, 2 1+1)*2).toString() function() { alert('Hello, World!'); })( ตัวอย่างเอาต์พุต (เป็นไปได้): This line has no parentheses alert(Math.max(1, 2)) ((1+1)*2).toString() (function() { alert('Hello, World!'); })() รายละเอียด: สำหรับอินพุตแต่ละบรรทัด เพิ่มวงเล็บเปิดที่เปิดไว้จำนวนมากให้กับจุดเริ่มต้นและปิดวงเล็บไปยังจุดสิ้นสุดของบรรทัดตามต้องการเพื่อปรับสมดุลของวงเล็บในบรรทัด คำจำกัดความของ "สมดุล" คือ: จำนวนเท่ากัน(และ)ในบรรทัด สำหรับทุกสตริงย่อยที่เริ่มต้นจากจุดเริ่มต้นของสตริงสตริงย่อยนี้ต้องไม่มีวงเล็บปิดมากกว่าการเปิดวงเล็บ ตัวอย่างเช่น(foo))(barไม่สมดุลเนื่องจาก(foo))มีวงเล็บปิดมากกว่าการเปิดวงเล็บ คุณอาจเพิ่มวงเล็บที่ไม่จำเป็นเป็นพิเศษหากคุณต้องการหากมันทำให้รหัสของคุณสั้นลง คุณไม่จำเป็นต้องกังวลเกี่ยวกับตัวอักษรสตริงหรืออะไรอย่างนั้นสมมติว่าวงเล็บทั้งหมดต้องมีความสมดุล …

4
การล่าไข่อีสเตอร์บนเนินเขา
การล่าไข่อิสเตอร์ บอทหาไข่ก่อนที่กระต่ายจะเจอไข่ บอทมีความสุข ภาพรวม นี่เป็นความท้าทายที่ยอดเยี่ยมสำหรับเทศกาลอีสเตอร์และประเพณีการล่าไข่อีสเตอร์! บอทของคุณมีวิสัยทัศน์สองช่องว่างในทุกทิศทางรวมทั้งแนวทแยงมุมสร้างสี่เหลี่ยมขนาด 5x5 รอบ ๆ ตัวคุณที่คุณเห็น มันกำลังมองหาไข่และใครก็ตามที่พบว่าไข่ส่วนใหญ่ชนะ! คณะกรรมการ กระดานจะประกอบด้วยos ซึ่งคือไข่อีสเตอร์#s ซึ่งเป็นผนัง*s ซึ่งเป็นผู้เล่นคนอื่นและs ซึ่งเป็นพื้นที่ว่าง (number of entries) * 3มันจะเป็นตารางที่มีความยาวขอบ มันจะถูกล้อมรอบด้วยกำแพง ด้านในของผนังจะมีการจัดวางแบบสุ่มผนังแนวตรงของ#ซึ่งจะมีความยาวแบบสุ่มระหว่าง 2 ถึง 10 จะมี(number of entries) * 3ของพวกเขา ไข่จะถูกวางแบบสุ่ม จะมี(number of entries) * 4ของพวกเขาและพวกเขาจะถูกสร้างขึ้นในช่องว่าง ( ) ต้องมีอย่างน้อย 7 รายการสำหรับกระบวนการสร้างบอร์ดเพื่อให้ทำงานได้อย่างถูกต้อง นี่คือ JSFiddle ที่จะสร้างบอร์ดแบบสุ่มให้คุณทดสอบด้วย นี่คือตัวอย่างด้วย(number of entries) = …

7
ทำนายตำแหน่งที่ผู้ชายจะไป
คนที่อาศัยอยู่ในมุมทิศตะวันตกเฉียงเหนือ(0, 0)ของเมืองที่มีความสูงและความกว้างh wทุกวันเขาเดินจากบ้านไปชายแดน(?, w)หรือ(h, ?). ในตัวอย่างต่อไปนี้ชายผู้นี้ไปถึง(3, 3)วันนี้ (0, 0) +--+ + + . (0, 4) | + +--+--+ . | + + + + . | (3, 0) . . . . . (3, 4) ชายคนนั้นบันทึกแต่ละจุดเล็กน้อย ( +ในตัวอย่างด้านบน) ทุกครั้งที่เขาไปถึงจุดหนึ่งเขาจะไปทางทิศตะวันออกถ้าบิตอยู่1ทางทิศใต้ บิตพลิกหลังจากเขาออกไป ตัวอย่างเช่น: Day 1: 1--0 1 1 Day 2: 0 1 …

7
หากชุมชนจะได้เป็นคน
ดีชุมชนเป็นเพียงบอท แต่ถ้าเป็นคนล่ะ งานของคุณคือการค้นหาว่าชุมชนมีชื่อเสียงอย่างไรถ้าได้รับชื่อเสียงในการแก้ไข (2 * แก้ไข) สิ่งนี้ควรใช้กับไซต์ใดก็ได้ แต่เราจะพิจารณา PP&CG สำหรับคำถามนี้ ใช้ภาษาใดก็ได้แม้แต่ data.stackexchange ก็ใช้ได้ เนื่องจากเป็นรหัสกอล์ฟรหัสที่เล็กที่สุดชนะชื่อเสียงมากที่สุดเท่าที่ฉันได้รับ +15 (โดยความโปรดปรานฉันจะทิ้ง 101 ให้ตัวเอง: P) แก้ไข: พิจารณาการแก้ไขทุกประเภทที่เพิ่มชื่อเสียง
17 code-golf 

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