Loading AI tools
Från Wikipedia, den fria encyklopedin
En linjär kongruensgenerator (LKG) är en typ av pseudoslumptalsgenerator, en algoritm som producerar en sekvens till synes slumpmässiga tal. Linjära kongruensgeneratorer hör till de enklaste slumptalsgeneratorerna, både matematiskt och implementationsmässigt, och är dessutom mycket snabba. Dessvärre uppvisar de brister som gör dem olämpliga för många användningsområden.
En linjär kongruensgenerator definieras av en differensekvation på formen
där Sn representerar generatorns interna tillstånd såväl som sekvensen av utmatade slumptal, och A, B samt M är heltalskonstanter som måste väljas noggrant. Numerical Recipes rekommenderar exempelvis
Den främsta anledningen att använda en linjär kongruensgenerator är att minnesåtgången närmast är obefintlig och att beräkningarna kan utföras snabbt. Framför allt är linjära kongruensgeneratorer effektiva då M sätts till en tvåpotens, eftersom modulo-operationen då kan utföras kostnadsfritt på de flesta datorer. En linjär kongruensgenerator kan ofta vara ett lämpligt val i inbyggda system med små minnen eller i datorspel där slumptalen måste produceras snabbt och kvaliteten oftast inte är viktig.
Oberoende av hur konstanterna väljs har linjära kongruensgeneratorer flera brister som bland annat gör dem olämpliga för Monte Carlo-simuleringar och kryptografi:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.