Subato

Resource Files

Stream der Fibonaccizahlen

Schreiben Sie in dieser Aufgabe Methoden, die Stream-Objekte für die Fibonaccizahlen erzeugen.

  • Stream<TwoLong> fibPairs();
    es soll der unendliche Stream erzeugt werden, aus Elementen der Klasse TwoLong, so dass in den Paaren immer zwei Fibonaccizahlen stehen entsprechend der folgenden Auflistung:
    $(0,1),(1,1),(1,2),(2,3),(3,5),(5,8),(8,13),(13,21),\dots$
  • Stream<Long> fibs():
    Dieses soll der unendliche Stream aller Fibonaccizahlen sein. Die erste sei dabei die 0.
  • Stream<Long> fibs100()
    Dieser Stream soll über die ersten 100 Fibonaccizahlen iterieren.
  • long fib(int i);
    Es soll die i-te Fibonaccizahl berechnet werden. für $i=1$ sei das Ergebnis die Zahl 0.

In dieser Aufgabe wird ein Java 15 preview Feature verwendet: record. Der innere Record TwoInt entspricht der Klasse:

class TwoLong{
  private long _i1;
  private long _i2;     
  public TwoLong(long i1, long i2){
    _i1 = i1;
    _i2 = i2;
  }
  public long i1(){return _i1;}
  public long i2(){return _i2;}
}

Zusätzlich werden toString, equals und hashcode passend generiert.


import java.util.stream.*; class FibStream{ static public Stream<TwoLong> fibPairs(){ //TODO return null; } static public Stream<Long> fibs(){ //TODO return null; } static public Stream<Long> fibs100(){ //TODO return null; } static public long fib(int n){ //TODO return 0L; } }
java