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. gumpo03
    gumpo03 Neues Mitglied
    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 hilft dir das kostenlose Training weiter --> (hier klicken)
  3. stg
    stg Bekanntes Mitglied
    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. gumpo03
    gumpo03 Neues Mitglied
    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. Rubber
    Rubber Mitglied
    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. gumpo03
    gumpo03 Neues Mitglied
    [​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 Bekanntes Mitglied
    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. gumpo03
    gumpo03 Neues Mitglied
    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. gumpo03
    gumpo03 Neues Mitglied
    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 Bekanntes Mitglied
    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. Rubber
    Rubber Mitglied
    Was spricht dagegen direkt zu Beginn der Methode eine Abfrage zu machen und je nach Eingabewert eine Exception zu werfen?
     
  12. mariane
    mariane Mitglied
    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. Schau dir jetzt hier den Kurs an und lerne Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)