คำถามติดแท็ก kolmogorov-complexity

ความซับซ้อนของ Kolmogorov อย่างไม่เป็นทางการคือจำนวนของรหัสที่ใช้อธิบายหรือสร้างวัตถุคงที่เช่นสตริงหรือรูปภาพ เมื่อโพสต์ความท้าทายในหมวดหมู่นี้โปรดตรวจสอบให้แน่ใจว่ามันเพิ่มสิ่งใหม่ ๆ ให้กับความท้าทายที่มีอยู่

21
แหวนเดียวที่จะปกครองพวกเขาทั้งหมด หนึ่งสตริงที่จะรวมพวกเขาทั้งหมด
วัตถุประสงค์: ส่งออกสตริงซึ่งมีจำนวนเต็มบวกทุกค่าต่ำกว่า 1,000 อย่างเคร่งครัด คำตอบที่ชัดเจนคือการเชื่อมต่อทุก ๆ คำและสร้างสตริงของ 2890 ตัวอักษร (ขอบคุณ manatwork) เพื่อหลีกเลี่ยงคำตอบง่ายๆเช่นนี้ความยาวของสตริงต้องน้อยกว่า 1500 ตัวอักษร นี่คือโค้ด Java ที่ตรงไปตรงมาซึ่งแสดงผลเป็น 1,200 chars String import org.junit.Test; import java.util.ArrayList; import java.util.List; import java.util.TreeSet; import static org.junit.Assert.assertTrue; /** * Created with IntelliJ IDEA. * User: fab * Date: 05/11/13 * Time: 09:53 * To change this …

30
วาดสามเหลี่ยม Sierpinski
Sierpinsky Triangleเป็นเศษส่วนที่สร้างขึ้นโดยการใช้รูปสามเหลี่ยมลดความสูงและความกว้างลง 1/2 โดยสร้างสำเนาของสามเหลี่ยมที่เกิดขึ้น 3 สำเนาและวางให้แต่ละสามเหลี่ยมสัมผัสอีกสองที่มุมหนึ่ง กระบวนการนี้ซ้ำแล้วซ้ำอีกซ้ำอีกครั้งกับสามเหลี่ยมที่เกิดขึ้นเพื่อสร้างสามเหลี่ยม Sierpinski ดังแสดงด้านล่าง เขียนโปรแกรมเพื่อสร้างสามเหลี่ยม Sierpinski คุณสามารถใช้วิธีใดก็ได้ที่คุณต้องการสร้างรูปแบบไม่ว่าจะโดยการวาดสามเหลี่ยมจริงหรือโดยใช้อัลกอริทึมแบบสุ่มเพื่อสร้างภาพ คุณสามารถวาดเป็นพิกเซล, ASCII art หรืออะไรก็ได้ที่คุณต้องการตราบใดที่เอาต์พุตดูเหมือนกับภาพสุดท้ายที่แสดงด้านบน ตัวละครที่ชนะน้อยที่สุด

30
ฉันเป็นวิศวกรหรือไม่
เมื่อเร็ว ๆ นี้วิศวกรไฟฟ้ากำลังศึกษากำหนดเวลาสัญญาณไฟจราจรถูกปรับ $ 500 โดยรัฐโอเรกอนสำหรับการอ้างอิงถึงตัวเองในฐานะวิศวกร รับสายอักขระ 2 ตัวเป็นอินพุตซึ่งแทนสถานะของสหรัฐอเมริกาเอาต์พุต: I am not an engineerถ้ารัฐโอเรกอน ( OR) I am an engineer ถ้ารัฐเป็นรัฐอื่น ๆ ของสหรัฐอเมริกา What is an engineer? ได้รับการป้อนข้อมูลอื่น ๆ ผลลัพธ์อาจไม่มีช่องว่างนำหน้า แต่อาจมีช่องว่างต่อท้ายมากเท่าที่คุณต้องการ คุณสามารถสมมติว่าการป้อนข้อมูลจะเป็นตัวอักษรตัวพิมพ์ใหญ่ 2 ตัวเสมอ นี่คือรายการของตัวย่อทั้งหมด 50 รัฐของสหรัฐอเมริกา: AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, …

28
Surprise Party สำหรับ Brain-Flak
คำถามนี้เป็นส่วนหนึ่งของเกม Brain-flak Birthday ที่ออกแบบมาเพื่อฉลองวันเกิดแรกของ Brain-Flak คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับวันเกิด Brain-Flak ของที่นี่ วันนี้เป็นวันเกิดครั้งแรกของ Brain-Flak! ดังนั้นฉันคิดว่าเราจะโยนมันเป็นงานวันเกิดเซอร์ไพรส์ ดังนั้นในการพิมพ์ภาษาที่คุณชื่นชอบ Surprise! Happy Birthday, Brain-Flak! (อนุญาตให้ใช้ช่องว่างต่อท้ายได้) เช่นเคยโปรแกรมควรจะกอล์ฟ อย่างไรก็ตามเนื่องจากโปรแกรม Brain-Flak ทำจากวงเล็บเหลี่ยมมันจะไม่นับวงเล็บใด ๆ ในแหล่งที่มาของคุณกับคุณ (ตัวละคร()[]<>{}จะไม่นับรวมกับจำนวนไบต์ของคุณ) แต่จะต้องมีความสมดุลเนื่องจากไม่ทำให้ Brain-Flak อารมณ์เสีย กฎระเบียบ นี่คือรายละเอียดของกฎ วงเล็บเหลี่ยมในแหล่งที่มาของคุณต้องสมดุล นั่นคือวงเล็บของโปรแกรมของคุณจะต้องถูกขยายด้วยไวยากรณ์ต่อไปนี้: S -> SS | (S) | [S] | <S> | {S} | E ที่Eเป็นสตริงที่ว่างเปล่า กล่าวได้ว่าสตริงที่สมดุลนั้นเป็นการรวมกันของสตริงที่สมดุลสองสตริงวงเล็บรอบสตริงที่สมดุลหรือสตริงที่ว่างเปล่า คะแนนของโปรแกรมคือจำนวนไบต์ที่ไม่ใช่วงเล็บ เป้าหมายของคุณคือลดคะแนนในภาษาที่คุณเลือก ใช้กฎมาตรฐานเพื่อให้คุณสามารถเขียนโปรแกรมที่สมบูรณ์หรือฟังก์ชั่น ในกรณีที่มีการนับจำนวนไบต์ดิบทำหน้าที่เป็นตัวแบ่งผูก …

30
วาดกระดานหมากรุก ASCII!
นี่คือความท้าทายที่ง่ายสำหรับคุณ: คุณต้องสร้าง ASCII ที่เป็นตัวแทนของกระดานหมากรุก สีขาวแสดงด้วยอักขระตัวพิมพ์ใหญ่และสีดำแสดงด้วยตัวพิมพ์เล็ก .กระเบื้องที่ว่างเปล่าจะถูกแทนด้วย นี่คือคณะกรรมการเต็มรูปแบบ: rnbqkbnr pppppppp ........ ........ ........ ........ PPPPPPPP RNBQKBNR เนื่องจากนี่เป็นคำถามที่ซับซ้อน kolmogorovคุณอาจไม่ต้องป้อนข้อมูลใด ๆ และคุณต้องแสดงผลบอร์ดนี้ด้วยวิธีการเริ่มต้นเช่นบันทึกไฟล์พิมพ์ไปยัง STDOUT หรือกลับจากฟังก์ชัน คุณอาจเลือกที่จะสร้างขึ้นบรรทัดใหม่หนึ่งบรรทัด ช่องโหว่มาตรฐานใช้และโปรแกรมที่สั้นที่สุดเป็นไบต์! อย่างไรก็ตามโปรดจำไว้ว่านี่เป็นการแข่งขันที่เท่าเทียมกันระหว่างการส่งในภาษาเดียวกัน ในขณะที่ไม่น่าเป็นไปได้ที่ภาษาอย่าง Java สามารถเอาชนะภาษาอย่าง perl หรือภาษากอล์ฟเช่น pyth หรือ cjam การมีคำตอบ Java ที่สั้นที่สุดยังคงน่าประทับใจจริงๆ! เพื่อช่วยคุณติดตามคำตอบที่สั้นที่สุดในแต่ละภาษาคุณอาจใช้กระดานแต้มนำนี้ซึ่งจะแสดงการส่งสั้นที่สุดตามภาษาและโดยรวม ลีดเดอร์ เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้: # Language Name, N bytes ที่Nมีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น # Ruby, …

30
พิมพ์ตัวเลขตั้งแต่ 1 ถึง 10
นี่อาจเป็นความท้าทายที่ง่ายมาก แต่ฉันก็ประหลาดใจที่ยังไม่ได้ทำรหัสกอล์ฟ: พิมพ์จำนวนเต็มทั้งหมดตั้งแต่ 1 ถึง 10 รวมในลำดับจากน้อยไปหามากไปยังเอาต์พุตมาตรฐาน รูปแบบผลลัพธ์ของคุณอาจเป็นสิ่งที่ภาษาของคุณรองรับ ซึ่งรวมถึงตัวคั่นตามอำเภอใจ (เครื่องหมายจุลภาคอัฒภาคบรรทัดใหม่การรวมกันของเหล่านั้นเป็นต้น แต่ไม่มีตัวเลข) และคำนำหน้าและคำนำหน้า (เช่น[...]) อย่างไรก็ตามคุณไม่สามารถส่งออกตัวเลขอื่น ๆ ได้มากกว่า 1 ถึง 10 โปรแกรมของคุณอาจไม่ป้อนข้อมูลใด ๆ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ! ลีดเดอร์บอร์ด แสดงตัวอย่างโค้ด var QUESTION_ID=86075,OVERRIDE_USER=42570;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var …

30
StringgnirtSStringgnirtSStringgnirtS
นี่คือความท้าทายที่ค่อนข้างง่ายสำหรับคุณ กำหนดสตริงที่มีความยาวNส่งออกสตริงไปข้างหน้าจากนั้นย้อนกลับแล้วไปข้างหน้าจากนั้นย้อนกลับ ... เป็นต้นNครั้ง ตัวอย่างเช่นถ้าข้อมูลของคุณเป็น Hello! คุณควรส่งออก: Hello!!olleHHello!!olleHHello!!olleH คุณยังสามารถเลือกที่จะออกบรรทัดใหม่หนึ่งบรรทัด การส่งของคุณอาจเป็นได้ทั้งโปรแกรมเต็มหรือฟังก์ชั่นและคุณอาจต้องใช้เวลาเข้าและส่งออกในรูปแบบที่เหมาะสม ตัวอย่างเช่นคุณอาจใช้ IO จาก STDIN / STDOUT อาร์กิวเมนต์ของฟังก์ชันและค่าส่งคืนจากไฟล์ ฯลฯ คุณสามารถสันนิษฐานได้ว่าสตริงอินพุตจะไม่ว่างเปล่าและจะมี ASCII ที่พิมพ์ได้เท่านั้น คุณต้องส่งออกสตริงใหม่ในบรรทัดเดียว ตัวอย่างเช่นถ้าผลลัพธ์ไปยังตัวอย่างสุดท้ายคือ Hello! !olleH Hello! !olleH Hello! !olleH นี่จะไม่ใช่ทางออกที่ถูกต้อง! ต่อไปนี้เป็นกรณีทดสอบเพิ่มเติม: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

18
พิมพ์ชื่อตัวละคร
อักขระ Unicode ทุกตัวมีชื่อเช่น "LATIN CAPITAL LETTER A" ชื่ออักขระ Unicode อาจประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ช่องว่างสีขาวและเครื่องหมายลบเท่านั้น เขียนโปรแกรมที่อ่านข้อความและส่งชื่อของอักขระแต่ละตัวในบรรทัดใหม่ ตัวอย่างเช่นหากอินพุตเป็น "Hello, World!" เอาต์พุตจะเป็น LATIN CAPITAL LETTER H LATIN SMALL LETTER E LATIN SMALL LETTER L LATIN SMALL LETTER L LATIN SMALL LETTER O COMMA SPACE LATIN CAPITAL LETTER W LATIN SMALL LETTER O LATIN SMALL LETTER R LATIN …

30
พิมพ์คลื่นไซน์ (แนวตั้ง)
พิมพ์คลื่นไซน์แบบต่อเนื่องที่เลื่อนไปตามแนวตั้งบนเทอร์มินัล โปรแกรมไม่ควรยุติและควรเลื่อนคลื่นอย่างต่อเนื่อง (ยกเว้นจนกว่าจะถูกรบกวน) คุณอาจสันนิษฐานว่าการล้นเกินนั้นไม่ใช่ปัญหา (เช่นคุณอาจใช้ลูปไม่สิ้นสุดกับตัวนับที่เพิ่มขึ้นหรือการเรียกซ้ำแบบไม่สิ้นสุด) คลื่นควรตอบสนองคุณสมบัติดังต่อไปนี้: Amplitude = 20 chars (ความกว้างสูงสุด) จุด = 60 ถึง 65 บรรทัด (รวม) ผลลัพธ์ควรประกอบด้วยช่องว่าง, บรรทัดใหม่และ | หลังจากแต่ละบรรทัดของเอาต์พุตหยุดชั่วคราวเป็น 50ms ตัวอย่างผลลัพธ์: | | | | | | | | | | | | | | | | | | | | | | | | | | …

9
เขียนโปรแกรมที่สั้นที่สุดที่สร้างคำเตือนและข้อผิดพลาดคอมไพเลอร์มากที่สุด
ความท้าทาย: เขียนโปรแกรมสั้น ๆ ที่เมื่อรวบรวมแล้วจะสร้างคำเตือนและข้อผิดพลาดจำนวนมากที่สุด มันสามารถเขียนในภาษาการเขียนโปรแกรมใด ๆ เกณฑ์การให้คะแนน: คะแนนถูกกำหนดโดยสมการนี้: errors_and_warnings_length/code_length. คะแนนสูงสุดชนะ ตัวอย่าง: โปรแกรม C # classยาว 5 ตัวอักษรและสร้างคำเตือน 3 คำซึ่งเป็นคะแนน (1/5) * 3 = 0.6 แก้ไข: เนื่องจากความสับสนบางอย่างโปรแกรมจะต้องมีความยาวอย่างน้อย 1 ถ่าน มิฉะนั้นจะได้รับคะแนนอนันต์

17
หมายเลขแรกที่มีตัวอักษรแต่ละตัว
ให้ตัวอักษรเดียวจาก A ถึง Z (ยกเว้น J และ K) เป็นอินพุตเอาต์พุตจำนวนเต็มที่ไม่เป็นลบที่เล็กที่สุดที่มีตัวอักษรนั้นในรูปแบบที่เขียน สมมติว่าตัวเลขไม่เคยมีคำว่า "และ" ดังนั้น101ก็คือ "หนึ่งร้อยหนึ่ง" ไม่ใช่ "หนึ่งร้อยและหนึ่ง" สมมติอเมริกัน (สั้นขนาด) นับดังนั้นหนึ่งล้านบาทและเป็นหนึ่งในพันล้าน10^610^9 a 1000 one thousand b 1000000000 one billion c 1000000000000000000000000000 one octillion d 100 one hundred e 0 zero f 4 four g 8 eight h 3 three i 5 five j …

30
Goodness Giza Golf!
"หมายเลข Giza" หรือที่รู้จักกันเรียกขานว่าTimmy Numberคือหมายเลขใด ๆ ที่ตัวเลขแสดงถึงปิรามิด ( A134810 ) ตัวอย่างเช่น "12321" เป็นหมายเลข giza เพราะสามารถมองเห็นเป็นดังนี้: 3 2 2 1 1 อย่างไรก็ตามบางอย่างเช่น "123321" ไม่ใช่หมายเลขกิซ่าเพราะมีสองหลักที่ด้านบนของปิรามิด 33 2 2 1 1 กล่าวอีกนัยหนึ่งตัวเลขคือหมายเลข Giza หากตรงตามเงื่อนไขต่อไปนี้ทั้งหมด: มีเลขคี่เป็นเลขหลักสำคัญและเลขกลางนั้นใหญ่ที่สุด มันเป็น Palindromic (อ่านไปข้างหน้าหรือข้างหลังเดียวกัน) และ ในช่วงครึ่งแรกของตัวเลขจะเพิ่มขึ้นอย่างเข้มงวดโดยหนึ่ง (เนื่องจากต้องเป็น palindromic นี่หมายความว่าครึ่งหลังของตัวเลขจะต้องลดลงอย่างเข้มงวดโดยหนึ่ง) คุณต้องเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวกเป็นอินพุตและตรวจสอบว่าเป็นหมายเลข Giza หรือไม่ คุณอาจรับอินพุตเป็นสตริงหรือเป็นตัวเลขก็ได้ หากเป็นหมายเลข Giza ให้ส่งออกค่าจริง มิฉะนั้นค่าเท็จ มีหมายเลขกิซ่าทั้งหมด 45 หมายเลขดังนั้นหนึ่งในอินพุตเหล่านี้ควรส่งผลให้เกิดค่าจริง: …


22
พิมพ์ตารางธาตุ
ความท้าทายของคุณคือการพิมพ์ / ส่งออก / คืนข้อความนี้: _____ _____ | 1 | | 2 | | H | | He | |_____|_____ _____________________________|_____| | 3 | 4 | | 5 | 6 | 7 | 8 | 9 | 10 | | Li | Be | | B | C | N …

21
สุขสันต์วันเบคอน!
วันนี้เป็นวันเบคอนซึ่งอาจเป็นเหตุผลว่าทำไมชื่อหมวกที่เข้าร่วมในวันนี้คือ "Mmmm Bacon" อะไรจะดีไปกว่าการฉลองวันเบคอนด้วยเมทริกซ์ 2 มิติที่เต็มไปด้วยความสนุกทำจากเบคอน! แถบเบคอนขนาด 1 คูณ 1 แสดงโดย: ----- )===) (===( )===) ----- เป้าหมายของคุณที่นี่จะได้รับสองพิกัดใน tuple, ( x, y) โดยที่xและyเป็นจำนวนเต็มบวกที่ไม่ใช่ศูนย์คุณจะต้องสร้างเบคอนและส่งกลับในบางรูปแบบ (รายการอาร์เรย์สตริง) อินพุตและเอาต์พุต: Input: (2, 1) Output: ---------- )===))===) (===((===( )===))===) ---------- Input: (1, 2) Output: ----- )===) (===( )===) ----- )===) (===( )===) ----- Input: (2, 2) ---------- …

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