ในxkcd 1047รายการ Randall Munroe "เล็กน้อยผิด" การประมาณปริมาณสารพันและตัวเลขที่มีความแม่นยำและความซับซ้อนที่แตกต่างกันเช่นว่าจำนวนลิตรในแกลลอนที่อยู่ใกล้กับ 3 + π / 4 ในช่วงกลางของการ์ตูนเขาให้หยุดพักชั่วคราว: วิธีการประมาณประชากรโลก (และสหรัฐอเมริกา) ตามปีที่กำหนด
(ครอบตัดจากxkcd: การประมาณโดย Randall Munroe)
งานของคุณคือการเขียนโปรแกรมที่ใช้สูตรเหล่านี้เพื่อประมาณประชากรโลกในปัจจุบันและสหรัฐอเมริกาโดยจำลองดังนี้
ประชากรโลก
- ใช้ตัวเลขสองหลักสุดท้ายของปีปัจจุบัน
- ลบจำนวนปีอธิกสุรทิน (รวมถึงปีปัจจุบัน) นับตั้งแต่เฮอร์ริเคนแคทรีนา (2548) สำหรับวัตถุประสงค์เหล่านี้หารด้วย 4 ปีใดถือว่าเป็นปีอธิกสุรทิน
- เพิ่มจุดทศนิยมระหว่างตัวเลขสองตัว (เช่นเดียวกับหารด้วย 10)
- เพิ่ม 6 สิ่งนี้ให้ผลลัพธ์เป็นพันล้านคน
ประชากรสหรัฐ
- ใช้ตัวเลขสองหลักสุดท้ายของปีปัจจุบัน
- ลบ 10
- คูณด้วย 3
- เพิ่ม 10
- เพิ่ม 3 เข้ากับจุดเริ่มต้น (สำหรับความท้าทายนี้บางหมายเลขจะเป็นค่าลบดังนั้นเพิ่ม 300 แทน) ยังไงก็เถอะฉันไม่ได้สังเกตเห็นว่าเพียงแค่การต่อกันจะไม่ทำงานเพราะโปรแกรมที่ฉันใช้เพื่อสร้างผลลัพธ์ที่เพิ่งเพิ่ม 300
- สิ่งนี้ให้ผลในคนหลายล้านคน
รายละเอียด
สูตรนี้ "ควรอยู่ในปัจจุบันเป็นเวลาสิบหรือสองปี" แต่คุณจะต้องสามารถจัดการกับเหตุผลใดก็ตามในปี พ.ศ. 2543-2582 รวม สำหรับบางกรณีปีอธิกสุรทินตั้งแต่ Katrina จะมีค่าเป็นลบหรือศูนย์
คุณสามารถลดความซับซ้อนของสูตรได้ทุกวิธีตราบใดที่ผลลัพธ์ทั้งหมดตรงกับสูตรด้านล่าง
สำหรับปีให้ใช้ปีตามนาฬิกาของคอมพิวเตอร์ มันจะต้องใช้งานได้ในปีหน้าและปีอื่น ๆ ในศตวรรษนี้ดังนั้นคุณจึงไม่สามารถ hardcode 2015 ได้เพื่อความสะดวกคุณอาจต้องการรวมวิธีการระบุปีเป็นตัวแปรหรืออินพุตเพื่อทดสอบปีอื่น ๆ
ผลลัพธ์ควรเป็นประชากรโลกโดยประมาณ (เป็นพันล้านคน) ตามด้วยตัวคั่นบางตัว (เช่น space หรือเครื่องหมายจุลภาค) ตามด้วยประชากรสหรัฐฯ (ในล้านคน) นอกจากนี้คุณยังสามารถเขียนฟังก์ชั่นที่ส่งคืนหรือพิมพ์สตริงหรืออาร์เรย์ของตัวเลขหรือสตริง
นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ Tiebreaker เป็นโพสต์แรกสุด
กรณีทดสอบ
นี่คือรายการของปีที่เป็นไปได้ทั้งหมดตามด้วยผลลัพธ์สองรายการ
Year World U.S.
2000 6.1 280
2001 6.2 283
2002 6.3 286
2003 6.4 289
2004 6.4 292
2005 6.5 295
2006 6.6 298
2007 6.7 301
2008 6.7 304
2009 6.8 307
2010 6.9 310
2011 7 313
2012 7 316
2013 7.1 319
2014 7.2 322
2015 7.3 325
2016 7.3 328
2017 7.4 331
2018 7.5 334
2019 7.6 337
2020 7.6 340
2021 7.7 343
2022 7.8 346
2023 7.9 349
2024 7.9 352
2025 8 355
2026 8.1 358
2027 8.2 361
2028 8.2 364
2029 8.3 367
2030 8.4 370
2031 8.5 373
2032 8.5 376
2033 8.6 379
2034 8.7 382
2035 8.8 385
2036 8.8 388
2037 8.9 391
2038 9 394
2039 9.1 397
3
ควร2040
ให้ประชากรเป็น3100
? 40 - 10 = 30
, 30 * 3 = 90
, 90 + 10 = 100
ซึ่งจะให้"3" + "100" = 3100
280
เป็นผลมาจาก-20+300=280
และไม่ใช่3 . -20= "3-20"
)