Nel xkcd 1047 , Randall Munroe elenca approssimazioni "leggermente sbagliate" di quantità e numeri assortiti con precisione e complessità variabili, come ad esempio il fatto che il numero di litri in un gallone è molto vicino a 3 + π ⁄ 4 . Nel mezzo del fumetto, dà un intervallo: un modo per stimare la popolazione mondiale (e degli Stati Uniti) in base a un determinato anno.
(Ritagliato da xkcd: approssimazioni di Randall Munroe)
Il tuo compito è di scrivere un programma che implementa queste formule per approssimare il mondo attuale e le popolazioni statunitensi, replicato come segue.
Popolazione mondiale
- Prendi le ultime due cifre dell'anno in corso.
- Sottrai il numero di anni bisestili (incluso l'anno corrente) dall'uragano Katrina (2005). A tal fine, ogni anno divisibile per 4 è considerato un anno bisestile.
- Aggiungi un punto decimale tra i due numeri (lo stesso che dividere per 10).
- Aggiungi 6. Questo dà il risultato in miliardi di persone.
Popolazione americana
- Prendi le ultime due cifre dell'anno in corso.
- Sottrai 10.
- Moltiplicare per 3.
- Aggiungi 10.
- Aggiungi 3 all'inizio (per questa sfida, alcuni numeri saranno negativi, quindi aggiungi 300). In qualche modo non ho notato che il semplice concatenamento non avrebbe funzionato perché il programma che ho usato per generare i risultati ne ha appena aggiunti 300.
- Questo dà il risultato in milioni di persone.
Dettagli
Questa formula "dovrebbe rimanere aggiornata per un decennio o due", ma devi essere in grado di gestire teoricamente qualsiasi anno 2000-2039 compreso. In alcuni casi, gli anni bisestili da quando Katrina avrà un valore negativo o zero.
Sei libero di semplificare la formula in qualsiasi modo, purché tutti gli output corrispondano a quelli indicati di seguito.
Per l'anno, utilizzare l'anno in base all'orologio del computer. Deve funzionare il prossimo anno e qualsiasi altro anno in questo secolo, quindi non puoi semplicemente hardcode 2015. Per comodità, potresti voler includere un modo per specificare l'anno come variabile o input per testare altri anni.
L'output dovrebbe essere la popolazione mondiale approssimativa (in miliardi di persone), seguita da un delimitatore (ad esempio spazio o virgola), seguito dalla popolazione americana (in milioni di persone). È inoltre possibile scrivere una funzione che restituisce o stampa una stringa o una matrice di numeri o stringhe.
Questo è il codice golf, quindi vince il codice più breve in byte. Tiebreaker è il primo post.
Casi test
Questo è un elenco di tutti gli anni possibili, seguito dai due risultati.
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
, non dovresti 2040
dare una popolazione di 3100
? 40 - 10 = 30
, 30 * 3 = 90
, 90 + 10 = 100
, Che darebbe"3" + "100" = 3100
280
come risultato -20+300=280
e non 3 . -20= "3-20"
)