我在我的程序中有一個數學公式,它包含0和1之間的兩個值,並且做了很多工作來找到答案。預計算值大表格
我也希望能夠做到相反,即我想知道什麼樣的輸入值會產生一定的輸出。我無法通過分析來做到這一點,因爲無數人都會從衆多的輸入中產生相同的答案,而且公式太複雜。
我的問題是,我目前在做這樣的事情,這需要相當長的計算
for(double i = 0; i <= 1 ; i += 0.0001)
for(double j = 0; j <= 1; j+= 0.0001)
answer = formula(i,j); //do the math
if(Math.abs(answer - answerWanted) < 0.001)
//close match found
看到的公式是靜態的,我肯定可以預先計算這些值。我認爲查找一個值比執行許多計算要快得多。
我從來沒有做過這樣的事情。有誰知道使用什麼數據結構/如何索引/如何存儲結果?目前我唯一的想法是,我可以以某種方式排序答案,以減少搜索空間,或者只是在運行時初始化一個巨大的數組。如果重要,答案只能在0到2000之間。
可能的輸出值的範圍是什麼?什麼類型? – EboMike 2011-04-05 00:58:41
您的輸入是否總是0.0001的倍數? – usul 2011-04-05 03:11:06