![]() |
zufall, mit eingeschränkten werten ?
hi,
ich hab folgendes problem,ich woltle ein zufallsscript basteln, nur ich hab ein problem, als bedingung für dieses script dürfen nur zahlen aus dieser reihe hier gelten: 112 113 114 122 123 124 132 133 134 142 143 144 ... 443 wie kann ich soetwas realisieren ? wäre dankbar für vorschläge :) ich hätte es z.b. irgendwie so realisiert: zufallszahl zwishen 112 ... 443 und dann gucken ob sie nach meinen regeln ist, ansonsten neu machen :) nur ich weiss nicht ob es nicht einen einfacherere art gibt :) |
Re: zufall, mit eingeschränkten werten ?
Hi,
machs mal so
Delphi-Quellcode:
mfG
Randomize; // nur einmal aufrufen, am besten im FormCreate
Wert := Random(332) + 112; mirage228 |
Re: zufall, mit eingeschränkten werten ?
Alternativ bietet die Funktion RandomRange aus der Unit Math die selbe Möglichkeit.
Man liest sich, Stanlay :hi: PS: Die Suche hätte dir geholfen ;) |
Re: zufall, mit eingeschränkten werten ?
kk, atm hab ich es eifnachs o gemacht, lool:
Delphi-Quellcode:
funktioniert prima und erfüllt den zweck :)
var z,p1,p2:integer;
p1a,p2a: string; begin repeat z:=random(443); if z>=111 then begin p1a:= inttostr(z); p2a:= inttostr(z); delete(p1a,2,3); delete(p2a,1,2); p1:=strtoint(p1a); p2:=strtoint(p2a); end; until (z>=111) and (pi <> p2); memo1.Lines.Add(inttostr(z)) |
Re: zufall, mit eingeschränkten werten ?
Zitat:
mirage228 hat dir in 2 Zielen alles gesagt.(keine REPEAT/UNTIL Abfrage) |
Re: zufall, mit eingeschränkten werten ?
moin,
irgenwie hab ich das Gefühl ihr habt den Eingangspost nicht richtig gelesen!! Zitat:
|
Re: zufall, mit eingeschränkten werten ?
Hausaufgabe abgeschrieben / nicht selbst erstellt.
Setzen, schämen, sechs! |
Re: zufall, mit eingeschränkten werten ?
Wie wäre es mit
Delphi-Quellcode:
Erzeugt
zahl := (random (4) * 100 + 100) + (random (4) * 10 + 10) + (random (3) + 2)
(1-4) > Hundert (1-4) > zig / zehner (2-4) > einer |
Re: zufall, mit eingeschränkten werten ?
Nein, dann machs doch allgemein so:
Delphi-Quellcode:
MfG
var obereGrenze, untereGrenze, zufall: Integer;
... Randomize; zufall:= Random(obereGrenze-untereGrenze+1)+untereGrenze; Binärbaum |
Re: zufall, mit eingeschränkten werten ?
als Lösung des Problems würde ich empfehlen jede Ziffer einzeln zu generieren diese dann zusammen zusetzen:
Delphi-Quellcode:
var a,b,c,x: integer;
begin a := random(4)+1; b := random(8)+1; c := random(3)+2; x := 100*a + 10*b + c; end; |
Re: zufall, mit eingeschränkten werten ?
Zitat:
|
Re: zufall, mit eingeschränkten werten ?
Zitat:
Da in der Datenreihe einige Werte nicht auftauchen, muss dies berücksichtigt werden. Es ist aber nicht gerade effektiv, in einer repeat...until Schleife sooft eine Zufahlszahl zu erzeugen, bis sie in die Datenreihe passt. Ich würde alle Werte in eine StringList legen, und mittels
Delphi-Quellcode:
dann einfach eine Zeile rauspiksen. Geht natürlich nur, solange alles noch in den Speicher passt.
random(stringlist.count)
|
Re: zufall, mit eingeschränkten werten ?
@Binärbaum:
und was bitte würdest du dan konkret als obere bzw. untere Grenze verwenden?! es wird eine Ergebnismenge verlangt die die Zahlen 112..114, 122..124, 132..134, usw. beinhaltet! Das wirst du mit deinem Beispiel alleine nie erreichen! Natürlich kannst du dir eine Art RandomRange-Funktion schreiben und dann meine ersten drei Zeilen durch einen Funktionsaufruf ersetzen, da ist hier aber eindeutig ein Overkill!! OT: Ich frag mich warum die Leute immer so vorschnell antworten müssen und dann auch noch zum Teil wirklich unfreundlich, ohne dass die eigntliche Frage verstanden bzw. richtig gelesen wurde. Dieser Thread ist ein gutes Beispiel dafür: von 12 Antworten sind mindestens 5 (durch mangelndes Lese-Verständnis?) völlig am Ziel vorbei, drunter ist einer der absolut prolemisch und ohne irgendeinen Bezug zum Thema formuliert ist. Die Hälfte der übrigen Thread beschäftigt sich (zwangsläufig) mit der Korrektur der das Thema verfehlenden Beiträge und die zwei korrekten Lösungsvorschläge gehen völlig unter! |
Re: zufall, mit eingeschränkten werten ?
warum benutzt du nicht:
Delphi-Quellcode:
siehe OH für details...
function RandomRange(const AFrom, ATo: Integer): Integer;
gruessle |
Re: zufall, mit eingeschränkten werten ?
Hi,
mal davon ausgehend, dass die "Hunderter" zwischen 1 und 4 liegen dürfen, die "Zehner" ebenfalls von 1 bis 4 gehen und die "Einer" nur die Werte 2, 3 und 4 annehmen dürfen:
Delphi-Quellcode:
Falls die Grenzen nicht sitmmen, kannst Du sie ja anpassen :)
function zufall : integer;
begin result := RandomRange(1,4)*100+ // 1 bis 4 RandomRange(1,4)* 10+ // 1 bis 4 RandomRange(2,4); // 2 bis 4 end; Ist im Endhinein zwar fast das Gleiche wie schon erwähnt, aber die Antwort ist wohl vermutlich -wie bereits erwähnt- im ganzen Tumult untergegangen.. :roll: Gruß Stephan :dance: //edit: Tippfehler |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz