คำถามติดแท็ก math

ความท้าทายเกี่ยวข้องกับคณิตศาสตร์ ลองพิจารณาใช้แท็กเฉพาะเจาะจงมากขึ้น: [number] [number-theory] [arithmetic] [combinatorics] [graph-theory] [เรขาคณิต] [abstract-algebra]

9
อัลกอริทึมการเรียงลำดับ
มี "อัลกอริทึมการเรียงลำดับ" บางครั้งเรียกว่าการเรียงลำดับสตาลินเพื่อเรียงลำดับรายการคุณเพียงแค่ลบองค์ประกอบออกจากรายการจนกว่าจะเรียงลำดับตามลำดับที่เพิ่มขึ้น ตัวอย่างเช่นรายการ [1, 2, 4, 5, 3, 6, 6] เมื่อ "เรียง" โดยใช้การเรียงลำดับสตาลินจะกลายเป็น [1, 2, 4, 5, 6, 6] ทั้งสามถูกลบเพราะมันไม่เป็นระเบียบ ตอนนี้เห็นได้ชัดว่ามีหลายวิธีในการลบองค์ประกอบเพื่อจัดเรียงรายการ ตัวอย่างเช่นรายการใด ๆ ที่มีองค์ประกอบน้อยกว่าสองรายการจะต้องเรียงลำดับดังนั้นเพียงแค่ลบองค์ประกอบมากพอที่สุ่มสี่สุ่มห้าเราสามารถเรียงลำดับรายการได้เสมอ เนื่องจากเป็นกรณีนี้เราจึงสนใจเฉพาะผลลัพธ์ที่ยาวที่สุดเท่าที่เป็นไปได้จากการเรียงลำดับของสตาลิน งานของคุณจะใช้รายการของจำนวนเต็มบวกและส่งออกความยาวของรายการเรียงลำดับ (เพิ่มขึ้น) ที่ยาวที่สุดที่สามารถมาถึงได้โดยการเอาองค์ประกอบออกจากรายการต้นฉบับ นั่นคือความยาวของรายการย่อยที่เรียงลำดับยาวที่สุด (อาจไม่ต่อเนื่องกัน) รายการที่เรียงลำดับสามารถมีองค์ประกอบเดียวกันมากกว่าหนึ่งครั้งในแถว คุณไม่จำเป็นต้องสนับสนุนรายการว่างเปล่าเว้นแต่ว่าโปรแกรมของคุณจะว่างเปล่า เกณฑ์การให้คะแนน คำตอบของคุณจะได้รับคะแนนตามความยาวของการเรียงลำดับสตาลินที่ยาวที่สุดเท่าที่จะเป็นไปได้ โปรแกรมจะถูกตีความเป็นลำดับของไบต์แทนที่จะเป็นตัวอักษรและลำดับของโปรแกรมจะเป็นแบบธรรมชาติที่เกิดขึ้นโดยการตีความจำนวนไบต์เป็นตัวเลข คะแนนต่ำกว่าดีกว่า นี่ไม่ใช่รหัสกอล์ฟ ต่อไปนี้เป็นเครื่องมือที่ไม่ซับซ้อนเพื่อช่วยให้คุณได้คะแนนคำตอบของคุณ กรณีทดสอบ [1, 2, 4, 5, 3, 6, 6] -> 6 [19, …

30
มีความยุติธรรมที่สุด
บทนำ ในการท้าทายนี้คุณควรแบ่งจำนวนเต็มเป็นสองส่วน เนื่องจากไม่มีใครชอบที่จะได้ชิ้นเค้กเล็ก ๆ เป้าหมายของคุณคือยุติธรรมเท่าที่จะทำได้ ตัวอย่างเช่นถ้าคุณต้องการที่จะแยกจำนวนเต็ม7129เป็นสองส่วนมีวิธีที่เป็นไปได้ 3 วิธี 7,129, 71,29และ712,9ความเป็นไปได้ทั้งหมด แต่71,29เป็นวิธีที่สังขารของการแยกออกเป็นสองชิ้นเพราะมันช่วยลดความแตกต่างระหว่างสอง: 7 129 -> |7-129| = 122 71 29 -> |71-29| = 42 712 9 -> |712-9| = 703 ท้าทาย กำหนดจำนวนเต็มกำหนดวิธีที่ดีที่สุดที่เป็นไปได้ของการแบ่งตามที่อธิบายไว้ข้างต้นและรายงานผลต่าง กฎระเบียบ การแยกจะทำให้รู้สึกถึงความยาวของเลขจำนวนเต็มอย่างน้อยสองค่าอินพุตจะเป็น≥ 10 เสมอ ข้อมูลที่ป้อนสามารถเป็นได้ทั้งจำนวนเต็มรายการตัวเลขหรือสตริง คุณไม่ต้องจัดการกับอินพุตที่ไม่ถูกต้อง Testcases คุณจะต้องรายงานความแตกต่างที่เกิดขึ้นเท่านั้นการแบ่งพาร์ติชันเป็นเพียงภาพประกอบเท่านั้น: 10 -> 1,0 -> 1 11 -> 1,1 -> 0 12 …

30
หมายเลขนี้เป็น repdigit หรือไม่
ท้าทาย repdigitเป็นจำนวนเต็มไม่ใช่เชิงลบที่มีตัวเลขเท่ากันทั้งหมด สร้างฟังก์ชั่นหรือโปรแกรมที่สมบูรณ์ที่ใช้จำนวนเต็มเดียวเป็นอินพุทและเอาท์พุทค่าความจริงถ้าหมายเลขอินพุทเป็น repdigit ในฐาน 10 และค่าเท็จ อินพุตรับประกันว่าจะเป็นจำนวนเต็มบวก คุณอาจใช้และใช้อินพุตเป็นตัวแทนสตริงในฐาน 10 ด้วยการยกเว้นโทษ กรณีทดสอบ เหล่านี้คือ repdigits ต่ำกว่า 1,000 ทั้งหมด 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999 รายการที่มีขนาดใหญ่สามารถพบได้ใน OEIS การชนะ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ไม่ได้หมายความว่าคำตอบที่ฉลาดในภาษา verbose …

24
แฟ็กทอเรียลและไม่สิ้นสุด!
ขณะที่คุณอาจจะรู้ว่าปัจจัยของจำนวนเต็มบวกเป็นผลิตภัณฑ์ของทุกจำนวนเต็มบวกซึ่งมีค่าเท่ากันหรือเล็กลงไปnn ตัวอย่างเช่น 6! = 6*5*4*3*2*1 = 720 0! = 1 ตอนนี้เราจะกำหนดการปฏิบัติการพิเศษด้วยชื่อที่ไม่เกี่ยวข้องเช่นsumFac: ป.ร. ให้ไว้เป็นจำนวนเต็มบวกn, sumFac(n)คือผลรวมของ factorials ของตัวเลขที่ ตัวอย่างเช่น sumFac(132) = 1! + 3! + 2! = 9 งาน ภารกิจของคุณไม่ว่าคุณจะเลือกที่จะยอมรับหรือไม่ก็คือการส่งคืนลำดับ (อาจไม่มีที่สิ้นสุด) ของแอปพลิเคชั่นของsumFacจำนวนเต็มที่ระบุในอินพุต ตัวอย่าง: 132 -> 132, 9, 362880, 81369, 403927, ... แต่นั่นไม่ใช่ทั้งหมด! แท้จริงแล้วการใช้งานของsumFacในที่สุดจะสร้างรอบ คุณต้องส่งคืนวงจรนี้ด้วย! หากภาษาของคุณมีแฟกทอเรียลคุณสามารถใช้มันได้ ฉันไม่จู้จี้จุกจิกเกี่ยวกับประเภทการคืนคุณเพียงแค่ส่งคืนลำดับของแอปพลิเคชัน sumFac และวัฏจักรในรูปแบบที่มนุษย์เข้าใจได้ แก้ไข: เพื่อช่วยให้คุณมองเห็นภาพได้ดีขึ้นว่าผลลัพธ์ควรมีลักษณะอย่างไรฉันคัดลอก Leaky Nun …

30
ลองลดความน่าเบื่อ
... แต่เดี๋ยวก่อนไม่จำเป็นต้องเข้มงวด รับอาร์เรย์ที่ไม่ว่างเปล่าของจำนวนเต็มบวกอย่างเคร่งครัดตรวจสอบว่าเป็น: Monotone อย่างเคร่งครัดลดลง ซึ่งหมายความว่าแต่ละรายการจะน้อยกว่ารายการก่อนหน้าอย่างเคร่งครัด Monotone ที่ไม่เพิ่มขึ้น แต่ไม่ได้ลดลงอย่างเคร่งครัด ซึ่งหมายความว่าแต่ละรายการมีค่าน้อยกว่าหรือเท่ากับก่อนหน้านี้และอาร์เรย์ไม่ได้อยู่ในหมวดหมู่ข้างต้น ไม่มีการข้างต้น หมายเหตุกรณีมุมต่อไปนี้: อาเรย์ที่มีหมายเลขเดียวคือโมโนโทนลดลงอย่างเคร่งครัด อาเรย์ที่มีหมายเลขเดิมซ้ำกันนั้นไม่ได้เพิ่มขึ้นอย่างเดียว แต่ไม่ลดลงอย่างเคร่งครัด กฎระเบียบ คุณอาจให้โปรแกรมหรือฟังก์ชั่น สามารถป้อนข้อมูลในรูปแบบที่เหมาะสมใด ๆ : อาร์เรย์รายการสตริงที่มีตัวเลขคั่นด้วยช่องว่าง ... คุณสามารถเลือกผลลัพธ์ที่สอดคล้องกันสามรายการสำหรับสามหมวดหมู่ตามลำดับ ยกตัวอย่างเช่นเอาท์พุทสามารถเป็นตัวเลข0, 1, 2; หรือสตริง1 1, 1 0สตริงว่าง รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ เสียงโมโนโทนลดลงอย่างเคร่งครัด: 7 5 4 3 1 42 41 5 โมโนโทนไม่เพิ่มขึ้น แต่ไม่ลดลงอย่างเคร่งครัด: 27 19 19 10 3 6 4 …

18
ค้นหาทศนิยมตำแหน่งที่ n ของ pi
มี30 ความท้าทายที่ทุ่มเทให้กับ piแต่ไม่มีใครขอให้คุณค้นหาทศนิยมที่ n ดังนั้น ... ท้าทาย สำหรับจำนวนเต็มใด ๆ ในช่วงของการ0 <= n <= 10000แสดงทศนิยมทศนิยมอันดับที่ n ของ pi กฎระเบียบ ทศนิยมเป็นตัวเลขทุกหลัง 3. โปรแกรมของคุณอาจเป็นฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ คุณต้องแสดงผลลัพธ์ในฐาน 10 คุณอาจได้รับnจากวิธีการอินพุตที่เหมาะสม (stdin, input (), พารามิเตอร์ฟังก์ชัน, ... ) แต่ไม่ฮาร์ดโค้ด คุณสามารถใช้การจัดทำดัชนีแบบ 1ถ้าเป็นของภาษาที่คุณเลือก คุณไม่ได้มีการจัดการกับข้อมูลที่ไม่ถูกต้อง ( n == -1, n == 'a'หรือn == 1.5) อนุญาตให้สร้างบิวด์อินได้ถ้าพวกมันรองรับทศนิยมอย่างน้อย 10k รันไทม์ไม่สำคัญเนื่องจากเป็นรหัสที่สั้นที่สุดและไม่ใช่รหัสที่เร็วที่สุด นี่คือcode-golfรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ f(0) == …
33 code-golf  math  pi 

24
Loeschian หมายเลขนี้หรือไม่
จำนวนเต็มบวกkคือจำนวน Loeschianถ้า kสามารถแสดงเป็นi*i + j*j + i*jสำหรับi, jจำนวนเต็ม ตัวอย่างเช่นหมายเลข Loeschian บวกแรกคือ: 1( i=1, j=0); 3( i=j=1); 4( i=2, j=0); 7( i=2, j=1); 9( i=-3, j=3); ... โปรดทราบว่าi, jหารับkไม่ได้ที่ไม่ซ้ำกัน ตัวอย่างเช่น9สามารถสร้างด้วยi=3, j=0. ลักษณะอื่น ๆ ที่เทียบเท่าของตัวเลขเหล่านี้คือ: kสามารถแสดงเป็นi*i + j*j + i*jสำหรับi, jintegers เชิงลบ (สำหรับคู่ของจำนวนเต็มแต่ละi, jมีคู่ของ integers เชิงลบที่ทำให้เดียวกันk) มีชุดของkรูปหกเหลี่ยมที่ต่อเนื่องกันซึ่งก่อให้เกิด tesselation บนตารางหกเหลี่ยม (ดูภาพประกอบสำหรับk = 4และสำหรับk …
33 code-golf  math  number  number-theory  decision-problem  code-golf  kolmogorov-complexity  code-golf  sequence  code-golf  path-finding  chess  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  math  arithmetic  code-golf  code-golf  number  code-golf  geometry  code-golf  math  code-golf  code-golf  kolmogorov-complexity  alphabet  code-golf  regular-expression  hexagonal-grid  king-of-the-hill  path-finding  java  code-golf  string  sorting  code-golf  string  grid  code-challenge  compression  code-golf  random  code-golf  sequence  arithmetic  code-golf  number  grid  tiling  code-golf  tips  code-golf  sequence  number-theory  recursion  code-golf  string  grid  code-golf  math  number  combinatorics  permutations  string  code-challenge  code-golf  sequence  number-theory  subsequence 

29
มันเป็นรหัสคำนำหน้า?
ในทฤษฎีข้อมูล "รหัสคำนำหน้า" เป็นพจนานุกรมที่ไม่มีคีย์ใดเป็นคำนำหน้าของอีก กล่าวอีกนัยหนึ่งนี่หมายความว่าไม่มีสตริงใดเริ่มต้นด้วยสตริงอื่นใด ตัวอย่างเช่น{"9", "55"}เป็นรหัสคำนำหน้า แต่{"5", "9", "55"}ไม่ใช่ ข้อได้เปรียบที่ใหญ่ที่สุดของเรื่องนี้คือข้อความที่เข้ารหัสสามารถเขียนลงโดยไม่มีตัวคั่นระหว่างพวกเขาและมันจะยังสามารถถอดรหัสได้โดยไม่ซ้ำกัน สิ่งนี้แสดงให้เห็นในอัลกอริธึมการบีบอัดเช่นการเข้ารหัส Huffmanซึ่งจะสร้างรหัสคำนำหน้าที่ดีที่สุดเสมอ งานของคุณง่าย: ได้รับรายการของสตริงตรวจสอบว่ามันเป็นรหัสคำนำหน้าที่ถูกต้องหรือไม่ ข้อมูลของคุณ: จะมีรายการของสตริงในรูปแบบที่เหมาะสม จะมีสตริง ASCII ที่พิมพ์ได้เท่านั้น จะไม่มีสตริงว่างเปล่า ผลลัพธ์ของคุณจะเป็นค่าจริง / เท็จ : ความจริงถ้ามันเป็นรหัสคำนำหน้าที่ถูกต้องและเป็นเท็จถ้ามันไม่ ต่อไปนี้เป็นกรณีทดสอบจริง: ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", …

22
การคูณแฮคเกอร์
เป้าหมายของคุณคือการใช้การดำเนินการคูณXOR ( ไร้ค่า ) ตามที่กำหนดไว้ด้านล่างในไม่กี่ไบต์เท่าที่จะทำได้ ถ้าเราคิดว่า bitwise XOR ( ^) เป็นการเพิ่มแบบไบนารีโดยไม่ต้องถือ 101 5 ^ 1001 9 ---- 1100 12 5^9=12 เราสามารถดำเนินการ XOR คูณ@ด้วยการทำไบนารียาวคูณ^แต่ทำขั้นตอนการเพิ่มโดยไม่ดำเนินการเป็นค่าที่เหมาะสมแฮคเกอร์ 1110 14 @ 1101 13 ----- 1110 0 1110 ^ 1110 ------ 1000110 70 14@13=70 (สำหรับนักคณิตศาสตร์นี่คือการคูณในพหุนามพหุนามF_2[x]ระบุพหุนามกับจำนวนธรรมชาติโดยการประเมินที่x=2พหุนามมากกว่า Z) แฮคเกอร์เดินทางคูณa@b=b@aร่วมและจัดจำหน่ายมากกว่าค่าที่เหมาะสมแฮคเกอร์(a@b)@c=a@(b@c) a@(b^c)=(a@b)^(a@c)ในความเป็นจริงมันเป็นงานที่ไม่ซ้ำกันเช่นที่ตรงกับการคูณa@b=a*bเมื่อใดก็ตามaและbมีพลังแห่งเช่น21,2,4,8... ความต้องการ ใช้จำนวนเต็มสองจำนวนที่ไม่เป็นลบเป็นอินพุตและเอาต์พุตหรือพิมพ์ XOR-product นี่ควรเป็นตัวเลขหรือการแสดงสตริงทศนิยมไม่ใช่การขยายแบบไบนารี ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ ไม่ต้องกังวลกับจำนวนเต็มล้น a b …

6
1, 2, 3, 14 ... หรือมันคือ 15?
เพลงที่รู้จักกันดีโดยวงร็อคไอริชU2เริ่มต้นด้วยนักร้อง Bono พูดว่า "1, 2, 3, 14" ในภาษาสเปน (" uno, dos, tres, catorce ") มีหลาย ทฤษฎีเกี่ยวกับความสำคัญของตัวเลขเหล่านั้น เห็นได้ชัดว่าคำอธิบายอย่างเป็นทางการคือ " เราดื่มมากเกินไปในคืนนั้น " แต่มีสมมติฐานที่น่าสนใจมากกว่านี้: Bono หมายถึงลำดับจำนวนเต็มบางส่วนจาก OEIS เช่น A107083 : จำนวนเต็มที่kเช่นนั้น10^k + 31สำคัญ 1, 2, 3, 14, 18, 44, 54... ในการให้สัมภาษณ์เมื่อถามคำถามที่หลีกเลี่ยงไม่ได้ "ทำไม 14" Bono ยอมรับว่าเขาเบื่อกับจำนวนนั้น นักข่าวแนะนำว่า "15" แทนและในคืนคอนเสิร์ตนั้นเนื้อเพลงก็เปลี่ยนเป็น "1, 2, 3, 15" (เรื่องราวสามารถอ่านได้ที่นี่ในภาษาสเปน) …

21
หมายเหตุเกี่ยวกับ N!
JE Maxfield พิสูจน์ทฤษฎีบทต่อไปนี้ (ดูDOI: 10.2307 / 2688966 ): ถ้าAAAเป็นจำนวนเต็มบวกใด ๆ ที่มีตัวเลขmmmจะมีเลขจำนวนเต็มบวกNNNซึ่งนั่นคือตัวเลขmmmแรกของประกอบขึ้นเป็นจำนวนเต็มN!N!N!AAA ท้าทาย ความท้าทายของคุณจะได้รับค้นหากันA⩾1A⩾1A \geqslant 1N⩾1N⩾1N \geqslant 1 รายละเอียด N!N!N!แสดงถึง factorialN!=1⋅2⋅3⋅…⋅NN!=1⋅2⋅3⋅…⋅NN! = 1\cdot 2 \cdot 3\cdot \ldots \cdot NของNNNN ตัวเลขของในกรณีของเรามีความเข้าใจที่จะอยู่ในฐาน10AAA101010 การส่งข้อมูลของคุณควรใช้กับมีเวลาและหน่วยความจำเพียงพอ เพียงแค่ใช้เช่นชนิด 32 บิตเพื่อแทนจำนวนเต็มไม่เพียงพอA⩾1A⩾1A\geqslant 1 คุณไม่จำเป็นต้องส่งออกอย่างน้อยเป็นไปได้ไม่มีNNN ตัวอย่าง A N 1 1 2 2 3 9 4 8 5 7 6 3 …

16
วิธีการกำหนดค่าช่วงเวลาต่าง ๆ
หนึ่งในคำจำกัดความที่ฉันชื่นชอบของตัวเลขที่สำคัญไปดังนี้: 2 เป็นนายกที่เล็กที่สุด ตัวเลขที่มีขนาดใหญ่กว่า 2 นั้นเป็นจำนวนเฉพาะถ้าพวกเขาไม่สามารถหารด้วยจำนวนที่น้อยกว่าได้ อย่างไรก็ตามคำจำกัดความนี้ดูเผินๆทำไม 2 ทำไมไม่ใช้หมายเลขอื่นล่ะ? ลองมาดูตัวเลขอื่น ๆ หน่อยสิจะนิยาม n-prime แบบนั้น n เป็น n-prime ที่เล็กที่สุด ตัวเลขที่มีขนาดใหญ่กว่า n คือ n-prime หากพวกเขาไม่สามารถหารด้วย n-prime ที่เล็กกว่า งาน งานนี่คือการเขียนโปรแกรมที่จะใช้เวลาสองปัจจัยการผลิตเป็นจำนวนเต็มบวกnและเป็นจำนวนเต็มบวก จากนั้นจะตัดสินใจว่าaคือn -prime โปรแกรมของคุณควรแสดงค่าที่แตกต่างกันสองค่าสำหรับ "ใช่มันคือ n-prime" และอีกค่าสำหรับ "ไม่ใช่มันไม่ใช่ n-prime" นี่เป็นคำถามเกี่ยวกับการเขียนโค้ดดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยไบต์น้อยจะดีขึ้น การทดสอบ นี่คือรายการของ 31 งวดแรกสำหรับ n = 2 ถึง n = 12 (1 คือหมายเลข 1 …

30
ตัวเลข n แรกโดยไม่มีเลขฐานสองเท่ากับกัน
ลำดับประกอบด้วยการแทนทศนิยมของตัวเลขฐานสองของรูปแบบ: 10101...ซึ่งคำ n-th มี n บิต ลำดับนั้นอาจอธิบายได้ง่ายที่สุดโดยเพียงแสดงความสัมพันธ์ระหว่างเลขฐานสองและเลขฐานสิบของตัวเลข: 0 -> 0 1 -> 1 10 -> 2 101 -> 5 1010 -> 10 10101 -> 21 101010 -> 42 ท้าทาย: ใช้จำนวนเต็มอินพุทnแล้วคืนค่าตัวเลข n ตัวแรกตามลำดับ คุณอาจเลือกที่จะเรียงลำดับดัชนี 0 หรือ 1 ดัชนี กรณีทดสอบ: n = 1 <- 1-indexed 0 n = 18 0, 1, 2, …

20
Passtimes สุพีเรีย
บางครั้งเมื่อฉันเบื่อจริง ๆ ฉันชอบที่จะหาผลรวมของจำนวนเต็มจำนวนเต็มที่ไม่เป็นลบ ฉันจะหาผลรวมของความยาวอาร์เรย์ที่เป็นพลังของสองเท่านั้น น่าเสียดายที่ฉันมักจะทำผิดพลาด โชคดีที่ฉันติดตามงานของฉันเมื่อฉันไปตามวิธีต่อไปนี้: ฉันเพิ่มคู่ของตัวเลขที่อยู่ติดกันจนกว่าจะเหลือเพียงอันเดียว ตัวอย่างเช่น: 6 + 18 + 9 + 6 + 6 + 3 + 8 + 10 = 24 + 15 + 9 + 18 = 39 + 27 = 66 คุณมีหน้าที่ตรวจสอบว่าฉันทำผิดพลาดที่ไหนสักแห่งหรือไม่ คุณสามารถรับอินพุตที่ส่งผ่านไปยังฟังก์ชันของคุณหรืออ่านจากมาตรฐานในเอาต์พุตสามารถพิมพ์หรือส่งคืนได้ อินพุต: อาร์เรย์ / รายการ / ฯลฯ ของจำนวนเต็มที่ไม่เป็นลบและอาจมีความยาวของอาร์เรย์นั้นด้วยหากภาษาของคุณต้องการ อาร์เรย์นั้นจะเป็นตัวเลขทั้งหมดที่อ่านจากซ้ายไปขวาจากบนลงล่าง ตัวอย่างเช่นอาร์เรย์ด้านบนจะกลายเป็น: [[6, 18, …

16
ใครที่สูงที่สุด?
เด็ก ๆ ที่ไม่มีการแชร์ขนาดที่แน่นอนของพวกเขาทั้งสองคนจะเรียงกันเป็นระเบียบ แต่ละคนสามารถเปรียบเทียบความสูงกับเพื่อนบ้านของพวกเขาได้ทันที เมื่อครูตะโกน "ยกมือถ้าคุณสูงที่สุด" พวกเขาจะทำเช่นนั้นถ้าพวกเขาสูงกว่าเพื่อนบ้านทั้งคู่และพวกเขาก็ทำพร้อมกัน ถ้าเพียงยกมือขึ้นเขาจะชนะ หากมีมากกว่าหนึ่งมือยกพวกเขาทั้งหมดจะถูกกำจัดออกจากแถว (รักษาลำดับของเด็กที่เหลือ) และพวกเขาทำซ้ำขั้นตอน เขียนโปรแกรมซึ่งใช้อาร์เรย์ของจำนวนเต็มที่แตกต่างกัน (คุณสามารถถือว่าพวกเขาเป็นบวกอย่างเคร่งครัด) และส่งออกผู้ชนะของเกมนี้ นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ ตัวอย่าง (แสดงขั้นตอนกลาง): 5 3 9 8 7 → 3 8 7 → 8 1 2 9 4 → 9 9 3 8 7 4 12 5 → 3 7 4 5 → 3 4 → …

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