AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Denkanstoß: Brauche gewichtete "Zufallszahlen"
Thema durchsuchen
Ansicht
Themen-Optionen

Denkanstoß: Brauche gewichtete "Zufallszahlen"

Ein Thema von guidok · begonnen am 22. Nov 2007 · letzter Beitrag vom 22. Nov 2007
 
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#1

Denkanstoß: Brauche gewichtete "Zufallszahlen"

  Alt 22. Nov 2007, 06:31
Datenbank: NexusDB • Zugriff über: NexusDB
Hm, ich brauche mal einen kleinen Denkanstoß für einen Vokabeltrainer.

Problem:

-Vokablen sollen aus einer DB zufällig abgefragt werden.
-Es soll für jede Vokabel einen "Übungslevel" geben.
-Wird eine Vokabel richtig übersetzt dann steigt der Übungslevel
-Wird eine Vokabel falsch übersetzt dann fällt der Übungslevel
-Vokabeln mit niedrigem Übungslevel werden öfter abgefragt
-Vokabeln mit hohem Übungslevel werden seltener abgefragt

Also so eine Art "Lernen mit Karteikasten".

Gesucht ist nun eine elegante Methode dies softwaretechnisch umzusetzen.

-Ich möchte idealerweise bei richtiger oder falscher Antwort einfach etwas addieren oder subtrahieren müssen (innerhalb einer Bereiches natürlich)
-Ich möchte per SQL-Abfrage (darum in der Spalte Datenbank) eine zufällig bestimmte Vokabel mit der richtigen Häufigkeit abrufen können (möglichst simpel).

Die Tabelle stelle ich mir ungefähr so vor:

USER INT //für eine Benutzer-ID, da für mehrere Benutzer mit eigenen Vokabeln
LANG INT //für eine Sprach-Kennung, da für mehrere Sprachen offen
NATIVE VARCHAR //das Wort in der Muttersprache
FOREIGN VARCHAR //das Wort in der Fremdsprache
LEVEL INT //der Übungslevel
LAST DATE //Datum der letzten Abfrage

Für die gewichtete Zufallszahl dachte ich mir einen Bereich festzulegen, z.B. 1-14

1-5 = Level 1
5-8 = Level 2
9-11 = Level 3
12-13 = Level 4
14 = Level 5

Damit sollte ich Vokabeln im Level 1 öfter zufällig ausgewählt bekommen, als eine Vokabel im Level 5.

Ich kann dann zwar bei richtiger Antwort einfach addieren, bis 14 erreicht ist, wenn ich aber diesen Wert in der DB speichere, dann müsste ich bei der SQL-Abfrage für eine Vokabel im Level 1 beispielsweise schreiben WHERE LEVEL=1 OR LEVEL=2 OR LEVEL=3 OR LEVEL=4 OR LEVEL=5. Finde ich jetzt nicht elegant. Das geht bestimmt besser.

Hat jemand eine Idee?

Gruß,
Guido
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz