Coding mit Java | Java-basierten APIs

  • Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am
Status
Für weitere Antworten geschlossen.

PhoenixofForce

Mitglied
29 Juli 2014
90
115
745
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
 
D

Deleted member 16202

Unregistriert
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

DomeHD03

Mitglied
8 Jan. 2016
11
14
168
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.
 
D

Deleted member 16202

Unregistriert
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

mfunGamer

Mitglied
8 Feb. 2016
0
13
125
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:
D

Deleted member 16202

Unregistriert
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

1Darco1

Mitglied
22 März 2014
27
38
273
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

victore99

Mitglied
25 Apr. 2014
1.906
12.805
1.405
24
Nähe Braunschweig
strawpoll.de
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

Ü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