Codington Crescent เพิ่มเติม

Sep 20 2020

ใครจะลองอีกครั้ง

หากคุณเคยฟังรายการวิทยุ "ฉันขอโทษฉันไม่มีเงื่อนงำ" คุณคงเคยได้ยินเกมชื่อ "Mornington Crescent" สำหรับผู้ที่ยังไม่เคยเล่นเกมนี้เป็นเกมที่ผู้เล่นตั้งชื่อสถานีแบบสุ่มบนเครือข่ายรถไฟใต้ดินของลอนดอน คนแรกที่ชื่อ "Mornington Crescent" เป็นผู้ชนะในเกมนี้ 1

มากเหมือนครั้งสุดท้ายที่ผมนำเสนอให้คุณเล่นเกมของผู้อื่นCodington เสี้ยว

ความท้าทาย

ผู้ชนะในความท้าทายนี้คือบุคคลแรกที่โพสต์โปรแกรมการทำงานที่ได้รับรายการจำนวนเต็มบวกที่มีขนาดตัวแปรจะส่งกลับค่าเฉลี่ย (ค่าเฉลี่ยเลขคณิต) ของรายการดังกล่าว รายการจะไม่ว่างเปล่าและจะมีอย่างน้อยหนึ่งรายการเสมอ อินพุตและเอาต์พุตสามารถกำหนดได้ในรูปแบบที่เหมาะสมและสะดวกสบาย

กรณีทดสอบ

[150, 541, 168, 225, 65, 191, 964, 283, 825, 5, 802, 426, 45, 326, 22, 619, 281] => 349.29411764705884
[874, 33, 423, 36, 1000, 255, 345, 902, 700, 141, 916, 959, 222, 246, 96] => 476.53333333333336
[567, 868, 680, 121, 574, 391, 233, 39, 764, 499, 455, 684, 742, 117, 376] => 474.0
[177, 372, 778, 709, 474, 796, 840, 742] => 611.0
[181, 751, 940, 782, 727, 756, 541, 762, 677, 751, 719] => 689.7272727272727
[47, 804, 782, 231, 170] => 406.8
[315, 972] => 643.5
[679, 727] => 703.0
[859, 229, 363, 468, 103, 104, 570, 772, 83, 693, 898, 672, 306, 733, 189, 717, 231] => 470.0
[228, 839] => 533.5
[395, 622, 760, 820, 70, 814, 797, 202, 277, 663, 93, 218, 564, 735] => 502.14285714285717
[724, 631, 932, 333, 605, 880, 670, 468, 703, 744, 680, 28] => 616.5
[950, 733, 305, 178, 995] => 632.2
[762, 506, 553, 284, 499, 694, 665, 998, 576, 504, 123, 658, 943, 385, 354, 732] => 577.25
[151, 919, 514, 721, 426, 333, 808, 514] => 548.25
[995] => 995.0
[891, 243, 42, 968, 458, 372, 301, 269, 559, 394, 980, 372, 804, 429, 738] => 521.3333333333334
[147, 473, 632] => 417.3333333333333
[105, 483, 225, 541, 684, 456, 328] => 403.14285714285717
[311, 1, 770, 417, 910, 185, 375, 631, 226, 266, 609] => 427.3636363636364

เครื่องกำเนิดกรณีทดสอบ

กฎระเบียบ

  1. ผู้เล่นแต่ละคนมีโปรแกรมของตัวเองที่จะเพิ่ม / เปลี่ยนตัวละคร นี้จะเรียกว่าพวกเขาโปรแกรมทำงาน
ด้วยวิธีนี้ลักษณะการผูกคำตอบเพียงอย่างเดียวคือกฎ ทุกคนใช้โปรแกรมวิ่งของตัวเอง ไม่มีใครแชร์โปรแกรมเลย
  1. แต่ละคำตอบ ( เทิร์น ) ต้องเป็นไปตามข้อ จำกัด ของแหล่งที่มาที่กำหนดโดยคำตอบก่อนหน้า เหล่านี้เรียกว่ากฎ แต่ละตัวแปรมีระยะเวลา 5 เทิร์น กฎอยู่ในรูปแบบของการจำกัด แหล่งที่มาที่ถูก จำกัด

  2. การรันโปรแกรมสามารถเปลี่ยนภาษาระหว่างผลัดกันได้

  3. ผู้ตอบ (ผู้เล่น) สามารถเพิ่มเปลี่ยนแปลงหรือลบ (แต่มีเพียงหนึ่งในตัวเลือก) ตามจำนวนตัวละครของโปรแกรมที่กำลังทำงานต่อเทิร์นตามที่ต้องการ หรืออีกวิธีหนึ่งคือพวกเขาสามารถเลือกที่จะ "ผ่าน" (ในทางวิทยาศาสตร์มากขึ้น , farkle ) โดยไม่ต้องเพิ่มกฎใหม่และยังคงนับเป็นเทิร์น นี่อาจเป็นทางเลือกเดียวหากกฎขัดแย้งกัน จำนวนเทิร์นยังคงเพิ่มขึ้นและจะโพสต์ เคล็ดลับสำหรับมือโปร: คุณอาจต้องการทำเครื่องหมายว่า community wiki เพราะไม่ได้เพิ่มอะไรมาก

  4. ในตอนท้ายของแต่ละเทิร์นผู้เล่นจะประกาศกฎใหม่ซึ่งจะครอบคลุม 5 เทิร์นถัดไป กฎต้องมีวัตถุประสงค์และขอแนะนำให้ใช้โปรแกรมการตรวจสอบ TIO นอกจากนี้กฎต้องสามารถนำไปใช้กับทุกภาษา (เช่นPrograms must not error using Python 3.4.2ไม่ใช่กฎที่ถูกต้อง)

  5. เล่นต่อไปจนกว่าโปรแกรมที่กำลังทำงานจะบรรลุผลตามเป้าหมาย

  6. หากไม่มีการเลี้ยวเป็นเวลาหนึ่งสัปดาห์ก็จะเกิดการโต้กลับโดยปริยาย คุณสามารถหันหลังให้โดยนัยได้ตลอดเวลาเนื่องจากนับเป็นเทิร์น (คิดว่าเป็นเทิร์นของผู้ใช้ชุมชน)

กฎเริ่มต้น

ในการเริ่มเกม 5 เทิร์นแรกต้องปฏิบัติตามกฎต่อไปนี้:

  1. เทิร์นอาจไม่บรรลุเป้าหมายสุดท้าย
  2. ความยาวโปรแกรมขั้นต่ำคือ 10 ไบต์

กฎถาวร

ครั้งที่แล้วมีการตั้งข้อสังเกตว่ากฎต่อไปนี้เหมาะสมกับกฎถาวรมากกว่ากฎ 5 รอบ:

  1. โปรแกรมที่รันจะต้องไม่สามารถลดทอนได้ ไม่สามารถลดได้ในกรณีนี้หมายความว่าโปรแกรมจะไม่สร้างผลลัพธ์ของโปรแกรมทั้งหมดหากอักขระจากโปรแกรมทั้งหมดถูกลบออก ได้แก่ . ไม่มีโปรแกรมที่มีเอาต์พุตดีฟอลต์เดียวกันที่สามารถสร้างโดยการลบอักขระออกจากโปรแกรมต้นฉบับ)

  2. โปรแกรมไม่สามารถชนะได้ภายใน 5 รอบของการปรากฏตัวครั้งแรก

ตัวอย่างกฎ

นี่เป็นเพียงตัวอย่างของสิ่งที่คุณสามารถเพิ่มเป็นกฎในการท้าทายได้ พวกเขาใช้ไม่ได้เว้นแต่จะมีใครตัดสินใจใช้

  • อักขระตัวแรกและตัวสุดท้ายของโปรแกรมที่กำลังรันต้องเว้นวรรค
  • โปรแกรมที่รันต้องมีจำนวนไบต์เท่ากัน
  • โปรแกรมที่รันต้องมีขนาดไม่เกิน 30 ไบต์

กฎการผูกมัดคำตอบพิเศษ

  • คุณไม่สามารถตอบสองครั้งติดต่อกัน คนอื่นต้องตอบก่อนที่คุณจะไปอีก
  • ภาษาต้องอยู่ใน Try It Online จึงจะเป็นคำตอบที่ถูกต้อง

Pro-tip: จัดเรียงตามลำดับที่เก่าแก่ที่สุดเพื่อให้ได้คำตอบที่สอดคล้องกันมากขึ้น

1 เกมดั้งเดิมของ Mornington Crescent ไม่มีกฎจริงๆ ... เป็นกิจกรรมที่ดูเหมือนว่าเป็นเกมที่ซับซ้อน

เทมเพลตคำตอบ

# [Language], turn number [your turn]

    <code>

[Try it online link]
[prev answer link] 

## Rules

- Rule (n turns left)
- Rule (n turns left)
- Rule (n turns left)

คำตอบ

3 SunnyMoon Sep 20 2020 at 22:05

05AB1Eเลี้ยว 3

$XY~sDOsg/*+

ลองออนไลน์!

(ฉันจะเชื่อมโยงไปยังคำตอบก่อนหน้าได้อย่างไร)

บอยฉันรัก Code Golf!

คำอธิบาย

$               # Push 1 and input
 X              # Push 1
  Y             # Push 2
   ~            # Converts 1 and 2 to 3
    s           # Swap to get implicit input
     D          # Duplicate
      O         # Sum the list
       s        # Swap top 2 values and gets the preserved list.
        g       # Push the length of the list.
         /      # Push the quotient of sum and length
          *     # Multiply with 3
           +    # Add with one

กฎปัจจุบัน

  • เทิร์นอาจไม่บรรลุเป้าหมายสุดท้าย - พิมพ์ค่าเฉลี่ยสามเท่าบวกหนึ่ง ( 2 เทิร์นซ้าย! )
  • ความยาวโปรแกรมขั้นต่ำคือ 10 ไบต์ (3 ทางซ้าย) - ความยาวของโปรแกรมคือ 12 ไบต์ ( 2 เลี้ยวซ้าย! )
  • โปรแกรมต้องมีอักขระ ~ - อักขระควรจะดันบิตหรือ 1 และ 2 ( 3 เลี้ยวซ้าย! )
  • โปรแกรมต้องมีค่าไบต์เฉลี่ยน้อยกว่าหรือเท่ากับ 80 - ค่าไบต์เฉลี่ยของโปรแกรมคือ 79.25 (เลี้ยวซ้าย 4 ครั้ง!)

กฎใหม่

ดรัมโรล


โปรแกรมต้องมีอักขระที่ไม่ใช่ตัวเลขและตัวอักษร 5-10 ตัว (เลี้ยวซ้าย 5 ตัว!)

2 Noname Sep 20 2020 at 08:20

Io , 20 ไบต์

ส่งกลับค่าเฉลี่ย + 1

method(~,~average+1)

ลองออนไลน์!

กฎ

5 เทิร์นแรกต้องปฏิบัติตามกฎเหล่านี้:

  • เทิร์นอาจไม่บรรลุเป้าหมายสุดท้าย
  • ความยาวโปรแกรมขั้นต่ำคือ 10 ไบต์

สิ่งนี้ใช้ได้กับโปรแกรมที่กำลังทำงานอยู่ทั้งหมด:

  • โปรแกรมที่รันจะต้องไม่สามารถลดทอนได้ ไม่สามารถลดได้ในกรณีนี้หมายความว่าโปรแกรมจะไม่สร้างผลลัพธ์ของโปรแกรมทั้งหมดหากอักขระจากโปรแกรมทั้งหมดถูกลบออก ได้แก่ . ไม่มีโปรแกรมที่มีเอาต์พุตดีฟอลต์เดียวกันที่สามารถสร้างโดยการลบอักขระออกจากโปรแกรมต้นฉบับ)

  • โปรแกรมไม่สามารถชนะได้ภายใน 5 รอบของการปรากฏตัวครั้งแรก

กฎใหม่:

  • โปรแกรมต้องมี~อักขระ
2 pxeger Sep 20 2020 at 18:42

Python 3 , 23 ไบต์, เทิร์น 2

lambda l:sum(l)/~len(l)

ลองออนไลน์!

ป้อนเป็นรายการลอย เอาท์พุตเป็นลอย

กฎ

กฎถาวร:

  • โปรแกรมที่รันจะต้องไม่สามารถลดทอนได้ ไม่สามารถลดได้ในกรณีนี้หมายความว่าโปรแกรมจะไม่สร้างผลลัพธ์ของโปรแกรมทั้งหมดหากอักขระจากโปรแกรมทั้งหมดถูกลบออก ได้แก่ . ไม่มีโปรแกรมที่มีเอาต์พุตดีฟอลต์เดียวกันที่สามารถสร้างโดยการลบอักขระออกจากโปรแกรมต้นฉบับ)

  • โปรแกรมไม่สามารถชนะได้ภายใน 5 รอบของการปรากฏตัวครั้งแรก

กฎปัจจุบัน:

  • การเลี้ยวอาจไม่บรรลุเป้าหมายสุดท้าย (3 รอบซ้าย)
  • ความยาวโปรแกรมขั้นต่ำ 10 ไบต์ (3 รอบซ้าย)
  • โปรแกรมต้องมี~อักขระ (4 เลี้ยวซ้าย)

กฎใหม่ของฉัน:

  • โปรแกรมต้องมีค่าไบต์เฉลี่ยน้อยกว่าหรือเท่ากับ 80 (ตัวตรวจสอบ )
1 pppery Oct 05 2020 at 00:31

Befunge-98 (PyFunge) , 13 ไบต์, เทิร์น 5

(เทิร์น 4 เป็น farkle โดยปริยาย)

"PDPF"4(~FP@

คำตอบนี้ยังห่างไกลจากการชนะ แต่ฉันรวมอักขระบางตัวไว้ด้วยซึ่งโปรแกรมเฉลี่ยในภาษานี้น่าจะต้องการและรักษาความท้าทายไว้

ลองออนไลน์!

คำตอบก่อนหน้า

กฎ:

  • โปรแกรมอาจไม่บรรลุเป้าหมายสุดท้าย (เทิร์นสุดท้าย)
  • ความยาวโปรแกรมขั้นต่ำ 10 ไบต์ (รอบสุดท้าย)
  • โปรแกรมต้องมีอักขระ ~ (1 เลี้ยวซ้าย)
  • โปรแกรมต้องมีค่าไบต์เฉลี่ยน้อยกว่าหรือเท่ากับ 80 (2 เลี้ยวซ้าย)
  • โปรแกรมต้องมีอักขระที่ไม่ใช่ตัวเลขและตัวอักษร 5-10 ตัว (เลี้ยวซ้าย 3 ตัว!)
  • โปรแกรมต้องไม่มีตัวอักษรพิมพ์เล็ก 2 ตัวต่อเนื่องกัน (เลี้ยวซ้าย 5 ตัว)