AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei nem Algorythmus

Ein Thema von Reloaded · begonnen am 26. Aug 2003 · letzter Beitrag vom 26. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
Reloaded

Registriert seit: 25. Aug 2003
4 Beiträge
 
#1

Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 01:38
Hiho, ich bin Reloaded und relativer Delphinoob.

Habe da ein Problem. Brauche nen Algorythmus der 7 zufällige Zahlen miteinander vergleicht, und wenn eine Zahl doppelt vorkommt, der diese in ne andere zufällige Zahl umändert. Das heißt am Ende sollen halt 7 verschiedene Zahlen rauskommen. Habs den ganzen Abend probiert und es ums verrecken nicht hinbekommen. Wäre nett wenn mir jemand mir helfen könnte. Sorry wenns ne Noobfrage ist, aber alle Ansätze von mir funzen leider nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 01:45
OK. Hier ein Ansatz:
Du schreibst dir eien Funktion, die dir eine Zufallszahl zurückliefert. Diese trägst du nun in ein Array mit 7 elementen ein, doch bevor du dies tust, durchläufst du das Array und kuckst, ob sie nicht schon vorhanden ist. Ist sie schon vorhanden, rufst du deine Funktion für die Zufallszahlen noch mal auf, ist sie nicht vorhanden, trägst du sie ein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#3

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 07:26
Hallo Reloaded,
ist es sowas, was Du suchst?
Delphi-Quellcode:
procedure CreateRandomNumbers(var A: array of Integer;
                              HighNumber: Integer = 49;
                              ZeroNumber: Boolean = False);
var
  I: Integer;

  function CheckDouble(const A: array of Integer; Position: Word): Boolean;
  var
    I: Integer;
  begin
    Result := False;
    for I := Low(A) to High(A) do
    begin
      if I = Position then
        Continue;
      if A[I] = A[Position] then
      begin
        Result := True;
        Break;
      end;
    end;
  end;

begin
  ZeroMemory(@A, SizeOf(A));
  for I := Low(A) to High(A) do
  begin
    if ZeroNumber then
      repeat
        A[I] := Random(HighNumber) + 1;
      until not CheckDouble(A, I)
    else
      repeat
        A[I] := Random(HighNumber) + 1;
      until (A[I] <> 0) and (not CheckDouble(A, I));
  end;
end;
"Randomize" sollte vor dem Aufruf der Funktion erfolgen.
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#4

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 09:08
Letzte Woche hattten wir die selbe Frage schonmal von jemand anders, begib dich mal auf die Suche. Läuft aber auf den Weg von Luckie hinaus.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 09:18
Hier ist der Link, den Tpercon gemeint hat. Dann musst du nicht danach suchen.

http://www.delphipraxis.net/internal...=zufallszahlen

Gruß Matze
  Mit Zitat antworten Zitat
Reloaded

Registriert seit: 25. Aug 2003
4 Beiträge
 
#6

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 12:01
Danke für die Hilfe, ich bastel dann mal weiter.

Nachtrag:So hab hier ne ganz leichte Lösung da das mit den Arrays bei mir nicht so geklappt hat, bissel umständlich aber egal :
Delphi-Quellcode:
begin
repeat
random;
Zahl1 := Random(48 )+1;
Label1.Caption := InttoStr(Zahl1);
Zahl2 := Random(48 )+1;
Label2.Caption := InttoStr(Zahl2);
Zahl3 := Random(48 )+1;
Label3.Caption := InttoStr(Zahl3);
Zahl4 := Random(48 )+1;
Label4.Caption := InttoStr(Zahl4);
Zahl5 := Random(48 )+1;
Label5.Caption := InttoStr(Zahl5);
Zahl6 := Random(48 )+1;
Label6.Caption := InttoStr(Zahl6);
Zahl7 := Random(48 )+1;
Label7.Caption := InttoStr(Zahl7);
Ungleichheit:=True;

//Zahl1
if Zahl1 = Zahl2
then Ungleichheit := False;
if Zahl1 = Zahl3
then Ungleichheit := False;
if Zahl1 = Zahl3
then Ungleichheit := False;
if Zahl1 = Zahl4
then Ungleichheit := False;
if Zahl1 = Zahl5
then Ungleichheit := False;
if Zahl1 = Zahl6
then Ungleichheit := False;
if Zahl1 = Zahl7
then Ungleichheit := False;

//Zahl2
if Zahl2 = Zahl3
then Ungleichheit := False;
if Zahl2 = Zahl4
then Ungleichheit := False;
if Zahl2 = Zahl5
then Ungleichheit := False;
if Zahl2 = Zahl6
then Ungleichheit := False;
if Zahl2 = Zahl7
then Ungleichheit := False;

//Zahl3
if Zahl3 = Zahl4
then Ungleichheit := False;
if Zahl3 = Zahl5
then Ungleichheit := False;
if Zahl3 = Zahl6
then Ungleichheit := False;
if Zahl3 = Zahl7
then Ungleichheit := False;

//Zahl4
if Zahl4 = Zahl5
then Ungleichheit := False;
if Zahl4 = Zahl6
then Ungleichheit := False;
if Zahl4 = Zahl7
then Ungleichheit := False;

//Zahl5
if Zahl5 = Zahl6
then Ungleichheit := False;
if Zahl5 = Zahl7
then Ungleichheit := False;

//Zahl6
if Zahl6 = Zahl7
then Ungleichheit := False;

until Ungleichheit;
end;
[edit=Luckie]Quote-Tags durch Delphi-Tags ersetzt. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#7

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 14:12
Hallo
jetzt noch einmal mit Beispielprogramm ...
bye
Angehängte Dateien
Dateityp: zip random_zahlen_271.zip (224,5 KB, 5x aufgerufen)
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#8

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 14:20
Zitat von Reloaded:
Zitat:
begin
repeat
random;
Zahl1 := Random(48 )+1;
False;

until Ungleichheit;
end;
Was soll das random; am Anfang? Das bringt doch da garnichts.
Wo lag denn das Problem bei den Arrays? Ist ja so echt viel zu umständlich.
  Mit Zitat antworten Zitat
Reloaded

Registriert seit: 25. Aug 2003
4 Beiträge
 
#9

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 15:38
Keine Ahnung. Hab ich so im Infokrus gelernt, aber wenn man es nicht braucht. Auch gut. MIt den Arrays hat irgendwie nicht gefunzt. Der hatte mir da immer massig Fehlermeldungen reingekloppt.
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#10

Re: Hilfe bei nem Algorythmus

  Alt 26. Aug 2003, 15:46
Randomize solltest du beim Start (Form Create) einmal aufrufen!
Dann fang mal an mit den Fehlermeldungen! Da wird dir sicherlich auch geholfen, diese Lösung ist ja nicht wirklich zumutbar.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:55 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