W xkcd 1047 Randall Munroe podaje „nieco błędne” przybliżenia różnych wielkości i liczb z różną precyzją i złożonością, na przykład liczba litrów w galonie jest bardzo bliska 3 + π ⁄ 4 . W środku komiksu przerywa: sposób oszacowania populacji świata (i Stanów Zjednoczonych) na podstawie danego roku.
(Wykadrowane z xkcd: Approximations autorstwa Randall Munroe)
Twoim zadaniem jest napisanie programu, który implementuje te formuły w celu przybliżenia obecnego świata i populacji USA, powielonego w następujący sposób.
Populacja świata
- Weź dwie ostatnie cyfry bieżącego roku.
- Odejmij liczbę lat przestępnych (w tym rok bieżący) od huraganu Katrina (2005). Do tych celów każdy rok podzielny przez 4 jest uważany za rok przestępny.
- Dodaj kropkę dziesiętną między dwiema liczbami (to samo, co dzielenie przez 10).
- Dodaj 6. Daje to wynik w miliardach ludzi.
Populacja USA
- Weź dwie ostatnie cyfry bieżącego roku.
- Odejmij 10.
- Pomnóż przez 3.
- Dodaj 10.
- Dodaj 3 na początek (w tym wyzwaniu niektóre liczby będą ujemne, więc zamiast tego dodaj 300). Jakoś nie zauważyłem, że po prostu konkatenacja nie zadziała, ponieważ program, którego użyłem do wygenerowania wyników, dodał 300.
- To daje wynik w milionach ludzi.
Detale
Ta formuła „powinna być aktualna przez dekadę lub dwie”, ale musisz być w stanie teoretycznie poradzić sobie z każdym rokiem 2000–2039 włącznie. W niektórych przypadkach lata przestępne od Katriny będą miały wartość ujemną lub zerową.
Możesz dowolnie upraszczać formułę, o ile wszystkie wyniki są zgodne z poniższymi.
Dla roku użyj roku zgodnie z zegarem komputera. Musi działać w przyszłym roku i w każdym innym w tym stuleciu, więc nie można po prostu ustawić na stałe kodu 2015. Dla wygody możesz chcieć podać sposób określania roku jako zmiennej lub danych wejściowych do testowania innych lat.
Wynikiem powinna być przybliżona populacja światowa (w miliardach ludzi), a następnie pewien separator (np. Spacja lub przecinek), a następnie populacja USA (w milionach ludzi). Możesz także napisać funkcję, która zwraca lub drukuje ciąg znaków lub tablicę liczb lub ciągów znaków.
To jest kod golfowy, więc wygrywa najkrótszy kod w bajtach. Tiebreaker jest najwcześniejszym postem.
Przypadki testowe
To jest lista wszystkich możliwych lat, po których następują dwa wyniki.
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
, nie powinieneś 2040
dać populacji 3100
? 40 - 10 = 30
, 30 * 3 = 90
, 90 + 10 = 100
, Co daje"3" + "100" = 3100
280
jako wynik -20+300=280
i nie 3 . -20= "3-20"
)