Trong xkcd 1047 , Randall Munroe danh sách "hơi sai" xấp xỉ của các loại với số lượng và số với độ chính xác và độ phức tạp khác nhau, chẳng hạn như số lượng lít trong một gallon là rất gần với 3 + π / 4 . Ở giữa truyện tranh, anh đưa ra một đoạn: một cách để ước tính dân số thế giới (và Hoa Kỳ) dựa trên một năm nhất định.
(Cắt từ xkcd: Xấp xỉ của Randall Munroe)
Nhiệm vụ của bạn là viết một chương trình thực hiện các công thức này để xấp xỉ thế giới hiện tại và dân số Hoa Kỳ, được nhân rộng như sau.
Dân số thế giới
- Lấy hai chữ số cuối của năm hiện tại.
- Trừ đi số năm nhuận (bao gồm cả năm hiện tại) kể từ cơn bão Katrina (2005). Đối với các mục đích này, bất kỳ năm nào chia hết cho 4 được coi là một năm nhuận.
- Thêm một dấu thập phân giữa hai số (giống như chia cho 10).
- Thêm 6. Điều này mang lại kết quả trong hàng tỷ người.
Dân số Hoa Kỳ
- Lấy hai chữ số cuối của năm hiện tại.
- Trừ 10.
- Nhân với 3.
- Thêm 10.
- Thêm 3 vào đầu (đối với thử thách này, một số số sẽ âm, vì vậy hãy thêm 300 thay vào đó). Bằng cách nào đó tôi đã không nhận thấy rằng chỉ ghép nối sẽ không hoạt động vì chương trình tôi đã sử dụng để tạo kết quả chỉ cần thêm 300.
- Điều này mang lại kết quả trong hàng triệu người.
Chi tiết
Công thức này "nên duy trì hiện tại trong một hoặc hai thập kỷ", nhưng bạn phải có khả năng xử lý về mặt lý thuyết bất kỳ năm 2000 20002020. Đối với một số trường hợp, những năm nhuận kể từ Katrina sẽ có giá trị âm hoặc bằng không.
Bạn có thể tự do đơn giản hóa công thức theo bất kỳ cách nào, miễn là tất cả các kết quả đầu ra khớp với các công thức dưới đây.
Đối với năm, sử dụng năm theo đồng hồ của máy tính. Nó phải hoạt động vào năm tới và bất kỳ năm nào khác trong thế kỷ này, vì vậy bạn không thể đơn giản là mã cứng 2015. Để thuận tiện, bạn có thể muốn bao gồm một cách để chỉ định năm là một biến hoặc đầu vào để kiểm tra các năm khác.
Đầu ra phải là dân số thế giới xấp xỉ (tính bằng tỷ người), theo sau là một số dấu phân cách (ví dụ: dấu cách hoặc dấu phẩy), tiếp theo là dân số Hoa Kỳ (tính bằng triệu người). Bạn cũng có thể viết một hàm trả về hoặc in một chuỗi hoặc một mảng các số hoặc chuỗi.
Đây là mã golf, vì vậy mã ngắn nhất trong byte thắng. Tiebreaker là bài sớm nhất.
Các trường hợp thử nghiệm
Đây là danh sách tất cả các năm có thể, tiếp theo là hai đầu ra.
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
, không nên 2040
cho dân số 3100
? 40 - 10 = 30
, 30 * 3 = 90
, 90 + 10 = 100
, Mà sẽ cung cấp"3" + "100" = 3100
280
là kết quả của -20+300=280
và không 3 . -20= "3-20"
)