Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Das kann ziemlich kompliziert werden. Wofür braucht man sowas? Ich denke gerade noch über eine geeignete Methode nach.

Ich hab auch grad Ideen, die ich versuche umzusetzen, aber dann verwerfe, weil es zu aufwendig ist. Ich möchte Programm machen, wo ich die Zeit von einem Video eingebe und es stellt mir die Musik so zusammen, dass die Länge der Musik möglichst der des Videos entspricht
 
Ich hab auch grad Ideen, die ich versuche umzusetzen, aber dann verwerfe, weil es zu aufwendig ist. Ich möchte Programm machen, wo ich die Zeit von einem Video eingebe und es stellt mir die Musik so zusammen, dass die Länge der Musik möglichst der des Videos entspricht
Die Idee mag ich. Es ist vielleicht nicht vollständig, aber würde es nicht reichen, wenn man zufällig arbeitet. Man testet dabei zwar nicht alle Möglichkeiten, kommt aber einfacher davon. Man berechnet erstmal den Durchschnittswert der Liste, dann kann man abschätzen wie viele Lieder man ungefähr braucht (das nennen wir mal n), um das Video zu füllen.
Dann wählt man n-Lieder zufällig aus, addiert diese und speichert den Wert. Wenn man das so ca. 100 Mal (das kannst du auch verändern, je nachdem wie lange das braucht, je öfters desto genauer)gemacht hat, sollten schon recht gute Ergebnisse herauskommen. Die Zufallszahlen solltest du noch vorher überprüfen, damit du nicht einmal das gleiche Lied zweimal miteinberechnest.

Kannst du mir dann sagen, wenn es funktioniert und wie gut es funktioniert?
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: PhoenixofForce
Warum wird man in Bedwars eigentlich erst in die Lobby teleportiert und anschließend zum Teamspawn? Wäre es nicht resourcensparender, gleich den Teamspawn als Playerspawn zu setzen, da so die Wartelobby nicht mehr gebraucht werden würde.
 
Was sagt das Buch, denn was du machen sollst? Ich kann mir denken was der Fehler ist, bin aber noch unsicher.


Ich habe aber eine andere Frage, wenn eine ArrayList von Integern gegeben ist, wie kann man am besten daraus alle möglichen Summen bilden?
So ich habs glaube ich. Das braucht aber alleine schon bei 10 Listenelementen dermaßen lange, dass es sich nicht lohnt, das zu verwenden, außer du willst deinen Computer die ganze Nacht durchrechnen lassen.
Ich habs dir trotzdem mal als External Jar verpackt.
SummenListe.jar
MD5: ABE9553762228F78289B36CD96EACC1F
SHA-1: 0E72E80A986462BBC0895C546C0EEBA21DBA474D
SHA-256: 987FF7B7ABF56672E85B698829F7551DFF978C296F8282AFCE7529587937E3F7
SHA-512: FC3153DD019788F93D060A1FA94F5DB44F107E908A374EEB017558BE01A3B8D91D6DB569A437F4BBD8D974DA3DD6909B113084779DC391E956AB02B2FC20E0AC
Und hier den Sourcecode_
Code:
package listSum;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ListSum {

   public static List<Integer> getEverySumSorted(List<Integer> list) {
     List<Integer> sumList = getEverySum(list);
     List<Integer> sumListCl = deleteDuplicates(sumList);
     Collections.sort(sumListCl);
     return sumListCl;
   }
 
   public static List<Integer> getEverySum(List<Integer> numList){
     List<Integer> sumList = new ArrayList<>();
     for(int countSummands = 2; countSummands < numList.size(); countSummands++){
//System.out.println(" Array: " + countSummands);
       int[] summands = new int[countSummands];
       Arrays.fill(summands, 0);
       while(summands[0] < numList.size()){
//System.out.println(" Array: " + countSummands + " - "+ Arrays.toString(summands));
         int tempSum = 0;
         //calculate the sum
         for(int i = 0; i < summands.length; i++){
           tempSum+= numList.get(summands[i]);
         }
         if(!hasDuplicated(summands)){
//           System.out.println("");
           sumList.add(tempSum);
//System.out.println(" Accepted!");
         } else {
//System.out.println(" Blocked! ");
         }
         //increase Counter [0][1][length-1]
         summands[summands.length-1]++;
         for(int i = summands.length - 1; i > 0; i--){
//System.out.println(i);
           if(summands[i] >= numList.size()){
             summands[i] = 0;
             summands[i-1]++;
//System.out.println("increased");
           }
         }
       }
//System.out.println("Out of while");
     }
   
     //last sum, every number
     int compSum = 0;
     for(int i = 0; i < numList.size(); i++){
       compSum += numList.get(i);
     }
     sumList.add(compSum);
   
     return sumList;
   }
 
   private static boolean hasDuplicated(int[] arr){
     String str = " ";
     for(int i = 0; i < arr.length; i++){
       str += (arr[i] + " ");
     }
//System.out.println(str);
     for(int i = 0; i < arr.length; i++){
       if(!(str.indexOf(" " + arr[i] + " ") == str.lastIndexOf(" " + arr[i] + " ")))
         return true;
     }
     return false;
   
   }

   private static List<Integer> deleteDuplicates(List<Integer> numList){
     List<Integer> numListCl = new ArrayList<>();
     for(int i = 0; i < numList.size(); i++){
       if(numListCl.contains(numList.get(i)))
         continue;
       else
         numListCl.add(numList.get(i));
     }
     return numListCl;
   }
 
}
 
  • Like
Reaktionen: PhoenixofForce
So ich habs glaube ich. Das braucht aber alleine schon bei 10 Listenelementen dermaßen lange, dass es sich nicht lohnt, das zu verwenden, außer du willst deinen Computer die ganze Nacht durchrechnen lassen.
Ich habs dir trotzdem mal als External Jar verpackt.
SummenListe.jar
MD5: ABE9553762228F78289B36CD96EACC1F
SHA-1: 0E72E80A986462BBC0895C546C0EEBA21DBA474D
SHA-256: 987FF7B7ABF56672E85B698829F7551DFF978C296F8282AFCE7529587937E3F7
SHA-512: FC3153DD019788F93D060A1FA94F5DB44F107E908A374EEB017558BE01A3B8D91D6DB569A437F4BBD8D974DA3DD6909B113084779DC391E956AB02B2FC20E0AC
Und hier den Sourcecode_
Code:
package listSum;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ListSum {

   public static List<Integer> getEverySumSorted(List<Integer> list) {
     List<Integer> sumList = getEverySum(list);
     List<Integer> sumListCl = deleteDuplicates(sumList);
     Collections.sort(sumListCl);
     return sumListCl;
   }

   public static List<Integer> getEverySum(List<Integer> numList){
     List<Integer> sumList = new ArrayList<>();
     for(int countSummands = 2; countSummands < numList.size(); countSummands++){
//System.out.println(" Array: " + countSummands);
       int[] summands = new int[countSummands];
       Arrays.fill(summands, 0);
       while(summands[0] < numList.size()){
//System.out.println(" Array: " + countSummands + " - "+ Arrays.toString(summands));
         int tempSum = 0;
         //calculate the sum
         for(int i = 0; i < summands.length; i++){
           tempSum+= numList.get(summands[i]);
         }
         if(!hasDuplicated(summands)){
//           System.out.println("");
           sumList.add(tempSum);
//System.out.println(" Accepted!");
         } else {
//System.out.println(" Blocked! ");
         }
         //increase Counter [0][1][length-1]
         summands[summands.length-1]++;
         for(int i = summands.length - 1; i > 0; i--){
//System.out.println(i);
           if(summands[i] >= numList.size()){
             summands[i] = 0;
             summands[i-1]++;
//System.out.println("increased");
           }
         }
       }
//System.out.println("Out of while");
     }

     //last sum, every number
     int compSum = 0;
     for(int i = 0; i < numList.size(); i++){
       compSum += numList.get(i);
     }
     sumList.add(compSum);

     return sumList;
   }

   private static boolean hasDuplicated(int[] arr){
     String str = " ";
     for(int i = 0; i < arr.length; i++){
       str += (arr[i] + " ");
     }
//System.out.println(str);
     for(int i = 0; i < arr.length; i++){
       if(!(str.indexOf(" " + arr[i] + " ") == str.lastIndexOf(" " + arr[i] + " ")))
         return true;
     }
     return false;

   }

   private static List<Integer> deleteDuplicates(List<Integer> numList){
     List<Integer> numListCl = new ArrayList<>();
     for(int i = 0; i < numList.size(); i++){
       if(numListCl.contains(numList.get(i)))
         continue;
       else
         numListCl.add(numList.get(i));
     }
     return numListCl;
   }

}

Geht nicht einfach:
Code:
        ArrayList<Integer> zahlen = new ArrayList<Integer>();
     
        ArrayList<Integer> summen = new ArrayList<Integer>();
     
        for(int x = 0;x<zahlen.size();x++){
            int y = x+1;
            while(y<zahlen.size()){
                if(! (summen.contains( (zahlen.get(x)+zahlen.get(y)) ) )){
                    summen.add(zahlen.get(x)+zahlen.get(y));
                }
                y++;
            }
        }
     
        for(int z = 0; z<summen.size();z++){
            System.out.println(summen.get(z));
        }

Oder habe ich die Frage falsch verstanden?


Hey c: Ich hoffe ihr könnt mir helfen :D *Ich benutze Eclipse*
Ich lerne Java mit einem Buch und indem Buch soll man bestehende Projekte "importieren". Nun, alles gut, was ist das Problem?
Ich mache alles, was das Buch sagt, aber dennoch klappt es nicht.

Hier mal ein Screen: http://prntscr.com/al0kkt

Ich hoffe ihr könnt mir helfen c:

Lg.

Sind das bestehende Eclipse Projekte oder einfach nur Projekte?
 
Zuletzt bearbeitet:
Geht nicht einfach:
Code:
        ArrayList<Integer> zahlen = new ArrayList<Integer>();
    
        ArrayList<Integer> summen = new ArrayList<Integer>();
    
        for(int x = 0;x<zahlen.size();x++){
            int y = x+1;
            while(y<zahlen.size()){
                if(! (summen.contains( (zahlen.get(x)+zahlen.get(y)) ) )){
                    summen.add(zahlen.get(x)+zahlen.get(y));
                }
                y++;
            }
        }
    
        for(int z = 0; z<summen.size();z++){
            System.out.println(summen.get(z));
        }

Oder habe ich die Frage falsch verstanden?
Der funktioniert mit 2 Summanden, er wollte aber glaube ich mehr.
Wenn du dann ein Video mit 20 Minuten hast, reichen 2 Lieder nicht aus.
 
  • Like
Reaktionen: mfunGamer
Hat jemand von euch schonmal versucht, mit Java sich automatisch hier im Forum (per POST-Request) anzumelden?
Ich erinnere mich noch schwach an die ForumDevGroup, die damals soetwas wie ein Report-Bot hatte, den man per Befehl einfach einen Chatlog reporten lassen konnte. Ich wollte das nun auch versuchen, der Aufruf der Login-Seite (per GET, https://gommehd.net/login) bricht aber mit ResponseCode 403 ab. Ich bin mir nicht sicher, ob der CloudFlare Schutz dabei eine Rolle spielt, deswegen die Frage, ob es jemand von euch mal in letzter Zeit sowas auch versucht / geschafft hat.

[...]

Ja ja ja, da hatten wir mal was gemacht. Ich persönlich war da nie involviert. Den Vorstellungsthread finde ich auch nicht mehr, aber vielleicht kann dir ja @Maxthat, unser Lead-Web-Dev und PR-Manager, helfen ;)
 
  • Like
Reaktionen: Maxthat
Hallo Leute,

ich habe eine ArrayList aus Strings Namens Liste, und die will ich verdoppeln, dh. dass es eine zweite ArrayList mit genau demselben Inhalt gibt.

wenn ihr da daten braucht, sagt bescheid.

mfg victore99
 
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop