TCH írta/wrote:
256 kör helyett akár több ezer is lehet egy generálás.
#include <stdio.h>
void main() {
int table[256];
int i, j, k, ok;
k = 0;
srand(time(NULL));
for (i = 0; i < 256; i++) {
do {
ok = 1;
table[i] = rand() % 256;
for (j = i - i; j >= 0; j--) {
if (table[i] == table[j]) ok = 0;
}
k++;
} while (!ok);
}
printf("%i\n", k);
} Ezt lefuttattam párszor, az a konklúzió, hogy átlagosan 1500-szor fut le a ciklus, a keverős módszer ugye 512-szer, tehát átlagosan harmadára csökkent az átlagosan szükséges lépések száma.TCH írta/wrote:
Meg az is eszembe jutott, hogy ha "véletlen" titkosítást akarunk, akkor kell a saját random generátorunk, mert ha a véletlenszám előállítását rábízzuk a rendszerre, akkor az függeni fog a rendszer véletlenszámgenerátorától. Pl. Elkódolom BSD-n, Linuxon már nem fogom tudni kinyitni. Valszeg a *nixekben ugyanaz a libc van implementálva, szóval működni fog tök mindegy milyen véletlengenerátort használsz. Winfos és *nix között már kérdéses a kompatibilitás, de ezeknek majd utánajárok. |