Skip to main content
4 of 5
edited body

Estimate the world population, at 5 different levels of accuracy

Your goal is, given a year between 1952 and 2020 to output the world population in that year. However, you must write 5 different expressions. Each program must contain the previous as a substring.

Your first program is 5 bytes, the second 10, then 20, 40 finally a program or function with a maximums size of 80 bytes. Each expression must contain the previous expression as a substring.

For the purpose of this challenge, snippets that take input from global variables are allowed, for all programs except the last. which must be either a complete program or a function.

Scoring

For each year, your score is the product of the proportional square error. In other words:

$$\frac{(X_0 - V)^2 \cdot (X_1 - V)^2 \cdot (X_2 - V)^2 \cdot(X_3 - V)^2 \cdot (X_4 - V)^2}{V^{10}}$$

Where Xn is the estimate your nth program outputs and V is the true population at that year. Your total score is sum of the score of each year.

Lower score is better.

Example

Python, Score \$7.503\cdot10^{59}\$

Note the numbers here are absolute nonsense, I hope most submissions will have a score that can be written in the title without needing scientific notation

5 byte solution:

413e7

10 byte solution

413e9+x**2

20 byte solution

413e9+x**2.46*4.321

40 byte solution

0*413e9+x**2.46*4.321+x**3.718232*8.3e9

80 byte solution

lambda x:0.010*413e9+x**2.46*4.321+x**3.718232*8.3e9+__import__("math").sin(x/2)

Data

Year Population
2020 7,794,798,739
2019 7,713,468,100
2018 7,631,091,040
2017 7,547,858,925
2016 7,464,022,049
2015 7,379,797,139
2014 7,295,290,765
2013 7,210,581,976
2012 7,125,828,059
2011 7,041,194,301
2010 6,956,823,603
2009 6,872,767,093
2008 6,789,088,686
2007 6,705,946,610
2006 6,623,517,833
2005 6,541,907,027
2004 6,461,159,389
2003 6,381,185,114
2002 6,301,773,188
2001 6,222,626,606
2000 6,143,493,823
1999 6,064,239,055
1998 5,984,793,942
1997 5,905,045,788
1996 5,824,891,951
1995 5,744,212,979
1994 5,663,150,427
1993 5,581,597,546
1992 5,498,919,809
1991 5,414,289,444
1990 5,327,231,061
1989 5,237,441,558
1988 5,145,426,008
1987 5,052,522,147
1986 4,960,567,912
1985 4,870,921,740
1984 4,784,011,621
1983 4,699,569,304
1982 4,617,386,542
1981 4,536,996,762
1980 4,458,003,514
1979 4,380,506,100
1978 4,304,533,501
1977 4,229,506,060
1976 4,154,666,864
1975 4,079,480,606
1974 4,003,794,172
1973 3,927,780,238
1972 3,851,650,245
1971 3,775,759,617
1970 3,700,437,046
1969 3,625,680,627
1968 3,551,599,127
1967 3,478,769,962
1966 3,407,922,630
1965 3,339,583,597
1964 3,273,978,338
1963 3,211,001,009
1962 3,150,420,795
1961 3,091,843,507
1960 3,034,949,748
1959 2,979,576,185
1958 2,925,686,705
1957 2,873,306,090
1956 2,822,443,282
1955 2,773,019,936
1954 2,724,846,741
1953 2,677,608,960
1952 2,630,861,562

In JSON format:

{2020: 7794798739, 2019: 7713468100, 2018: 7631091040, 2017: 7547858925, 2016: 7464022049, 2015: 7379797139, 2014: 7295290765, 2013: 7210581976, 2012: 7125828059, 2011: 7041194301, 2010: 6956823603, 2009: 6872767093, 2008: 6789088686, 2007: 6705946610, 2006: 6623517833, 2005: 6541907027, 2004: 6461159389, 2003: 6381185114, 2002: 6301773188, 2001: 6222626606, 2000: 6143493823, 1999: 6064239055, 1998: 5984793942, 1997: 5905045788, 1996: 5824891951, 1995: 5744212979, 1994: 5663150427, 1993: 5581597546, 1992: 5498919809, 1991: 5414289444, 1990: 5327231061, 1989: 5237441558, 1988: 5145426008, 1987: 5052522147, 1986: 4960567912, 1985: 4870921740, 1984: 4784011621, 1983: 4699569304, 1982: 4617386542, 1981: 4536996762, 1980: 4458003514, 1979: 4380506100, 1978: 4304533501, 1977: 4229506060, 1976: 4154666864, 1975: 4079480606, 1974: 4003794172, 1973: 3927780238, 1972: 3851650245, 1971: 3775759617, 1970: 3700437046, 1969: 3625680627, 1968: 3551599127, 1967: 3478769962, 1966: 3407922630, 1965: 3339583597, 1964: 3273978338, 1963: 3211001009, 1962: 3150420795, 1961: 3091843507, 1960: 3034949748, 1959: 2979576185, 1958: 2925686705, 1957: 2873306090, 1956: 2822443282, 1955: 2773019936, 1954: 2724846741, 1953: 2677608960, 1952: 2630861562}