Suche Sinus Algorithmus

Aufgabenscreen - (Java, Sinus, Algorithmus)

1 Antwort

Du kannst jeden Wert von "low" bis "high" durchgehen, den Sinus berechnen und den Wert dann in einer dann einer Variable "max" zuweisen, falls er größer ist.

public static double maxSinus(int low, int high) {
double max = -2f;
double temp;
for(int i = low; i <= high; i++) {
temp = Math.sin(i);
if(max < temp)
max = temp;
}
return max;
}

Ich kenne mich nicht in JANA aus, also kenne ich auch nicht die Methoden für Sinus. Vielleicht musst du vorher noch von Grad- in Bogenmaß rechnen.

hatte schon so das bauchgefühl, dass es ne For-schleife sein muss^^

Mann vielen vielen dank, du hast mir sehr weitergeholfen! :-)

0

Beim Einfügen in eclipse habe ich noch das Problem mit der Methode, 

"The Selection cannot be launched and there are no recent launches."

was fehlt mir da noch?

0
@MindSet

Eine Klasse mit einer Main-Methode, in der du die maxSinus Funktion aufrufst.

1

Java-Algorithmus zur Berechnung des Buchstabens mit der größten Lücke?

Hallo,

kann mir dabei bitte jemand helfen:

"Ermittle den Buchstaben mit der größten Lücke. Eine Lücke ist die Anzahl der Buchstaben, die verschieden von dem zu untersuchenden Buchstaben ist."

Das bedeutet also, ich soll von einem Text, den ich im Quellcode festlege, den Buchstaben mit dem größten Abstand zum nächsten selben Buchstaben ausgeben.

Ich habe es schon so versucht:

  public static void main(String[] args) {
    String text = "Das ist ein Beispieltext";
    char[] buchstaben = text.toCharArray();
    text.toLowerCase();
  
    int hoechste_a = 0;
    int hoechste_b = 0;
    ...
    int hoechste_z = 0;
  
    int buchstabenfolge_a = 0;
    ...
    int buchstabenfolge_z = 0;
  
    for (int i = 1; i < buchstaben.length; i++) {
      if (buchstaben[i-1] != 'a' && buchstaben[i] == 'a') {
        while (hoechste_a < buchstabenfolge_a) {
          hoechste_a = buchstabenfolge_a;
        }
  
        buchstabenfolge_a = 0;
      }
      else {
        buchstabenfolge_a = buchstabenfolge_a +1;
      }
  
      // Das selbe nochmal mit den anderen Buchstaben.
    }
  
    int beispiel[] = new int[27];
    beispiel[0] = hoechste_a;
    beispiel[1] = hoechste_b;
    ...
    beispiel[26] = hoechste_z;
  
    Arrays.sort(beispiel);

    System.out.println("Der Buchstabe mit der größten Lücke ist: " +beispiel[26]);
  }
}

Das Ganze funktioniert auch, jedoch gibt es nur die Länge der längsten Lücke aus und nicht den Buchstaben.

Ich weiß, dass es bestimmt einen kürzeren Weg gibt. Auf die Schnelle ist mir aber nur das eingefallen.

Wenn mir jemand weiter helfen kann, wäre ich sehr dankbar.

Gruß

...zur Frage

Wie funktioniert QuickSort in Java?

Hi Liebe gutefrage-Community,

ich soll in Informatik ein Refrat über QuickSort halten. Quicksort an sich habe ich verstanden, nur an den Programmbeispielen scheitere ich...

Folgendes Programmbeispiel habe ich gefunden:

public class QuickSorter {

private int n;
private int[] a;
private int max=8;
public QuickSorter()
{
    //a = new int [max+1];
    //fuelle(max);
    //int[] a = { 6, 5, 1, 3, 8, 4 ,7,9,2 };
    //int[] a = { 44, 55, 12, 42, 94, 6 ,18,67};
    int[] a = { 12, 9, 4, 99, 120, 1, 3, 10, 13};
    this.a=a;
    System.out.println("Vorher:");
    System.out.println(java.util.Arrays.toString(a));
    sort(a);
    System.out.println("");
    System.out.println("Nachher:");
    print();
}

public void fuelle(int max)
{
    for (int i = 0; i<=max;i++)
        a[i] = (int) (20.0*Math.random());
}

public void sort(int[] a)
{
    n=a.length;
    quicksort(0, n-1);
}

private void quicksort (int lo, int hi)
{
    int i=lo, j=hi;

    // Vergleichselement x
    int x=a[lo];

    //  Aufteilung
    while (i<=j)
    {    
        while (a[i]<x) i++; 
        while (a[j]>x) j--;
        if (i<=j)
        {
            exchange(i, j);
            i++; j--;
        }

    }
    System.out.println(x);
    System.out.println(java.util.Arrays.toString(a));
    // Rekursion
    if (lo<j) quicksort(lo, j);
    if (i<hi) quicksort(i, hi);
}

private void exchange(int i, int j)
{
    int t=a[i];
    a[i]=a[j];
    a[j]=t;
}

public void print()
{
    System.out.println(java.util.Arrays.toString(a));
    System.out.println("");
    System.out.print("Länge des Arrays:  ");
    System.out.print(n);
    System.out.println(" Zahlen");
}

}

Wenn ich den Ausführe kommt Folgendes raus:

Vorher:
[44, 55, 12, 42, 94, 6, 18, 67]
44
[18, 6, 12, 42, 94, 55, 44, 67]
18
[12, 6, 18, 42, 94, 55, 44, 67]
12
[6, 12, 18, 42, 94, 55, 44, 67]
18
[6, 12, 18, 42, 94, 55, 44, 67]
94
[6, 12, 18, 42, 67, 55, 44, 94]
67
[6, 12, 18, 42, 44, 55, 67, 94]
44
[6, 12, 18, 42, 44, 55, 67, 94]

Nachher:
[6, 12, 18, 42, 44, 55, 67, 94]

Länge des Arrays:  8 Zahlen

Könnte mir bitte wer erklären was hier wo i und j sind ...

Sitze jetzt schon x-Stunden an diesem Referat, verstehe aber die Ausgabe nicht ganz. :(

Würde mich über jede Hilfe freuen.

Mfg Philipp

...zur Frage

Was möchtest Du wissen?