13. januar 2004 - 21:33Der er
14 kommentarer og 1 løsning
hvordan finder computeren et tilfældig tal
hvordan generere computeren et tilfældigt til mellem 0 og 1 ? jeg søger et link til en side der beskriver hvordan man har løst dette problem fatter nemlig ikke lige hvordan functionen man kalder virker, computere kan jo kun lave ting som følger matematiske "love", håber nogen kan hjælpe mig ...
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg har været med til at bruge en hvid støjsgenerator til at toggle en flip-flop. Et antal bit herfra blev benyttet som seed til en pseudo-random generator, som sikrede at verden kørte videre selvom støjgeneratoren skulle gå i stå. Det virkede ganske godt.
jeg har hørt at man i nogle linux distributioner skal vælge et random module der skal generere tilfældige tal. men den "normale" metode til at finde et tilfældigt tal, hvad er det hvis man kan sige en metode er "normal", hvad benytter windows f.eks. til at generere et tilfældigt tal, er det en hardware del eller en algoritme ? og hvis det er en algoritme, hvordan kan det så lade sig gøre at generere et tilfældigt tal med matematik, det vil jeg mene at det ikke kan, medmindre man bruger brugeren input til at generere ud fra ...
Personligt er jeg glad for algoritmer af L'Ecuyer.
Et andet C eksempel:
#include <stdio.h> #include <stdlib.h>
static unsigned long int seed[5];
void mysrand(unsigned long int ss[]) { seed[0]=ss[0]; seed[1]=ss[1]; seed[2]=ss[2]; seed[3]=ss[3]; seed[4]=ss[4]; return; }
unsigned long int myrand() { unsigned long int res; int i; res=(107374182*seed[0]+104480*seed[4])%2147483647; seed[4]=seed[3]; seed[3]=seed[2]; seed[2]=seed[1]; seed[1]=seed[0]; seed[0]=res; return res; }
int main(int argc,char *argv[]) { unsigned long int ss[5]; int i; ss[0]=1234567; ss[1]=123; ss[2]=4444; ss[3]=987; ss[4]=12321; mysrand(ss); for(i=0;i<10;i++) { printf("%ld\n",myrand()); } exit(0); }
tak skal have. har nu mere en rigeligt stof til eftertanke :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.