---
title: "två matematiska frågor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/60066-två-matematiska-frågor"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "trexter.com"
published: "2002-11-24T11:10:47.000Z"
updated: "2002-11-25T21:30:08.000Z"
replies: 12
views: 882
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/60066-två-matematiska-frågor"
---

# två matematiska frågor

## #1 — trexter.com, 2002-11-24T11:10Z

Denna tråden passar kanske bättre i något annat forum men jag 
frågar här.

Första frågan (den andra kommer när jag fått svar på denna):
Hur slumpar en dator fram ett tal? Hur ser formeln ut?
Kan man själv slumpa fram tal genom att bara använda en 
blyertspenna och ett papper?

 :)

Permalänk: https://www.webforum.nu/p/60066

## #2 — developer, 2002-11-24T11:36Z

När du gör ett program i C, tillhandahåller C-runtime libraryt "pseudo-slumptal". De är egentligen inte alls slumpvisa, utan är en talserie som hela tiden upprepas. Du kan själv bestämma hur serien ska upprepas genom att sätta ett "frö" (seed). Om du kör ditt program flera gåner med samma seed, kommer talserien bli densamma.

För kryptografi kan det här vara ganska förödande, där vill man ha bättre slumptal, så kallade kryptografiskt slumpmässiga tal. I exempelvis Windows finns funktionen "CryptGenRandom" (i kernel) för detta. Den använder olika process-id:s, tråd-id:s, systemtid, verklig tid, använderens miljövariabler, ledig plats på diskarna etc. som indata för att ge ett mer slumpmässigt värde.

Du kommer förmodligen få dåliga slumptal om du gissar för hand, eftersom människor tenderar att inte vara slumpmässiga när det gäller sånt här. Om man exempelvis väljer ett antal personer välja ett tal mellan 1 och 4, kommer statistiskt sett de flesta att välja 3.

Permalänk: https://www.webforum.nu/p/863205

## #3 — trexter.com, 2002-11-24T11:51Z

Men hur vet datorn vilket tal i talserien den ska välja?
Finns det någon hyperavancerad formel som verkligen \_slumpar\_ fram ett tal?

 :)

Permalänk: https://www.webforum.nu/p/863216

## #4 — developer, 2002-11-24T12:39Z

Innan du börjar hämta slumptal sätter du ditt frö, i och med detta bestämmer du vilket det första talet ur serien ska bli. Sedan beräknas nästa tal ur serien beroende på det föregående, och C runtimen kommer ihåg det föregående talet åt dig, så varje gång du ropar på rand() används det föregående talet.

Har du Visual Studio? Isåfall finns källkoden till rand() och seed() i filen "C:\\Program Files\\Microsoft Visual Studio .NET\\Vc7\\crt\\src\\rand.c" (om du valde CRT source under installationen). Har du VC6 är det någon liknande katalog.

För .Net finns källkoden till Rand i .\\clr\\src\\bcl\\system\\random.cs om du laddar hem [Shared Source CLI koden](http://download.microsoft.com/download/.netframesdk/cli3/1.0/wxp/en-us/sscli_20021101.tgz) (du behöver winzip för att öppna filen).

Permalänk: https://www.webforum.nu/p/863255

## #5 — Titan, 2002-11-24T15:13Z

Man kan helt enkelt plocka värden från internminnet (en viss minnesposition som förmodligen väldigt sällan har samma värde på olika datorer) så funkar det t.ex. om du skapar en variabel utan att tilldela den ett startvärde i vissa programmeringsspråk

Permalänk: https://www.webforum.nu/p/863342

## #6 — trexter.com, 2002-11-24T15:53Z

Ok, så genom att "plantera mitt frö" så börjar datorn gå igenom talserien och när jag kör Rnd så plockas ett värde?

Fråga nummer två:
Hur fungerar en miniräknare? Själva räkneprocessen...

 :)

Permalänk: https://www.webforum.nu/p/863372

## #7 — Viktor, 2002-11-24T16:05Z

Det är som i vilken dator som hellst. Binära operationer.
Här är lite länkar som jag bara har tagit från ett arbeta jag skrev om binär multiplikation och division för några veckor sedan

Dawn Rorvik, ”2's Complement Representation for Signed Integers”
<http://www.evergreen.edu/biophysics/technotes/program/2s_comp.htm>

Michael Schulte, ”Binary Multiplication & Division”
<http://www.eecs.lehigh.edu/~mschulte/ece201-99/lect/lect8>

Cherrybrook Technology High School, ”Binary Multiplication”
<http://www.cths.nsw.edu.au/learning/tas/ict/sdd/binary/times.htm>

Cherrybrook Technology High School, ”Binary Division”
<http://www.cths.nsw.edu.au/learning/tas/ict/sdd/binary/division.htm>

Math Forum, “Binary Operations”
<http://mathforum.org/library/drmath/view/55794.html>

Math Forum, “Multiplying and Dividing Computer Style”
<http://mathforum.org/library/drmath/view/54338.html>

Math Forum, “Long Division in Binary”
<http://mathforum.org/library/drmath/view/55951.html>

Kanske kan ge dig en inblik i hur det går till, men du ska nog framförallt titta på hur en processor fungerar, då får du svaret automatiskt.

/Viktor

Permalänk: https://www.webforum.nu/p/863377

## #8 — developer, 2002-11-24T19:21Z

> **Titan skrev:**
>
> Man kan helt enkelt plocka värden från internminnet (en viss minnesposition som förmodligen väldigt sällan har samma värde på olika datorer) så funkar det t.ex. om du skapar en variabel utan att tilldela den ett startvärde i vissa programmeringsspråk

Jag skulle inte rekommendera detta. Använder du Microsoft-kompilatorn i debug-builds kommer stack-variabler initieras till 0xCC, medan de i release-builds är oiniterade. Andra kompilatorer kan ge andra liknande beteenden. Man kan inte förlita sig på detta som slumptal.

Permalänk: https://www.webforum.nu/p/863470

## #9 — Sang-drax, 2002-11-24T20:22Z

Det finns hårdvara som ger 100% äkta slumptal.

PGP använde sig av musrörelser och tangentbordstrycknignar för att skapa den privata nyckeln.

Permalänk: https://www.webforum.nu/p/863516

## #10 — Mr. N., 2002-11-24T20:34Z

> Hur fungerar en miniräknare? Själva räkneprocessen...

Räknarna och datorerna använder sig av Maclaurin-/Taylor-polynom för att räkna ut exempelvis e, pi och sinusfunktionerna. Det är en serie med tal uppbyggda för att approximera funktioner och värden.

Permalänk: https://www.webforum.nu/p/863521

## #11 — Sang-drax, 2002-11-24T22:45Z

> **Mr. N. skrev:**
>
> > Hur fungerar en miniräknare? Själva räkneprocessen...
>
> 
> Räknarna och datorerna använder sig av Maclaurin-/Taylor-polynom för att räkna ut exempelvis e, pi

Nu är det nog iofs så att e och pi är fördefinierade konstanter.

Permalänk: https://www.webforum.nu/p/863608

## #12 — Mr. N., 2002-11-24T22:47Z

Ja, just det, det gäller snarare funktioner som e^()...

Permalänk: https://www.webforum.nu/p/863611

## #13 — Keno, 2002-11-25T21:30Z

jag tycker att matte diskret är ett rätt bra ämne för den som är intresserad av sånthär!

Permalänk: https://www.webforum.nu/p/867246

---

Tråden på webben: https://www.webforum.nu/amne/programmering/60066-två-matematiska-frågor
