2021-06-15 00:49:18 -07:00
|
|
|
---
|
|
|
|
id: 5900f5141000cf542c510027
|
2022-03-04 19:46:29 +05:30
|
|
|
title: 'Problema 423: Lanci di dadi consecutivi'
|
2021-06-15 00:49:18 -07:00
|
|
|
challengeType: 5
|
|
|
|
forumTopicId: 302093
|
|
|
|
dashedName: problem-423-consecutive-die-throws
|
|
|
|
---
|
|
|
|
|
|
|
|
# --description--
|
|
|
|
|
2022-03-04 19:46:29 +05:30
|
|
|
Sia $n$ un numero intero positivo.
|
2021-06-15 00:49:18 -07:00
|
|
|
|
2022-03-04 19:46:29 +05:30
|
|
|
Un dado a 6 lati viene lanciato $n$ volte. Sia $c$ il numero di coppie di lanci consecutivi che danno lo stesso valore.
|
2021-06-15 00:49:18 -07:00
|
|
|
|
2022-03-04 19:46:29 +05:30
|
|
|
Ad esempio, se $n = 7$ e i valori dei lanci sono (1, 1, 5, 6, 6, 6, 3), allora le seguenti coppie di lanci consecutivi danno lo stesso valore:
|
2021-06-15 00:49:18 -07:00
|
|
|
|
2022-03-31 22:31:59 +05:30
|
|
|
$$\begin{align} & (\underline{1}, \underline{1}, 5, 6, 6, 6, 3) \\\\
|
|
|
|
& (1, 1, 5, \underline{6}, \underline{6}, 6, 3) \\\\ & (1, 1, 5, 6, \underline{6}, \underline{6}, 3) \end{align}$$
|
2021-06-15 00:49:18 -07:00
|
|
|
|
2022-03-04 19:46:29 +05:30
|
|
|
Pertanto, $c = 3$ per (1, 1, 5, 6, 6, 6, 3).
|
2021-06-15 00:49:18 -07:00
|
|
|
|
2022-03-04 19:46:29 +05:30
|
|
|
Definisci $C(n)$ come il numero di risultati del lancio di un dado a 6 facce per $n$ volte tali che $c$ non superi $π(n)$.<sup>1</sup>
|
2021-06-15 00:49:18 -07:00
|
|
|
|
2022-03-04 19:46:29 +05:30
|
|
|
Per esempio, $C(3) = 216$, $C(4) = 1290$, $C(11) = 361\\,912\\,500$ e $C(24) = 4\\,727\\,547\\,363\\,281\\,250\\,000$.
|
|
|
|
|
|
|
|
Definisci $S(L)$ come $\sum C(n)$ per $1 ≤ n ≤ L$.
|
|
|
|
|
|
|
|
Per esempio, $S(50)\bmod 1\\,000\\,000\\,007 = 832\\,833\\,871$.
|
|
|
|
|
|
|
|
Trova $S(50\\,000\\,000)\bmod 1\\,000\\,000\\,007$.
|
|
|
|
|
|
|
|
<sup>1</sup> $π$ indica la funzione di conteggio dei primi, cioè $π(n)$ è il numero di primi $≤ n$.
|
2021-06-15 00:49:18 -07:00
|
|
|
|
|
|
|
# --hints--
|
|
|
|
|
2022-03-04 19:46:29 +05:30
|
|
|
`consecutiveDieThrows()` dovrebbe restituire `653972374`.
|
2021-06-15 00:49:18 -07:00
|
|
|
|
|
|
|
```js
|
2022-03-04 19:46:29 +05:30
|
|
|
assert.strictEqual(consecutiveDieThrows(), 653972374);
|
2021-06-15 00:49:18 -07:00
|
|
|
```
|
|
|
|
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
2022-03-04 19:46:29 +05:30
|
|
|
function consecutiveDieThrows() {
|
2021-06-15 00:49:18 -07:00
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2022-03-04 19:46:29 +05:30
|
|
|
consecutiveDieThrows();
|
2021-06-15 00:49:18 -07:00
|
|
|
```
|
|
|
|
|
|
|
|
# --solutions--
|
|
|
|
|
|
|
|
```js
|
|
|
|
// solution required
|
|
|
|
```
|