Losowanie liczb bez użycia Random

Losowanie liczb bez użycia Random
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Tym razem taki sobie luźny temat, dla obudzenia.
Piszemy przykłady losowania liczb, ale bez użycia funkcji Random, Rand czy jakichś takich "gotowych" funkcji.
Mój przykład:

Kopiuj
Function Losuj(Max: Integer): Integer;
Begin
 Result := GetTickCount Mod (Max+1);
End;

Język dowolny.
A ja dodam tylko, cd.mojego kodu:

Zalety
Łatwa implementacja
Wady
Przy użyciu pętli będzie cały czas ta sama liczba :P

A wy jakie macie pomysły (już bez użycia GetTickCount :D ).

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
int rand() {
    int i, *p = new int;
    i = p;
    delete p;
    return i;
}
Kopiuj
int seed = /* dowolna 4 cyfrowa liczba */;
int rand() {
    return (seed = ((seed*seed)/100)%1000);
}
LN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1398
0
Kopiuj
int rand() {
  return 5;
}

;)
Kerai
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: London
0
Kopiuj
public class Rand {
	long x = System.currentTimeMillis();
	public long randomLong() {
		  x ^= (x << 21);
		  x ^= (x >>> 35);
		  x ^= (x << 4);
		  return x;
	}
}

tam.. w tyn delphi czy czym to piszesz... x może być static, czy jakoś tak...

ewentualnie...

Kopiuj
public long randomLong()
{
     return kobieta.getNastrój();
}
Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
0

http://en.wikipedia.org/wiki/Pentium_FDIV_bug
Intel miał generator liczb pseudolosowych już od dawna :)

lemmiwink
  • Rejestracja: dni
  • Ostatnio: dni

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.