我有一個類,它看起來像這樣的程序。獲取在Java中使用求和的函數的反函數
public class Functions {
public static void main(String[] args) {
System.out.println(summationFunction(1)); //Prints 13
System.out.println(summationFunction(2)); //Prints 29
System.out.println(summationFunction(3)); //Prints 48
System.out.println(summationFunction(4)); //Prints 70
}
public static int summationFunction(int input) {
int summedNumber = 0;
int i = input;
while (i > 0) {
summedNumber += i * 3;
i--;
}
return 10 * input + (summedNumber);
}
}
因此,該程序將在一個給定的數量和應用此功能,把它:
而這一切運作良好(我已經運行的類Functions
,一切印刷品一樣它應該。)但是,我需要找到這個函數的反函數,我需要能夠將它翻譯爲代碼;我不知道該怎麼做。
基本上,我需要一個函數將返回這樣的值:
public static void main(String[] args) {
System.out.println(summationFunction(13)); //Prints 1
System.out.println(summationFunction(29)); //Prints 2
System.out.println(summationFunction(48)); //Prints 3
System.out.println(summationFunction(70)); //Prints 4
}
其中,(你可以告訴)是原函數的對面。
所以總結了一切,我需要將回到我原來的函數的反函數(summationFunction
),並我想知道我將如何,對此建模或者如果有一個快速的解決方案碼。
還有一件事:我知道我可以讓方法接受輸入並搜索原始方法的最相似的輸出,但我想看看是否有更簡單的方法來做到這一點,而不是涉及搜索,從而提供更快的輸出速度。如果你願意,你可以安全地假設的倒函數的輸入將始終是一個數字,這將給一個整數輸出,像13,29,48,70,等等
順便說一句,如果你打算低估這個問題,你會至少在某個地方給出一個理由嗎?或許這些評論?我看不出有任何理由認爲這個問題有資格被低估,而有一個原因會有所幫助。
啊。我以前從未聽說過Wolfram。感謝您和@talex提供資源和更好的描述! –