2021-06-15 00:49:18 -07:00
---
id: 5900f3d01000cf542c50fee3
2022-02-28 13:29:21 +05:30
title: 'Problema 100: Probabilità degli arrangiamenti'
2021-06-15 00:49:18 -07:00
challengeType: 5
forumTopicId: 301724
dashedName: problem-100-arranged-probability
---
# --description--
2022-02-28 13:29:21 +05:30
Se una scatola contiene ventuno dischi colorati, composti da quindici dischi blu e sei dischi rossi, e due dischi sono stati prelevati a caso, si può vedere la probabilità di prendere due dischi blu.
2021-06-15 00:49:18 -07:00
2022-02-28 13:29:21 +05:30
$$${P(BB)} = \frac{15}{21}× \frac{14}{20} = \frac{1}{2}$$
2021-06-15 00:49:18 -07:00
2022-02-28 13:29:21 +05:30
Il prossimo arrangiamento, per il quale vi è esattamente una probabilità del 50% di prendere due dischi blu a caso, è una scatola contenente ottantacinque dischi blu e trentacinque dischi rossi.
2021-06-15 00:49:18 -07:00
2022-02-28 13:29:21 +05:30
Trovando la prima disposizione che contiene più di `limit` dischi in totale, determina il numero di dischi blu che la scatola contiene.
2021-06-15 00:49:18 -07:00
# --hints--
2022-02-28 13:29:21 +05:30
`arrangedProbability(20)` dovrebbe restituire un numero.
2021-06-15 00:49:18 -07:00
```js
assert(typeof arrangedProbability(10) === 'number');
```
2022-02-28 13:29:21 +05:30
`arrangedProbability(20)` dovrebbe restituire `15` .
2021-06-15 00:49:18 -07:00
```js
assert.strictEqual(arrangedProbability(20), 15);
```
2022-02-28 13:29:21 +05:30
`arrangedProbability(100)` dovrebbe restituire `85` .
2021-06-15 00:49:18 -07:00
```js
assert.strictEqual(arrangedProbability(100), 85);
```
2022-02-28 13:29:21 +05:30
`arrangedProbability(100000)` dovrebbe restituire `97513` .
2021-06-15 00:49:18 -07:00
```js
assert.strictEqual(arrangedProbability(100000), 97513);
```
2022-02-28 13:29:21 +05:30
`arrangedProbability(1000000000)` dovrebbe restituire `3822685023` .
2021-06-15 00:49:18 -07:00
```js
assert.strictEqual(arrangedProbability(1000000000), 3822685023);
```
2022-02-28 13:29:21 +05:30
`arrangedProbability(1000000000000)` dovrebbe restituire `756872327473` .
2021-06-15 00:49:18 -07:00
```js
assert.strictEqual(arrangedProbability(1000000000000), 756872327473);
```
# --seed--
## --seed-contents--
```js
function arrangedProbability(limit) {
return true;
}
arrangedProbability(20);
```
# --solutions--
```js
function arrangedProbability(limit) {
// Based on https://www.mathblog.dk/project-euler-100-blue-discs-two-blue/
let blue = 15;
let discs = 21;
while (discs < limit ) {
const nextBlue = 3 * blue + 2 * discs - 2;
const nextDiscs = 4 * blue + 3 * discs - 3;
blue = nextBlue;
discs = nextDiscs;
}
return blue;
}
```