0
我需要生成的元組的一個無限流,其滿足方程的無限流:生成元組
2 * A * A + B * B = C * C
我我剛從java 8開始,我不確定如何實現這一點。 我對元組的接口:
public interface Tuple {
/**
* @return The value of A
*/
int getA();
/**
* @return The value of B
*/
int getB();
/**
* @return The value of C
*/
int getC();
}
到目前爲止我有這樣的方法:
public static Stream<Tuple> generateABCTuples() {
Supplier<Tuple> aTuple = (Supplier<Tuple>) generateABCTuples();
Stream<Tuple> myList = Stream.generate(aTuple)
.sorted();
return myList;
}
但是,我不能確定如何滿足上述公式。 任何幫助,這是非常感謝。
這似乎是少談Java語言和'Stream' API和更多_math_。 – 2015-04-01 00:56:18
這似乎也寫出了最基本的部分,並把作業的困難部分留給我們。並且不要命名流'myList'。 – Teepeemm 2015-04-01 01:51:15
我認爲這很難做'Stream.generate()'。你可以用Stream.iterate()來完成。想想如何使用三個嵌套循環找到等式的所有解,然後根據這個想法編寫一個實例方法'Tuple next(){...}'。然後,您可以使用Stream.iterate(新元組(0,0,0),元組::下一個);''獲得所有可能解決方案的無限流。 – 2015-04-01 02:12:44