Berikut adalah pengembalian tahunan untuk dana indeks saham S&P 500 hipotetis untuk setiap tahun kalender dari 1928 hingga 2017, dinyatakan sebagai pengganda. Jadi pada tahun 1928 Anda mungkin mengatakan "indeks naik 37,88%" yang saya wakili di sini oleh 1,3788.
1.3788, 0.8809, 0.7152, 0.5293, 0.8485, 1.4659, 0.9406, 1.4137, 1.2792, 0.6141, 1.2521, 0.9455, 0.8471, 0.8214, 1.1243, 1.1945, 1.138, 1.3072, 0.8813, 1, 0.9935, 1.1026, 1.2178, 1.1646, 1.1178, 0.9338, 1.4502, 1.264, 1.0262, 0.8569, 1.3806, 1.0848, 0.9703, 1.2313, 0.8819, 1.1889, 1.1297, 1.0906, 0.8691, 1.2009, 1.0766, 0.8864, 1.001, 1.1079, 1.1563, 0.8263, 0.7028, 1.3155, 1.1915, 0.885, 1.0106, 1.1231, 1.2577, 0.9027, 1.1476, 1.1727, 1.014, 1.2633, 1.1462, 1.0203, 1.124, 1.2725, 0.9344, 1.2631, 1.0446, 1.0706, 0.9846, 1.3411, 1.2026, 1.3101, 1.2667, 1.1953, 0.8986, 0.8696, 0.7663, 1.2638, 1.0899, 1.03, 1.1362, 1.0353, 0.6151, 1.2345, 1.1278, 1, 1.1341, 1.296, 1.1139, 0.9927, 1.0954, 1.1942
Sumber: https://www.macrotrends.net/2526/sp-500-historical-annual-returns
Tantangan
Diberikan sebagai input:
- susunan pengembalian tahunan (tetapi lihat Aturan 2. di bawah)
- sebuah array dari angka positif (jumlah yang diinvestasikan dalam setiap tahun periode investasi)
menulis sebuah program atau fungsi yang menghasilkan apa yang akan menjadi periode "terbaik" berturut-turut untuk menginvestasikan jumlah dalam , di mana:
- setiap jumlah diinvestasikan pada awal tahun.
- apa pun yang tersisa setelah setiap tahun diinvestasikan kembali pada awal setiap tahun berikutnya.
- "terbaik" berarti jumlah terbesar pada akhir periode tahun
Aturan
Ini adalah kode-golf , sehingga byte paling sedikit di setiap bahasa menang. Aturan standar berlaku. Penjelasan didorong.
Jika Anda tidak menyukai cara saya merepresentasikan array pengembalian tahunan, Anda dapat mengubahnya ke array 90 nomor lainnya yang Anda inginkan.
Anda dapat menampilkan periode tahun terbaik dengan cara yang konsisten (mis. 0-diindeks atau 1-diindeks, tahun pertama dan / atau tahun terakhir yang diinvestasikan, dll.) Tetapi Anda perlu mengatakan apa yang diwakili oleh output Anda jika bukan tidak jelas.
Dalam hal seri, hasilkan salah satu atau semua jawaban yang benar.
Contoh perhitungan
Misalkan .
Jika Anda menginvestasikan jumlah ini pada tahun 1928, 1929, dan 1930 (indeks 1, 2, dan 3), Anda akan berakhir dengan 42743.10. Sedih.
Tetapi jika Anda telah menginvestasikan jumlah tersebut pada tahun 2014, 2015, dan 2016 (indeks 1 87, 88, dan 89) Anda akan berakhir dengan 66722,66. Sedikit lebih baik.
Ternyata periode tiga tahun terbaik untuk menginvestasikan jumlah ini adalah 1995, 1996, dan 1997 (1-indeks 68, 69, dan 70), menghasilkan 91942.91. Bagus.
Uji kasus
1-diindeks, tahun pertama periode optimal
[ 1, 2, 3 ] -> 68
[ 1 ] -> 6
* any array of length 90 * -> 1
[ 1, 1 ] -> 27
[ 1, 2 ] -> 8
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] -> 62
[ 1, 2, 3, 4, 5, 4, 3, 2, 1 ] -> 64
* 1 repeated 20 times * -> 53