In xkcd 1047 listet Randall Munroe "leicht falsche" Näherungen verschiedener Mengen und Zahlen mit unterschiedlicher Genauigkeit und Komplexität auf, z. B. dass die Anzahl der Liter in einer Gallone sehr nahe bei 3 + π ⁄ 4 liegt . In der Mitte des Comics gibt er eine Pause: eine Möglichkeit, die Weltbevölkerung (und die Bevölkerung der Vereinigten Staaten) basierend auf einem bestimmten Jahr zu schätzen.
(Aus xkcd beschnitten : Annäherungen von Randall Munroe)
Ihre Aufgabe ist es, ein Programm zu schreiben, das diese Formeln implementiert, um die aktuelle Welt und die US-Bevölkerung anzunähern.
Weltbevölkerung
- Nimm die letzten beiden Ziffern des laufenden Jahres.
- Subtrahieren Sie die Anzahl der Schaltjahre (einschließlich des aktuellen Jahres) seit dem Hurrikan Katrina (2005). Für diese Zwecke wird jedes durch 4 teilbare Jahr als Schaltjahr betrachtet.
- Fügen Sie einen Dezimalpunkt zwischen den beiden Zahlen ein (das gleiche wie beim Teilen durch 10).
- Addieren Sie 6. Dies ergibt Milliarden von Menschen.
US-Bevölkerung
- Nimm die letzten beiden Ziffern des laufenden Jahres.
- Subtrahiere 10.
- Mit 3 multiplizieren.
- Addiere 10.
- Fügen Sie am Anfang 3 hinzu (für diese Herausforderung sind einige Zahlen negativ, also fügen Sie stattdessen 300 hinzu). Irgendwie habe ich nicht bemerkt, dass das Verketten nicht funktioniert, weil das Programm, mit dem ich die Ergebnisse generiert habe, gerade 300 hinzugefügt hat.
- Dies führt bei Millionen von Menschen zum Ergebnis.
Einzelheiten
Diese Formel "sollte ein oder zwei Jahrzehnte lang aktuell bleiben", aber Sie müssen theoretisch in der Lage sein, jedes Jahr von 2000 bis einschließlich 2039 zu verarbeiten. In einigen Fällen haben die Schaltjahre seit Katrina einen negativen Wert oder Null.
Es steht Ihnen frei, die Formel in irgendeiner Weise zu vereinfachen, solange alle Ausgaben mit den folgenden übereinstimmen.
Verwenden Sie für das Jahr das Jahr gemäß der Uhr des Computers. Es muss nächstes Jahr und jedes andere Jahr in diesem Jahrhundert funktionieren, sodass Sie 2015 nicht einfach fest codieren können. Aus Gründen der Benutzerfreundlichkeit möchten Sie möglicherweise eine Möglichkeit einschließen, das Jahr als Variable oder Eingabe anzugeben, um andere Jahre zu testen.
Die Ausgabe sollte die ungefähre Weltbevölkerung (in Milliarden von Menschen) sein, gefolgt von einem Begrenzungszeichen (z. B. Leerzeichen oder Komma), gefolgt von der US-Bevölkerung (in Millionen von Menschen). Sie können auch eine Funktion schreiben, die eine Zeichenfolge oder ein Array von Zahlen oder Zeichenfolgen zurückgibt oder druckt.
Dies ist Codegolf, also gewinnt der kürzeste Code in Bytes. Tiebreaker ist der früheste Beitrag.
Testfälle
Dies ist eine Liste aller möglichen Jahre, gefolgt von den beiden Ausgaben.
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
, sollten Sie nicht 2040
eine Population von geben 3100
? 40 - 10 = 30
, 30 * 3 = 90
, 90 + 10 = 100
Würde das geben"3" + "100" = 3100
280
als Ergebnis von -20+300=280
und nicht 3 . -20= "3-20"
)