freeCodeCamp/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-255-rounded-square-...

67 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
id: 5900f46d1000cf542c50ff7f
title: 'Problema 255: Radici Quadrate Arrotondate'
challengeType: 5
forumTopicId: 301903
dashedName: problem-255-rounded-square-roots
---
# --description--
Definiamo la radice-quadrata-arrotondata di un intero positivo $n$ come la radice quadrata di $n$ arrotondata al numero intero più vicino.
La seguente procedura (essenzialmente il metodo di Heron adattato a interi aritmetici) trova la radice-quadrata-arrotondata di $n$:
Sia $d$ il numero di cifre del numero $n$.
Se $d$ è dispari, imposta $x_0 = 2 × {10}^{\frac{d - 1}{2}}$.
Se $d$ è pari, imposta $x_0 = 7 × {10}^{\frac{d - 2}{2}}$.
Ripeti:
$$x_{k + 1} = \left\lfloor\frac{x_k + \left\lceil\frac{n}{x_k}\right\rceil}{2}\right\rfloor$$
fino a $x_{k + 1} = x_k$.
Ad esempio, cerchiamo di trovare la radice-quadrata-arrotondata di $n = 4321$.
$n$ ha 4 cifre, quindi $x_0 = 7 × {10}^{\frac{4-2}{2}} = 70$.
$$x_1 = \left\lfloor\frac{70 + \left\lceil\frac{4321}{70}\right\rceil}{2}\right\rfloor = 66 \\\\ x_2 = \left\lfloor\frac{66 + \left\lceil\frac{4321}{66}\right\rceil}{2}\right\rfloor = 66$$
Dal momento che $x_2 = x_1$, ci fermiamo qui. Così, dopo solo due iterazioni, abbiamo scoperto che la radice-quadrata-arrotondata di 4321 è 66 (la vera radice quadrata è 65.7343137…).
Il numero d'iterazioni richieste quando si utilizza questo metodo è sorprendentemente basso. Ad esempio, possiamo trovare la radice-quadrata-arrotondato di un intero a 5 cifre ($10\\,000 ≤ n ≤ 99\\,999$) con una media di 3.2102888889 iterazioni (il valore medio è stato arrotondato al decimo decimale).
In base alla procedura sopra descritta, qual è il numero medio di iterazioni richieste per trovare la radice-quadrata-arrotondata di un numero a 14 cifre (${10}^{13} ≤ n < {10}^{14}$)? Dai la risposta arrotondata a 10 decimali.
**Nota:** I simboli $⌊x⌋$ e $⌈x⌉$ rappresentano rispettivamente la funzione arrotonda verso il basso e arrotonda verso l'alto.
# --hints--
`roundedSquareRoots()` dovrebbe restituire `4.447401118`.
```js
assert.strictEqual(roundedSquareRoots(), 4.447401118);
```
# --seed--
## --seed-contents--
```js
function roundedSquareRoots() {
return true;
}
roundedSquareRoots();
```
# --solutions--
```js
// solution required
```