[Code] Publikumsjoker -Problem

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Smokers, 21. August 2012 .

Schlagworte:
  1. 21. August 2012
    Publikumsjoker -Problem

    Hi,

    also eigentlich ganz einfach:

    Ich suche einen Algorithmus der den Publikumsjoker von WWM immitiert.

    Der Algo sollte zu 75% die richtige Lösung anzeigen, jedoch in den Prozentzahlen variabel sein. Jemand eine Idee wie man das realisieren könnte? Bin ein wenig überfragt gerade.
     
  2. 21. August 2012
    AW: Publikumsjoker -Problem

    Zufallszahl zwischen 70 und 80 erzeugen und als % ausgeben?
     
  3. 21. August 2012
    AW: Publikumsjoker -Problem

    ähm dann würde jede berechnung immer das richtige ergebnis ausgeben, bzw immer die richtige antwort die mehrheit der stimmen haben.

    ich will aber das die chance das das publikum richtig liegt ungefähr bei 70-75% liegt.

    also das in 10 fällen 3 falsche antworten die mehrheit haben
     
  4. 22. August 2012
    Zuletzt bearbeitet: 22. August 2012
    AW: Publikumsjoker -Problem

    Code:
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    public class Main {
    
     public static void main(String[] args) {
    
     List<Answer> answers = generateAnswers();
    
     addAudienceOpinion(answers, true);
    
     System.out.println("Hier wird das Publiktum richtig liegen: ");
    
     System.out.println(answers);
    
     answers = generateAnswers();
    
     System.out.println("Hier nicht: ");
    
     addAudienceOpinion(answers, true);
    
     System.out.println(answers);
    
     }
    
     private static void addAudienceOpinion(List<Answer> answers,
     boolean audinenceRight) {
     Answer mostVotedAnswer = answers.get(0);
     for (Answer answer : answers) {
     if (answer.getPercentage() > mostVotedAnswer.getPercentage())
     mostVotedAnswer = answer;
     }
    
     if (audinenceRight) {
     mostVotedAnswer.setCorrect(true);
     } else {
     while (true) {
     Answer correctAnswer = answers.get(new Random().nextInt(3) + 1);
     if (correctAnswer != mostVotedAnswer) {
     correctAnswer.setCorrect(true);
     break;
     }
     }
    
     }
    
     }
    
     private static List<Answer> generateAnswers() {
    
     int percentLeft = 100;
    
     List<Answer> answerList = new ArrayList<Answer>();
    
     for (int i = 1; i <= 4; i++) {
     Answer answer;
    
     if (i != 4) {
     answer = new Answer(new Random().nextInt(percentLeft), i);
     } else {
     answer = new Answer(percentLeft, i);
     percentLeft = 0;
     }
    
     answerList.add(answer);
    
     percentLeft -= answer.getPercentage();
     }
    
     return answerList;
     }
    
    }
    
    class Answer {
    
     private boolean correct;
     private int id;
     private int percentage;
    
     public Answer(int percentage, int id) {
     super();
     this.percentage = percentage;
     this.id = id;
     }
    
     public boolean isCorrect() {
     return correct;
     }
    
     public void setCorrect(boolean correct) {
     this.correct = correct;
     }
    
     public int getId() {
     return id;
     }
    
     public void setId(int id) {
     this.id = id;
     }
    
     public int getPercentage() {
     return percentage;
     }
    
     public void setPercentage(int percentage) {
     this.percentage = percentage;
     }
    
     @Override
     public String toString() {
     return "Answer [correct=" + correct + ", id=" + id + ", percentage="
     + percentage + "]\n";
     }
    
    }
    Da packste dir halt noch etwas rein, dass du dass addAudienceOpinion(); nur jedes vierte mal mit "false" aufruft und schon hast dus.

    Der Code ist nicht besonders schön, sollte aber zeigen wie mans machen kann. Gerade zu müde für den Rest
     
    1 Person gefällt das.
  5. 22. August 2012
    AW: Publikumsjoker -Problem

    Code:
    Muster: rand(min, max)
    
    X = rand(0, 1)
    
    A = rand(0, 1)
    B = rand(0, 1 - A)
    C = rand(0, 1 - A - B)
    D = 1 - A - B - C
    
    Wenn X > 0.75 wird der richtigen Antwort die größte Zahl aus A, B, C, D zugewiesen.
    Ansonsten wird der richtigen Antwort willkürlich eine der drei kleinsten Zahlen aus A, B, C, D zugewiesen.

    Die verbleibenden Zahlen können willkürlich auf die anderen Antworten verteilt werden.
     
    1 Person gefällt das.
  6. 22. August 2012
    AW: Publikumsjoker -Problem

    hey danke, das ist mir gute Inspiration.

    Ich muss sehen was wie in "lingo" zu realisieren ist, aber ich denke ich bekomm das schon hin
    dank euch vielmals =)
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.