Heim  >  Artikel  >  Java  >  Beispiel für die Implementierung des Affenfresser-Pfirsich-Problemalgorithmus in Java

Beispiel für die Implementierung des Affenfresser-Pfirsich-Problemalgorithmus in Java

黄舟
黄舟Original
2017-10-18 10:24:191955Durchsuche

In diesem Artikel wird hauptsächlich der in Java implementierte Algorithmus zum Affenessen-Pfirsich vorgestellt. Er beschreibt kurz das Affenfress-Pfirsichproblem und kombiniert es mit Beispielen, um spezifische Implementierungstechniken zur Lösung des Affenfress-Pfirsichproblems in Java bereitzustellen siehe es

Das Beispiel in diesem Artikel beschreibt den in Java implementierten Algorithmus zum Problem „Affen essen Pfirsiche“. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

Affenfresser-Pfirsichproblem

Übersicht: Der Affe pflückte am ersten Tag N Pfirsiche und aß die Hälfte Davon war ich immer noch nicht zufrieden, am nächsten Tag aß ich die Hälfte der restlichen Pfirsiche und von nun an aß ich jeden Tag die Hälfte und einen Pfirsich Ich habe erst am 10. Tag darüber nachgedacht. Als wir aßen, war nur noch ein Pfirsich übrig. Wie viele Pfirsiche wurden am ersten Tag gepflückt?

Dinge und Berechnungsschritte (der funktionale Ausdruck, um herauszufinden, wie viele Pfirsiche insgesamt gepflückt werden):

Die Anzahl der Tage von jetzt an wird als Variable verwendet

f (1) = 1 (verbleibende Anzahl Pfirsiche)
f(2) = f(3) - (einige gegessen) = f(3) -(f(3)/2+1) = f(3)/ 2-1
....
f(n) = f(n+1)/2-1 (Rekursionsformel)

So können wir die Rekursionsformel erhalten:

f(n -1) = f(n)/2-1 => 2f(n-1) = f(n) - 2 => Das ist es, was wir wollen: Die Formel von )

Dann können Sie die Gesamtzahl der vom Affen gepflückten Pfirsiche in beliebig vielen Tagen in der Zukunft ermitteln!

Zum Beispiel bedeutet f(10) in 10 Tagen (die Anzahl der Pfirsiche, die der Affe vor 10 Tagen hatte)!

Der spezifische Code ist unten angegeben:


package javastudy;
import java.util.Scanner;
public abstract class Testit2 {
  // 猴子吃桃问题
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int n;
    n = in.nextInt();
    System.out.println(f(n));
    in.close();
  }
  static int f(int n) {
    if (n == 1)   //离现在只有一天的时候那就只剩下一个!
    return 1;
    return 2 * f(n - 1) + 2;
  }
}

Das obige ist der detaillierte Inhalt vonBeispiel für die Implementierung des Affenfresser-Pfirsich-Problemalgorithmus in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn