Sprache: C#
Mit diesem C# Code werden Zahlen einmalig innerhalb des angegebenen Bereiches erzeugt.
public List<int> Zahlen = new List<int>(){};
public void zahlGenerieren()
{
Random r = new Random();
// je nachdem wie viele Ziffern generiert werden sollen,
// so variiert dann auch x : i < x
for (int i = 0; i < 15; i++)
{
int zufall = r.Next(0, 15);
if (Zahlen.Contains(zufall))
{
i--;
}
else if (!Zahlen.Contains(zufall))
{
Zahlen.Add(zufall);
// hier kann dann mit zufall
// weitergearbeitet werden
}
}
}
public List<int> Zahlen = new List<int>(){};
public void zahlGenerieren()
{
Random r = new Random();
// je nachdem wie viele Ziffern generiert werden sollen,
// so variiert dann auch x : i < x
for (int i = 0; i < 15; i++)
{
int zufall = r.Next(0, 15);
if (Zahlen.Contains(zufall))
{
i--;
}
else if (!Zahlen.Contains(zufall))
{
Zahlen.Add(zufall);
// hier kann dann mit zufall
// weitergearbeitet werden
}
}
}
Alte URL:
/snippet/einmalige-zahlen-generieren/1621
mmmh, die methode ist nicht effizient, da sie bei steigendem i die laufzeit vergrößert. per zufall die nächste gültige zahl bestimmen zu lassen, das dauert ewig. mach doch einfach sowas:
[code]
static void Gen(int max)
{
for (int i = 0; i < max; i++) { Zahlen.Insert(r.Next(i + 1), i); } } [/code] kurz und vor allem sicher. und das random r bitte zur laufzeit immer nur einmal initialisieren, sonst wirst du wenig zufall sehen^^