Katakanlah saya memiliki daftar nilai curah hujan per jam, masing-masing menunjukkan berapa banyak hujan yang terjadi dalam 24 jam sebelumnya, yang dipesan berdasarkan tanggal. Sebagai contoh:
{
'2012-05-24 12:00': 0.5, // .5" of rain from 5/23 12:00 - 5/24 11:59
'2012-05-24 11:00': 0.6, // .6" of rain from 5/23 11:00 - 5/24 10:59
'2012-05-24 10:00': 0.6, // .6" of rain from 5/23 10:00 - 5/24 09:59
...
'2012-05-23 10:00': 0
}
Apakah ada strategi / algoritma untuk menentukan berapa banyak hujan turun di setiap jam? Saya tidak bisa membungkus kepala saya dengan ini. Saya tahu itu tidak sesederhana hanya menjumlahkan diff.
Visualisasi Dataset
P(N) [.....======================]
P(N-1) [....======================.]
P(N-2) [...======================..]
P(N-3) [..======================...]
I want [..........................=]
Terima kasih banyak atas bantuannya.
algorithms
functional-programming
functions
Mike Griffith
sumber
sumber
P(N-x)
Anda tambahkan, jadi pada akhirnya jumlah persamaan dan tidak diketahui bahkan keluar sendiri lagi.Jawaban:
Dengan asumsi bahwa kumpulan data selalu terdiri dari jendela 24 jam berturut-turut (yaitu, titik data pertama bukan jendela 1 jam) ...
Ini bukan masalah yang dapat dipecahkan setidaknya dalam kasus umum karena ada contoh tandingan di mana setidaknya dua pola hujan dipetakan ke satu set data.
Dalam kedua kasus, Anda
P(N) = 24"
untuk semuaN
.Karena tidak ada satu skenario yang dapat diturunkan dari kumpulan data yang satu ini, masalahnya tidak dapat dipecahkan dalam arti umum.
Selain itu, kami juga dapat menunjukkan bahwa masalahnya tidak selalu benar bahwa masalahnya selalu tidak dapat diselesaikan. Paling sederhana, jika
P(N) = 0"
untuk semuaN
, hanya ada satu pola hujan yang memungkinkan untuk memperhitungkannya: hujan nol inci setiap jam.Oleh karena itu masalah yang lebih menarik untuk mengidentifikasi karakteristik apa dari kumpulan data yang membuat masalah dapat dipecahkan. Sepele, jika Anda memiliki satu set data dengan setidaknya
N
ituP(N) = 0"
, maka Anda punya solusi.Saya tidak akan terkejut jika ada properti lain yang akan membuat masalah terpecahkan untuk kumpulan data yang diberikan. Menemukan itu harus menjadi tantangan yang menyenangkan. Pada saat yang sama, membuktikan bahwa tidak ada yang bisa ada sama menghiburnya.
sumber
Anda perlu mengulang melalui data sampai Anda menemukan 0 periode presipitasi maka Anda menghitung maju dari titik itu seperti yang dijelaskan SnOrus. Jika tidak ada titik data 0 maka saya tidak berpikir ini bisa diselesaikan kecuali jika Anda menentukan entri paling awal menjadi 1 jam setelah awal waktu sehingga poin lebih awal dari yang tidak ditentukan.
mungkin juga untuk menghitung mundur dalam waktu dari pembacaan 0, melakukan hal yang sama secara terbalik (meskipun Anda akan mendapatkan setidaknya 24 0s berturut-turut.
sumber
... harus memberi Anda jumlah hujan dalam satu jam sebelum
P(n)
.sumber
Ini bukan jawaban yang lengkap, saya sedang bekerja dan sudah menghabiskan banyak waktu untuk itu ... lebih lanjut saya perlu lebih banyak data untuk melihat apakah firasat saya benar.
Sebut P (x) ukuran 24 jam pada waktu x.
Pertimbangkan skenario tumpang tindih berikut:
P (X) - P (X-1) + H25 = H1.
Jadi, Anda perlu menghitung H25. Saya percaya bahwa solusinya akan beristirahat di suatu tempat dalam sistem yang dibuat dari P (X), P (X-1), dan P (X-24).
sumber
Selama dua jam berturut-turut n (sekarang) dan n-1 (jam sebelum sekarang), Anda memiliki jumlah curah hujan 24 jam (T) yang terdiri dari 24 angka presipitasi per jam (P):
Begitu:
(Istilah P (n-1) ... P (n-23) diduplikasi dalam T (n) dan T (n-1), jadi dengan menguranginya memberi 0.) Mengatur ulang, Anda mendapatkan:
Sekarang, Anda tidak dapat mengetahui apa P (n) kecuali Anda tahu apa P (n-24). Anda dapat melangkah lebih jauh ke belakang dalam data untuk menghitung P (n-24), tetapi untuk mendapatkan itu Anda membutuhkan P (n-25) dan seterusnya pada infinitum iklan. Jadi, yang Anda butuhkan adalah nilai presipitasi untuk setiap jam yang lebih lama dari 24 jam. Jika sudah, Anda dapat menghitung curah hujan setiap jam untuk semua jam berikutnya.
sumber