Umsetzen einer Formel in Java

Dieses Thema Umsetzen einer Formel in Java im Forum "Allgemeine Java-Themen" wurde erstellt von gumpo03, 13. Dez. 2016.

Thema: Umsetzen einer Formel in Java Hallo. Ich muss folgende Formel in Java umsetzen: [IMG] M1 und M2 sind jeweils Objekte welche unter anderem die...

  1. Hallo. Ich muss folgende Formel in Java umsetzen:
    [​IMG]
    M1 und M2 sind jeweils Objekte welche unter anderem die Variable
    Code (Text):
    ArrayList<String> schlagwort;
    besitzen. Diese Variable ist gefüllt mit einem oder mehreren tags die dem Objekt angehören und durch diese Formel verglichen werden sollen. Als S muss am Ende eine Zahl herauskommen, welche angibt wie ähnlich sich die Tags sind. Leider habe ich keine Ahnung wie ich diese Formel als Quellcode umsetzen soll. Hat jemand einen Tipp bzw. vll sogar die Lösung mit einer Erklärung warum aus dieser Formel die Lösung hervorgeht?

    Vielen Dank!
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. stg
    stg
    Irgendwelche Ideen wirst du wohl haben. Wenn nicht, dann wenigstens konkrete Fragen zu deiner Aufgabe. Andernfalls unterstelle ich dir einfach, dass du schlicht keine Lust hast es selbst zu machen und darauf hoffst, dass dir hier jemand eine Lösung serviert. Fang einfach mal an und zeige uns, dass du es wirklich selbst machen willst und wo genau du hängen bleibst....
     
    gumpo03 und Robat gefällt das.
  4. Naja ich habe wirklich keine Ahnung wie das funktioniert. Es ist das erste mal, dass ich die Syntax aus einer Formel erstellen soll. Von daher kann ich gerade nur raten wie es funktionieren soll..
    Ich weiß das klingt bescheuert aber ich weiß nichteinmal wie ich mit der Lösungsfindung beginnen soll..
     
  5. Was besagt die Formel die du gepostet hast denn?
    (Wenn du es nicht in Zeichen, sondern in Worten ausdrückst.)
     
    gumpo03 gefällt das.
  6. [​IMG]
    Ok.. So hätte ich früher an das Problem herangehen sollen.. Da hatte ich wohl echt ein Brett vor dem Kopf xD
    Also ich denke es soll folgendes bedeuten:
    Code (Text):
    (4 * Die anzahl der Objekte die sowohl in M1 also auch in M2 vorkommen) /
    (Die Anzahl der Objekte in M1 + die Anzahl der Objekte in M2 - Die anzahl der Objekte die sowohl in M1 als auch in M2 vorkommen)
    Liege ich da richtig?
     
  7. stg
    stg
    Genauso ist es.

    Schaffst du es jetzt eine Funktion mit drei (int-)EIngabeparametern zu schreiben, die das ausrechnet?

    (Um die Listen kümmern wir uns erstmal nicht, wir tun einfach mal so, als kennen wir die Anzahl der Objekte in den jeweiligen Mengen bereits)
     
    gumpo03 gefällt das.
  8. Ja klar ^^. An sich kann ich ja programmieren, ich wusste nur nichts mit der Formel an zu fangen.
    Und ich nutze ArrayList's also sind die Listen kein Problem.
    Danke für eure Hilfe!
     
  9. Ach aber wenn ich gerade hier bin. Kannst du mir vielleicht noch folgende Frage beantworten:
    Weißt du wie und ob es möglich ist bei einer Methode vorgaben zu machen welche Eingabewerte bei der Übergabe möglich sind?
    Bspw folgendermaßen:
    Code (Java):
    public void test(String antwort, int prozent){
    }
    Wobei String nur Ja, Nein und Vielleicht sein darf und prozent zwischen 0 und 100 Liegen muss?
    Das ganze aber nicht innerhalb der Funktion, sondern so dass ich eine Fehlermeldung erhalte wenn ich versuchen würde andere Werte zu nutzen?
    Also zum Verständniss in Pseudosprache:
    Code (Java):
    public void test(String antwort["Ja", "Nein", "Vielleicht"], int prozent[1, 100]){
    }
     
  10. stg
    stg
    Ob ArrayList oder nicht spielt keine große Rolle. Du kannst ja mal versuchen deine Methode ganz allgemein für beliebige Collections zu schreiben.

    Zu deiner letzten Frage:
    Für den ersten Eingabeparameter würde ich dann gar keinen String nehmen, sondern vermutlich ein enum. Für den zweiten kannst du zu Beginn der Methode einfach abfragen, ob prozent im gewünschten Bereich liegt, und wenn nicht, dann eine IllegalArgumentException werfen.
     
  11. Was spricht dagegen direkt zu Beginn der Methode eine Abfrage zu machen und je nach Eingabewert eine Exception zu werfen?
     
  12. Ich hoffe, der Abgabetermin war nicht gestern. Ich kenne nämlich diese Formel. Und dann hattest du 12 Tage Zeit. :rolleyes:

    Zunächst mal musst du mit einem Set arbeiten, also HashSet verwenden und keine ArrayList, weil Schlagwörter nur einmalig vorkommen dürfen.
    Dann arbeite mit der Methode retainAll(...), da kannst du von zwei Sets die Schnittmenge bilden. Mit size() ermittels du dann die Größe M, den Betrag kannst du ignorieren, da es keine negative Größe geben kann.

    Weitere Info: http://www.straub.as/java/certify/collection1.html
     
  13. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!