---
title: "Sannolikhet och slump"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/143478-sannolikhet-och-slump"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "wmaster"
published: "2006-03-05T21:54:57.000Z"
updated: "2006-03-07T21:48:50.000Z"
replies: 9
views: 588
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/php/143478-sannolikhet-och-slump"
---

# Sannolikhet och slump

## #1 — wmaster, 2006-03-05T21:54Z

Hm jag har ett litet problem...
Finns det något smidigt tillvägagångssätt för att slumpa fram ett tal med olika stora sannolikhet?

Ex. Häst A vinner 40% av gånger, häst B 25%, häst C 20%, häst D 15%
Dessa sannolikheter ska tas hänsyn till när sedan vinner "slumpas" fram.
Någon som sitter inne med en bra lösning?

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

## #2 — Peeer, 2006-03-05T22:03Z

En fullösning som borde kunna fungera är att slumpa fram ett tal mellan 0 och 100. Är talet mellan 0 och 40 så vinner häst A, är talet mellan 40 och 65 så vinner häst B osv..

Finns säkert snyggare sätt, men det borde kunna fungera ändå.

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

## #3 — Peter S, 2006-03-05T22:07Z

Slumpa ett tal i intervallet \[0-1) och avrunda det till två decimaler. Om resultatet *r* ligger mellan 0-0.39 vinner A; 0.4 \<= r \<= 0.64, då B; 0.65 \<= r \<= 0.84, då C; D annars.

Red./ 4 minuter sen...

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

## #4 — wmaster, 2006-03-05T22:44Z

Mjo några sådana intervall har jag också funderat på...men jag ska basera vinstchansen på ett oddstal..tex häst A har odds: 1,25, häst B har 4...
Hur ska man då göra dessa intervall för att lägst odds har störst vinstchans (propotionellt mot odds)?

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

## #5 — sl0k, 2006-03-05T23:53Z

Är inte jättebra på oddsräkning men 1,25 i odds motsvarar väl ca 56% chans ?
4:1 odds 80% 

dvs 
odds/(odds + 1)

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

## #6 — wmaster, 2006-03-06T11:34Z

Hm tror nog att det är 1/odds som ger chansen. Vidare om jag kör detta på alla hästars odds i loppet får jag 1 vilket bör stämma. Då får jag ett intervall från 0-1 som jag kan dela in...

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

## #7 — sl0k, 2006-03-06T11:51Z

> **wmaster skrev:**
>
> Hm tror nog att det är 1/odds som ger chansen.

ok.. utgick från pokerodds beräkningar.. inser nu att det inte är samma

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

## #8 — wmaster, 2006-03-06T11:55Z

okej hehe

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

## #9 — The_Hulk, 2006-03-06T12:17Z

summera oddsen, använd sedan [rand(min, max);](http://se.php.net/manual/en/function.rand.php)
därefter får du köra någon liten loop som kontrollerar vilken som vann.

```php
$odds = array(1.25, 1.12,  2.3);
$total = 0;

for($i=0; $i<sizeof($odds); ++$i)
{
  $total += $odds[$i];
}

$rnd = rand(0, $total * 100); // multiplicera med 100 för att få bättre spridning. rand() returnerar ett heltal

$sum = 0;
$winner = -1;
for($i=0; $i<sizeof($odds); ++$i)
{
  $sum += ($odds[$i] * 100);
  if($rnd < $sum)
  {
    $winner = $i;
    break;
  }
}

echo "Vinnare är $winner";
```

skulle kunna vara en lösning.
möjligt den innehåller något glapp i gränserna mellan oddsen.

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

## #10 — Dies_Irae, 2006-03-07T21:48Z

Bör sortera oddsen i den lösningen annars blir de inte alltid rätt.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/143478-sannolikhet-och-slump
