Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Veckans nöt #14: Normalfördelade slumptal

Postades av 2005-01-14 11:15:45 - Niklas Jansson, i forum systemutveckling generellt, Tråden har 4 Kommentarer och lästs av 1838 personer

Okej, det var ett tag sen vi hade några "veckans nöt". Den här veckan kör vi med "hasselnöt". Det var ett tråkigt skämt. Skit samma.

Problem:
Du behöver skapa en population till ett spel, t.ex., och för att få det verklighetstroget vill du ha en normalfördelning på t.ex. gubbarnas längder. (Och för enkelhetens skull får du själv välja om längderna får lov att vara negativa eller inte...)

Problemet är att du har en perfekt slumptalsgenerator som antingen returnerar en likformig (rektangulär-) fördelning med heltal i intervallet [0, n) (välj n själv) eller reella tal i intervallet [0, 1).

Gör en så snabb kod som möjligt för att returnera normalfördelade tal i valfritt språk, utan att använda inbyggda eller externa färdiga funktioner för det. (Du får naturligtvis använda flera vanliga slumptal för att generera ett normalfördelat.)

Har några ideer själv men det skulle vara intressant att se vilka varianter som kommer upp.

PS. Summan av två slumptal blir inte normalfördelat, utan triangulärfördelat, den går inte.


Svara

Sv: Veckans nöt #14: Normalfördelade slumptal

Postades av 2005-01-14 13:24:32 - Per Persson

http://www.taygeta.com/random/gaussian.html


Svara

Sv:Veckans nöt #14: Normalfördelade slumptal

Postades av 2005-01-14 13:47:31 - Niklas Jansson

Jag kom på att det var en ganska dumt formulerad uppgift strax efter att jag hade skrivit den. Grejen är att det där ju är standardvarianten, men den blir ganska seg. Först leta efter en punkt i enhetscirkeln, sen köra en logaritm, en kvadratrot och en sinus/cosinus.

Min lösning bygger på en lookuptabell, som jag interpolerar linjärt. Problemet är att det då i princip inte spelar någon roll om man använder Box-Muller-transformationen (den i länken) eller en invers till fördelningsfunktionen.

Har sett en annan variant också, med en summa där man bör välja k=12*n^2, men mer kommer jag inte ihåg (det ligger alltså en sqrt(k/12) i den, om någon känner igen det).

Nåja, om någon har någon annan intressant lösning, kan ni ju posta den.


Svara

Sv: Veckans nöt #14: Normalfördelade slumptal

Postades av 2005-01-14 14:01:53 - Per Persson

Den polära formen kör varken sin eller cos.


Svara

Sv:Veckans nöt #14: Normalfördelade slumptal

Postades av 2005-01-14 14:10:42 - Niklas Jansson

Jaja, det är ändå en hel del flyttalsoperationer. Säg, ungefär 10 mult+add för roten och 10 för logaritmen.

Om man får in det som ett heltal i [0, k*n] så kan man ju mappa det mot en lookup på [0, n] ganska enkelt, och på det sättet få en (godtyckligt) hygglig approximation. Och använder man inversa metoden så blir det bara en lookup och ett slumptal.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 786
27 960
271 761
732
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies