chore(i18n,learn): processed translations (#45583)

This commit is contained in:
camperbot
2022-03-31 22:31:59 +05:30
committed by GitHub
parent 01f5769190
commit a3a8b8cb5e
137 changed files with 557 additions and 310 deletions

View File

@ -11,7 +11,9 @@ dashedName: set-the-font-size-for-multiple-heading-elements
`font-size` 屬性用來指定元素內文字的大小。 我們可以爲多個元素添加這個規則,讓頁面內不同元素的文字大小得以統一。 在本挑戰裏,你需要設置從 `h1``h6` 的文字大小。
# --instructions-- <p>在 <code>style</code> 標籤中, 對各元素的 <code>font-size</code> 進行如下設置:</p>
# --instructions--
<p><code>style</code> 標籤中, 對各元素的 <code>font-size</code> 進行如下設置:</p>
<ul>
<li><code>h1</code> 標籤的文字大小設爲 68px。</li>

View File

@ -14,7 +14,8 @@ dashedName: problem-137-fibonacci-golden-nuggets
令人驚訝的是:
$$\begin{align} A_F(\frac{1}{2}) & = (\frac{1}{2}) × 1 + {(\frac{1}{2})}^2 × 1 + {(\frac{1}{2})}^3 × 2 + {(\frac{1}{2})}^4 × 3 + {(\frac{1}{2})}^5 × 5 + \cdots \\\\ & = \frac{1}{2} + \frac{1}{4} + \frac{2}{8} + \frac{3}{16} + \frac{5}{32} + \cdots \\\\ & = 2 \end{align}$$
$$\begin{align} A_F(\frac{1}{2}) & = (\frac{1}{2}) × 1 + {(\frac{1}{2})}^2 × 1 + {(\frac{1}{2})}^3 × 2 + {(\frac{1}{2})}^4 × 3 + {(\frac{1}{2})}^5 × 5 + \cdots \\\\
& = \frac{1}{2} + \frac{1}{4} + \frac{2}{8} + \frac{3}{16} + \frac{5}{32} + \cdots \\\\ & = 2 \end{align}$$
前五個對應的自然數 $x$ 如下。

View File

@ -10,11 +10,13 @@ dashedName: problem-330-eulers-number
對於所有的整數 $n$,一個無限實數序列 $a(n)$ 定義如下:
$$ a(n) = \begin{cases} 1 & n < 0 \\\\ \displaystyle \sum_{i = 1}^{\infty} \frac{a(n - 1)}{i!} & n \ge 0 \end{cases} $$
$$ a(n) = \begin{cases} 1 & n < 0 \\\\
\displaystyle \sum_{i = 1}^{\infty} \frac{a(n - 1)}{i!} & n \ge 0 \end{cases} $$
例如
$$\begin{align} & a(0) = \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = e 1 \\\\ & a(1) = \frac{e 1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = 2e 3 \\\\ & a(2) = \frac{2e 3}{1!} + \frac{e 1}{2!} + \frac{1}{3!} + \ldots = \frac{7}{2} e 6 \end{align}$$
$$\begin{align} & a(0) = \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = e 1 \\\\
& a(1) = \frac{e 1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = 2e 3 \\\\ & a(2) = \frac{2e 3}{1!} + \frac{e 1}{2!} + \frac{1}{3!} + \ldots = \frac{7}{2} e 6 \end{align}$$
其中$e = 2.7182818\ldots$ 是歐拉常數

View File

@ -12,7 +12,8 @@ dashedName: problem-92-square-digit-chains
舉個例子:
$$\begin{align} & 44 → 32 → 13 → 10 → \boldsymbol{1} → \boldsymbol{1}\\\\ & 85 → \boldsymbol{89} → 145 → 42 → 20 → 4 → 16 → 37 → 58 → \boldsymbol{89}\\\\ \end{align}$$
$$\begin{align} & 44 → 32 → 13 → 10 → \boldsymbol{1} → \boldsymbol{1}\\\\
& 85 → \boldsymbol{89} → 145 → 42 → 20 → 4 → 16 → 37 → 58 → \boldsymbol{89}\\\\ \end{align}$$
可以發現,每條到達 1 或 89 的數鏈都會陷入循環。 最令人驚訝的是,從任意數字開始,數鏈最終都會到達 1 或 89。

View File

@ -11,7 +11,9 @@ dashedName: set-the-font-size-for-multiple-heading-elements
`font-size` 属性用来指定元素内文字的大小。 我们可以为多个元素添加这个规则,让页面内不同元素的文字大小得以统一。 在本挑战里,你需要设置从 `h1``h6` 的文字大小。
# --instructions-- <p>在 <code>style</code> 标签中, 对各元素的 <code>font-size</code> 进行如下设置:</p>
# --instructions--
<p><code>style</code> 标签中, 对各元素的 <code>font-size</code> 进行如下设置:</p>
<ul>
<li><code>h1</code> 标签的文字大小设为 68px。</li>

View File

@ -14,7 +14,8 @@ dashedName: problem-137-fibonacci-golden-nuggets
令人惊讶的是:
$$\begin{align} A_F(\frac{1}{2}) & = (\frac{1}{2}) × 1 + {(\frac{1}{2})}^2 × 1 + {(\frac{1}{2})}^3 × 2 + {(\frac{1}{2})}^4 × 3 + {(\frac{1}{2})}^5 × 5 + \cdots \\\\ & = \frac{1}{2} + \frac{1}{4} + \frac{2}{8} + \frac{3}{16} + \frac{5}{32} + \cdots \\\\ & = 2 \end{align}$$
$$\begin{align} A_F(\frac{1}{2}) & = (\frac{1}{2}) × 1 + {(\frac{1}{2})}^2 × 1 + {(\frac{1}{2})}^3 × 2 + {(\frac{1}{2})}^4 × 3 + {(\frac{1}{2})}^5 × 5 + \cdots \\\\
& = \frac{1}{2} + \frac{1}{4} + \frac{2}{8} + \frac{3}{16} + \frac{5}{32} + \cdots \\\\ & = 2 \end{align}$$
前五个对应的自然数 $x$ 如下。

View File

@ -10,11 +10,13 @@ dashedName: problem-330-eulers-number
对于所有的整数 $n$,一个无限实数序列 $a(n)$ 定义如下:
$$ a(n) = \begin{cases} 1 & n < 0 \\\\ \displaystyle \sum_{i = 1}^{\infty} \frac{a(n - 1)}{i!} & n \ge 0 \end{cases} $$
$$ a(n) = \begin{cases} 1 & n < 0 \\\\
\displaystyle \sum_{i = 1}^{\infty} \frac{a(n - 1)}{i!} & n \ge 0 \end{cases} $$
例如
$$\begin{align} & a(0) = \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = e 1 \\\\ & a(1) = \frac{e 1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = 2e 3 \\\\ & a(2) = \frac{2e 3}{1!} + \frac{e 1}{2!} + \frac{1}{3!} + \ldots = \frac{7}{2} e 6 \end{align}$$
$$\begin{align} & a(0) = \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = e 1 \\\\
& a(1) = \frac{e 1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = 2e 3 \\\\ & a(2) = \frac{2e 3}{1!} + \frac{e 1}{2!} + \frac{1}{3!} + \ldots = \frac{7}{2} e 6 \end{align}$$
其中$e = 2.7182818\ldots$ 是欧拉常数

View File

@ -12,7 +12,8 @@ dashedName: problem-92-square-digit-chains
举个例子:
$$\begin{align} & 44 → 32 → 13 → 10 → \boldsymbol{1} → \boldsymbol{1}\\\\ & 85 → \boldsymbol{89} → 145 → 42 → 20 → 4 → 16 → 37 → 58 → \boldsymbol{89}\\\\ \end{align}$$
$$\begin{align} & 44 → 32 → 13 → 10 → \boldsymbol{1} → \boldsymbol{1}\\\\
& 85 → \boldsymbol{89} → 145 → 42 → 20 → 4 → 16 → 37 → 58 → \boldsymbol{89}\\\\ \end{align}$$
可以发现,每条到达 1 或 89 的数链都会陷入循环。 最令人惊讶的是,从任意数字开始,数链最终都会到达 1 或 89。

View File

@ -11,7 +11,9 @@ dashedName: set-the-font-size-for-multiple-heading-elements
La propiedad `font-size` se usa para especificar que tan grande es el texto en un elemento dado. Esta regla se puede utilizar para varios elementos para crear coherencia visual del texto en una página. En este desafío, establecerá los valores para todas las etiquetas `h1` a `h6` para equilibrar los tamaños de los títulos.
# --instructions-- <p>En las etiquetas <code>style</code>, establece el <code>font-size</code> de:</p>
# --instructions--
<p>En las etiquetas <code>style</code>, establece el <code>font-size</code> de:</p>
<ul>
<li>Etiqueta <code>h1</code> a 68px.</li>

View File

@ -11,14 +11,14 @@ dashedName: add-a-box-shadow-to-a-card-like-element
La proprietà `box-shadow` applica una o più ombre ad un elemento.
La proprietà `box-shadow` è definita dai seguenti valori:
La proprietà `box-shadow` prende i seguenti valori, in ordine:
<ul>
<li><code>offset-x</code> (quanto l'ombra si sposta orizzontalmente dall'elemento),</li>
<li><code>offset-y</code> (quanto l'ombra si sposta verticalmente dall'elemento),</li>
<li><code>blur-radius</code>, cioè quanto è ampia la sfumatura,</li>
<li><code>spread-radius</code>, cioè quanto è ampia la base dell'ombra e</li>
<li><code>color</code> per definirne il colore, in quest'ordine.</li>
<li><code>offset-x</code> (quanto l'ombra si sposta orizzontalmente dall'elemento)</li>
<li><code>offset-y</code> (quanto l'ombra si sposta verticalmente dall'elemento)</li>
<li><code>blur-radius</code></li>
<li><code>spread-radius</code></li>
<li><code>color</code></li>
</ul>
I valori `blur-radius` e `spread-radius` sono opzionali.

View File

@ -9,9 +9,9 @@ dashedName: adjust-the-hue-of-a-color
# --description--
I colori hanno diverse caratteristiche tra cui tonalità, saturazione e luminosità. CSS3 ha introdotto la proprietà `hsl()` (hue, saturation, lightness) come metodo alternativo per scegliere un colore indicando direttamente queste caratteristiche.
I colori hanno diverse caratteristiche tra cui tonalità, saturazione e luminosità. CSS3 ha introdotto la funzione `hsl()` (hue-tonalità, saturation-saturazione, lightness-luminosità) come metodo alternativo per scegliere un colore indicando direttamente queste caratteristiche.
**Tonalità** (Hue) è ciò che la gente generalmente intende come 'colore'. Se si immagina uno spettro di colori che inizia con il rosso a sinistra, passando attraverso il verde nel mezzo, e blu a destra, la tonalità è dove un colore si posiziona lungo questa linea. Con l'`hsl()`, la tonalità utilizza il concetto del cerchio cromatico invece dello spettro, dove l'angolo del colore sul cerchio è indicato come valore compreso tra 0 e 360.
**Tonalità** è ciò che la gente generalmente intende come 'colore'. Se si immagina uno spettro di colori che inizia con il rosso a sinistra, passando attraverso il verde nel mezzo, e blu a destra, la tonalità è dove un colore si posiziona lungo questa linea. Con l'`hsl()`, la tonalità utilizza il concetto del cerchio cromatico invece dello spettro, dove l'angolo del colore sul cerchio è indicato come valore compreso tra 0 e 360.
**Saturazione** è la quantità di grigio in un colore. Un colore completamente saturo non ha grigio in esso, e un colore minimamente saturo è quasi completamente grigio. Questo dato è in percentuale, dove 100% la saturazione completa.
@ -23,41 +23,41 @@ Ecco alcuni esempi di utilizzo dell'`hsl()` con colori di luminosità normali co
# --instructions--
Cambia il `background-color` di ogni elemento `div` basandoti sui nomi delle classi (`green`, `cyan` o `blue`) utilizzando la proprietà `hsl()`. Tutti e tre dovrebbero avere piena saturazione e luminosità normale.
Cambia il `background-color` di ogni elemento `div` basandoti sui nomi delle classi (`green` - verde, `cyan` - ciano o `blue` - blu) utilizzando la proprietà `hsl()`. Tutti e tre dovrebbero avere piena saturazione e luminosità normale.
# --hints--
Il tuo codice dovrebbe utilizzare la proprietà `hsl()` per dichiarare il colore `green`.
Il tuo codice dovrebbe usare le funzioni `hsl()` per dichiarare il colore verde.
```js
assert(code.match(/\.green\s*?{\s*?background-color\s*:\s*?hsl/gi));
```
Il tuo codice dovrebbe utilizzare la proprietà `hsl()` per dichiarare il colore `cyan`.
Il tuo codice dovrebbe utilizzare le funzioni `hsl()` per dichiarare il colore ciano.
```js
assert(code.match(/\.cyan\s*?{\s*?background-color\s*:\s*?hsl/gi));
```
Il tuo codice dovrebbe utilizzare la proprietà `hsl()` per dichiarare il colore `blue`.
Il tuo codice dovrebbe utilizzare le funzioni `hsl()` per dichiarare il colore blu.
```js
assert(code.match(/\.blue\s*?{\s*?background-color\s*:\s*?hsl/gi));
```
L'elemento `div` con classe `green` dovrebbe avere un `background-color` verde (green).
L'elemento `div` con classe `green` dovrebbe avere un `background-color` verde.
```js
assert($('.green').css('background-color') == 'rgb(0, 255, 0)');
```
L'elemento `div` con classe `cyan` dovrebbe avere un `background-color` ciano (cyan).
L'elemento `div` con classe `cyan` dovrebbe avere un `background-color` ciano.
```js
assert($('.cyan').css('background-color') == 'rgb(0, 255, 255)');
```
L'elemento `div` con classe `blue` dovrebbe avere un `background-color` blu (blu).
L'elemento `div` con classe `blue` dovrebbe avere un `background-color` blu.
```js
assert($('.blue').css('background-color') == 'rgb(0, 0, 255)');

View File

@ -15,11 +15,11 @@ Creerai un oggetto rotondo trasparente con un'ombra netta leggermente sfalsata s
Per creare un oggetto rotondo, la proprietà `border-radius` dovrebbe essere impostata su un valore del 50%.
Potresti ricordare da una sfida precedente che la proprietà `box-shadow` richiede dei valori per `offset-x`, `offset-y`, `blur-radius`, `spread-radius`, e un valore per il colore, in quest'ordine. I valori `blur-radius` e `spread-radius` sono opzionali.
Potresti ricordare da una sfida precedente che la proprietà `box-shadow` richiede dei valori per `offset-x`, `offset-y`, `blur-radius`, `spread-radius`, e un valore per `color`, in quest'ordine. I valori `blur-radius` e `spread-radius` sono opzionali.
# --instructions--
Manipola l'elemento quadrato nell'editor per creare la forma della luna. Innanzitutto, cambia il `background-color` con `transparent`, quindi imposta la proprietà `border-radius` al 50% per rendere la forma circolare. Infine, cambia la proprietà `box-shadow` per impostare l'`offset-x` a 25px, l'`offset-y` a 10px, il `blur-radius` a 0, lo `spread-radius` a 0, e il colore a `blue`.
Manipola l'elemento quadrato nell'editor per creare la forma della luna. Innanzitutto, cambia il `background-color` con `transparent`, quindi imposta la proprietà `border-radius` al 50% per rendere la forma circolare. Infine, cambia la proprietà `box-shadow` per impostare l'`offset-x` a 25px, l'`offset-y` a 10px, il `blur-radius` a 0, lo `spread-radius` a 0, e `color` a `blue`.
# --hints--
@ -35,7 +35,7 @@ Il valore della proprietà `border-radius` dovrebbe essere impostato a `50%`.
assert(code.match(/border-radius:\s*?50%;/gi));
```
I valori della proprietà `box-shadow` dovrebbero essere impostati a 25px per l'`offset-x`, 10px per l'`offset-y`, 0 per il `blur-radius`, 0 per lo `spread-radius`, e infine `blue` per il colore.
I valori della proprietà `box-shadow` dovrebbero essere impostati a 25px per l'`offset-x`, 10px per l'`offset-y`, 0 per il `blur-radius`, 0 per lo `spread-radius`, e infine `blue` per `color`.
```js
assert(

View File

@ -28,15 +28,15 @@ Affinché gli pseudo-elementi `::before` e `::after` funzionino correttamente, d
# --instructions--
Trasforma l'elemento sullo schermo in un cuore. Nel selettore `heart::after`, cambia il `background-color` a `pink` e il `border-radius` a 50%.
Trasforma l'elemento sullo schermo in un cuore. Nel selettore `.heart::after`, cambia il `background-color` a `pink` e il `border-radius` a 50%.
Poi, seleziona l'elemento di classe `heart` (solo `heart`) e riempi la proprietà `transform`. Usa la funzione `rotate()` con un argomento di -45 gradi.
Infine, nel selettore `heart::before`, imposta la proprietà `content` su una stringa vuota.
Infine, nel selettore `.heart::before`, imposta la proprietà `content` su una stringa vuota.
# --hints--
La proprietà `background-color` del selettore `heart::after` dovrebbe essere `pink`.
La proprietà `background-color` del selettore `.heart::after` dovrebbe essere `pink`.
```js
const heartAfter = code.match(/\.heart::after\s*{[\s\S]+?[^\}]}/g)[0];
@ -45,7 +45,7 @@ assert(
);
```
Il `border-radius` del selettore `heart::after` dovrebbe essere del 50%.
Il `border-radius` del selettore `.heart::after` dovrebbe essere del 50%.
```js
assert(code.match(/border-radius\s*?:\s*?50%/gi).length == 2);
@ -57,7 +57,7 @@ La proprietà `transform` per la classe `heart` dovrebbe utilizzare una funzione
assert(code.match(/transform\s*?:\s*?rotate\(\s*?-45deg\s*?\)/gi));
```
Il `content` del selettore `heart::before` dovrebbe essere una stringa vuota.
Il `content` del selettore `.heart::before` dovrebbe essere una stringa vuota.
```js
assert(code.match(/\.heart::before\s*?{\s*?content\s*?:\s*?("|')\1\s*?;/gi));

View File

@ -11,7 +11,9 @@ dashedName: set-the-font-size-for-multiple-heading-elements
La proprietà `font-size` è usata per specificare quanto grande è il testo in un dato elemento. Questa regola può essere utilizzata per più elementi per creare coerenza visiva del testo in una pagina. In questa sfida, imposterai i valori per tutti i tag da `h1` a `h6` per bilanciare le dimensioni dell'intestazione.
# --instructions-- <p>Nel tag <code>style</code>, imposta la dimensione del font (<code>font-size</code>) per:</p>
# --instructions--
<p>Nel tag <code>style</code>, imposta la dimensione del font (<code>font-size</code>) per:</p>
<ul>
<li>Il tag <code>h1</code> a 68px.</li>

View File

@ -11,7 +11,7 @@ dashedName: use-a-bezier-curve-to-move-a-graphic
Una sfida precedente ha discusso la parola chiave `ease-out` che descrive un cambiamento di animazione che prima accelera e poi rallenta verso la fine dell'animazione. Sulla destra è mostrata la differenza tra la parola chiave `ease-out` (per l'elemento blu) e la parola chiave `linear` (per l'elemento rosso). Una progressione dell'animazione simile alla parola chiave `ease-out` può essere ottenuta utilizzando una curva di Bezier cubica personalizzata.
In generale, cambiando i punti di ancoraggio `p1` e `p2` otteniamo la creazione di diverse curve di Bezier, che controllano come l'animazione progredisce nel tempo. Ecco un esempio di curva Bezier che usa valori per imitare lo stile ease-out:
In generale, cambiando i punti di ancoraggio `p1` e `p2` otteniamo la creazione di diverse curve di Bezier, che controllano come l'animazione progredisce nel tempo. Ecco un esempio di curva di Bezier che usa valori per imitare lo stile `ease-out`:
```css
animation-timing-function: cubic-bezier(0, 0, 0.58, 1);

View File

@ -47,7 +47,7 @@ La fermata del colore a 0 pixel dovrebbe essere `yellow`.
assert(code.match(/yellow\s+?0(px)?/gi));
```
Un color stop a 40 pixel dovrebbe essere `yellow`.
Il primo stop di colore a 40 pixel dovrebbe essere `yellow`.
```js
assert(code.match(/yellow\s+?40px/gi));

View File

@ -11,7 +11,7 @@ dashedName: change-a-variable-for-a-specific-area
Quando crei le tue variabili in `:root` questo imposterà il loro valore per l'intera pagina.
È quindi possibile sovrascrivere queste variabili impostandole di nuovo all'interno di un elemento specifico.
È quindi possibile sovrascrivere queste variabili impostandole nuovamente all'interno di un selettore specifico.
# --instructions--
@ -27,7 +27,7 @@ assert(
);
```
La classe `penguin` non dovrebbe contenere la proprietà `background-color`
La classe `penguin` non dovrebbe contenere la proprietà `background-color`.
```js
assert(

View File

@ -15,7 +15,7 @@ Per creare una variabile CSS, hai solo bisogno di dargli un nome con due trattin
--penguin-skin: gray;
```
Questo creerà una variabile chiamata `--penguin-skin` e assegnerà ad essa il valore di `gray`. Ora puoi usare quella variabile da altre parti nel tuo CSS per impostare il valore di altri elementi su grigio.
Questo creerà una variabile chiamata `--penguin-skin` e assegnerà ad essa il valore di `gray`. Ora puoi usare quella variabile anche da altre parti nel tuo CSS per impostare il valore di altre proprietà su grigio.
# --instructions--

View File

@ -77,7 +77,7 @@ assert(
);
```
Il tuo elemento `h1` dovrebbe ereditare il colore verde dal tuo elemento`body`.
Il tuo elemento `h1` dovrebbe ereditare il colore `green` dal tuo elemento `body`.
```js
assert($('h1').length > 0 && $('h1').css('color') === 'rgb(0, 128, 0)');

View File

@ -27,7 +27,7 @@ class="class1 class2"
**Nota:** Non importa in quale ordine sono elencate le classi nell'elemento HTML.
Quello che veramente conta è l'ordine delle dichiarazioni di `class` nella sezione `<style>`. La seconda dichiarazione avrà sempre la precedenza sulla prima. Poiché `.blue-text` viene dichiarato per secondo, esso sovrascrive gli attributi di `.pink-text`
Quello che veramente conta è l'ordine delle dichiarazioni di `class` nella sezione `<style>`. La seconda dichiarazione avrà sempre la precedenza sulla prima. Poiché `.blue-text` viene dichiarato per secondo, esso sovrascrive gli attributi di `.pink-text`.
# --hints--

View File

@ -15,7 +15,7 @@ Ad esempio, quando lo schermo è più piccolo o più grande del breakpoint (punt
# --instructions--
Nel selettore `:root` della `media query`, fai in modo che `--penguin-size` venga ridefinito con un valore di `200px`. Inoltre, ridefinisci `--penguin-skin` e dagli un valore di `black`. Quindi ridimensiona l'anteprima per vedere questa modifica in azione.
Nel selettore `:root` della media query, fai in modo che `--penguin-size` venga ridefinito con un valore di `200px`. Inoltre, ridefinisci `--penguin-skin` e dagli un valore di `black`. Quindi ridimensiona l'anteprima per vedere questa modifica in azione.
# --hints--

View File

@ -29,7 +29,7 @@ Il tuo elemento `h1` con il testo `I am red!` dovrebbe ricevere il `color` rosso
assert($('.red-text').css('color') === 'rgb(255, 0, 0)');
```
L'`hex code` abbreviato per il colore rosso dovrebbe essere utilizzato al posto del codice hex `#FF0000`.
Dovresti usare il codice esadecimale abbreviato per il colore rosso al posto del codice `#FF0000`.
```js
assert(code.match(/\.red-text\s*?{\s*?color\s*:\s*?#F00\s*?;?\s*?}/gi));
@ -41,7 +41,7 @@ Al tuo elemento `h1` con il testo `I am green!` dovrebbe essere assegnato il `co
assert($('.green-text').css('color') === 'rgb(0, 255, 0)');
```
L'`hex code` abbreviato per il colore verde deve essere utilizzato al posto della parola `#00FF00`.
Dovresti usare il codice esadecimale abbreviato per il colore verde al posto del codice `#00FF00`.
```js
assert(code.match(/\.green-text\s*?{\s*?color\s*:\s*?#0F0\s*?;?\s*?}/gi));
@ -53,7 +53,7 @@ Il tuo elemento `h1` con il testo `I am cyan!` dovrebbe ricevere il `color` cian
assert($('.cyan-text').css('color') === 'rgb(0, 255, 255)');
```
L'`hex code` abbreviato per il colore ciano dovrebbe essere utilizzato al posto della parola `#00FFFF`.
Dovresti usare il codice esadecimale abbreviato per il colore ciano al posto del codice `#00FFFF`.
```js
assert(code.match(/\.cyan-text\s*?{\s*?color\s*:\s*?#0FF\s*?;?\s*?}/gi));
@ -65,7 +65,7 @@ Il tuo elemento `h1` con il testo `I am fuchsia!` dovrebbe ricevere il `color` f
assert($('.fuchsia-text').css('color') === 'rgb(255, 0, 255)');
```
L'`hex code` abbreviato per il colore fucsia dovrebbe essere utilizzato al posto dell'hex code `#FF00FF`.
Dovresti usare il codice esadecimale abbreviato per il colore fucsia invece del codice `#FF00FF`.
```js
assert(code.match(/\.fuchsia-text\s*?{\s*?color\s*:\s*?#F0F\s*?;?\s*?}/gi));

View File

@ -27,13 +27,13 @@ Sostituisci la parola `black` nel colore di sfondo dell'elemento `body` con la s
# --hints--
Il tuo elemento `body` dovrebbe avere un colore di sfondo nero.
Il tuo elemento `body` dovrebbe avere il `background-color` nero.
```js
assert($('body').css('background-color') === 'rgb(0, 0, 0)');
```
L'`hex code` per il colore nero dovrebbe essere utilizzato al posto della parola `black`.
L'hex code per il colore nero dovrebbe essere utilizzato al posto della parola `black`.
```js
assert(

View File

@ -11,7 +11,7 @@ dashedName: check-radio-buttons-and-checkboxes-by-default
Puoi settare una casella di spunta o un pulsante di opzione in modo che sia spuntato di default usando l'attributo`checked`.
Per fare questo puoi semplicemente aggiungere la parola `checked`all'interno di un elemento input. Per esempio:
Per fare questo puoi semplicemente aggiungere la parola `checked`all'interno di un elemento `input`. Per esempio:
```html
<input type="radio" name="test-name" checked>

View File

@ -43,7 +43,7 @@ Ciascuno dei tuoi commenti dovrebbe essere chiuso con `-->`.
assert(code.match(/[^fc]-->/g).length > 1);
```
Non dovresti modificare l'ordine dei tag `h1` `h2` o `p` nel codice.
Non dovresti modificare l'ordine degli elementi `h1` `h2` o `p` nel codice.
```js
assert(

View File

@ -9,7 +9,7 @@ dashedName: inform-with-the-paragraph-element
# --description--
Gli elementi `p` sono i preferiti per i paragrafi di testo nei siti web. `p` è l'abbreviazione per "paragrafo".
L'elemento `p` è preferibile per i paragrafi di testo nei siti web. `p` è l'abbreviazione per "paragrafo".
Puoi creare un elemento paragrafo in questo modo:

View File

@ -17,7 +17,7 @@ Ricorda che l'impostazione di un contenitore flex come riga posiziona gli elemen
Ci sono diverse opzioni per come spaziare gli elementi flex lungo la linea che è l'asse principale. Uno dei più comunemente usati è `justify-content: center;`, che allinea tutti gli elementi flex al centro del contenitore flex. Altre opzioni includono:
<ul><li><code>flex-start</code>: allinea gli elementi all'inizio del contenitore flex. Per una riga, questo spinge gli oggetti alla sinistra del contenitore. Per una colonna, questo spinge gli oggetti verso l'alto del contenitore. Questo è l'allineamento predefinito se non viene specificato alcun <code>justify-content</code>.</li><li><code>flex-end</code>: allinea gli elementi alla fine del contenitore flex. Per una riga, questo spinge gli oggetti alla destra del contenitore. Per una colonna, questo spinge gli oggetti verso il fondo del contenitore.</li><li><code>space-between</code>: allinea gli oggetti al centro dell'asse principale, con spazio aggiuntivo tra gli elementi. Il primo e l'ultimo elemento vengono spinti fino all'estremità del contenitore flex. Ad esempio, in una riga il primo elemento è contro il lato sinistro del contenitore, l'ultimo elemento è contro il lato destro del contenitore, quindi lo spazio rimanente è distribuito uniformemente tra gli altri elementi.</li><li><code>space-around</code>: simile a <code>space-between</code> ma il primo e l'ultimo elemento non sono vincolati ai bordi del contenitore, lo spazio è distribuito intorno a tutti gli elementi con metà dello spazio su entrambe le estremità del contenitore flex.</li><li><code>space-evenly</code>: Distribuisce lo spazio uniformemente tra gli elementi flex con uno spazio pieno a entrambe le estremità del contrainer flex</li></ul>
<ul><li><code>flex-start</code>: allinea gli elementi all'inizio del contenitore flex. Per una riga, questo spinge gli oggetti alla sinistra del contenitore. Per una colonna, questo spinge gli oggetti verso l'alto del contenitore. Questo è l'allineamento predefinito se non viene specificato alcun <code>justify-content</code>.</li><li><code>flex-end</code>: allinea gli elementi alla fine del contenitore flex. Per una riga, questo spinge gli oggetti alla destra del contenitore. Per una colonna, questo spinge gli oggetti verso il fondo del contenitore.</li><li><code>space-between</code>: allinea gli oggetti al centro dell'asse principale, con spazio aggiuntivo tra gli elementi. Il primo e l'ultimo elemento vengono spinti fino all'estremità del contenitore flex. Ad esempio, in una riga il primo elemento è contro il lato sinistro del contenitore, l'ultimo elemento è contro il lato destro del contenitore, quindi lo spazio rimanente è distribuito uniformemente tra gli altri elementi.</li><li><code>space-around</code>: simile a <code>space-between</code> ma il primo e l'ultimo elemento non sono vincolati ai bordi del contenitore, lo spazio è distribuito intorno a tutti gli elementi con metà dello spazio su entrambe le estremità del contenitore flex.</li><li><code>space-evenly</code>: distribuisce lo spazio uniformemente tra gli elementi flex con uno spazio pieno a entrambe le estremità del contrainer flex.</li></ul>
# --instructions--

View File

@ -9,7 +9,7 @@ dashedName: use-the-flex-wrap-property-to-wrap-a-row-or-column
# --description--
Flexbox ha una funzione per dividere un elemento flex in più righe (o colonne). Per impostazione predefinita, un contenitore flex si adatterà a tutti gli elementi flex insieme. Ad esempio, una riga sarà tutta su una riga.
Flexbox ha una funzione per dividere un contenitore flex in più righe (o colonne). Per impostazione predefinita, un contenitore flex si adatterà a tutti gli elementi flex insieme. Ad esempio, una riga sarà tutta su una riga.
Tuttavia, usando la proprietà `flex-wrap` potremo dire a CSS di mandare a capo gli oggetti. Questo significa che gli elementi extra si sposteranno in una nuova riga o colonna. Il punto di rottura in cui avviene il ritorno a capo dipende dalle dimensioni degli oggetti e dalle dimensioni del contenitore.

View File

@ -17,7 +17,7 @@ Dopo aver creato un modello di area per il contenitore griglia, come mostrato ne
}
```
Questo consente alla griglia di sapere che vuoi che la classe `item1` vada nell'area denominata `header`. In questo caso, l'elemento userà l'intera riga in alto perché essa è definita come area di intestazione (header).
Questo consente alla griglia di sapere che vuoi che la classe `item1` vada nell'area denominata `header`. In questo caso, l'elemento userà l'intera riga in alto perché essa è definita come area `header`.
# --instructions--

View File

@ -31,7 +31,7 @@ Crea una griglia con tre colonne le cui larghezze sono le seguenti: 1fr, 100px e
# --hints--
La classe `container` dovrebbe avere una proprietà `grid-template-columns` che ha tre colonne con le seguenti larghezze: `1fr, 100px, and 2fr`.
La classe `container` dovrebbe avere una proprietà `grid-template-columns` che ha tre colonne con le seguenti larghezze: `1fr`, `100px`e `2fr`.
```js
assert(

View File

@ -8,9 +8,9 @@ dashedName: convert-celsius-to-fahrenheit
# --description--
L'algoritmo per convertire i gradi da Celsius a Fahrenheit è la temperatura in Celsius moltiplicata per `9/5`, più `32`.
La formula per convertire i gradi da Celsius a Fahrenheit è la temperatura in Celsius moltiplicata per `9/5`, più `32`.
Ti viene data una variabile `celsius` che rappresenta una temperatura in Celsius. Usa la variabile `fahrenheit` già definita e assegnale la temperatura Fahrenheit equivalente alla temperatura Celsius specificata. Usa l'algoritmo definito sopra per aiutarti a convertire la temperatura da Celsius a Fahrenheit.
Ti viene data una variabile `celsius` che rappresenta una temperatura in Celsius. Usa la variabile `fahrenheit` già definita e assegnale la temperatura Fahrenheit equivalente alla temperatura Celsius specificata. Usa la formula mernzionata qui sopra per aiutare a convertire la temperatura da gradi Celsius a Fahrenheit.
# --hints--

View File

@ -19,7 +19,7 @@ Entrambi restituirebbero `true`.
# --instructions--
Finisci di scrivere la funzione in modo che restituisca true se l'oggetto ad essa passato contiene tutti e quattro i nomi, `Alan`, `Jeff`, `Sarah` e `Ryan`, e false altrimenti.
Finisci di scrivere la funzione in modo che restituisca `true` se l'oggetto ad essa passato contiene tutti e quattro i nomi, `Alan`, `Jeff`, `Sarah` e `Ryan`, altrimenti da come risultato `false`.
# --hints--

View File

@ -10,7 +10,7 @@ dashedName: remove-items-using-splice
Ok, quindi abbiamo imparato a rimuovere gli elementi dall'inizio e dalla fine degli array usando `shift()` e `pop()`, ma cosa succede se vogliamo rimuovere un elemento da qualche parte nel mezzo? O rimuovere più di un elemento alla volta? Beh, ecco dove entra in gioco `splice()`. `splice()` ci permette di fare proprio questo: **rimuovere qualunque numero di elementi consecutivi** da qualsiasi punto di un array.
`splice()` può richiedere fino a 3 parametri, ma per ora ci concentreremo solo sui primi 2. I primi due parametri di `splice()` sono interi che rappresentano indici, o posizioni, dell'array su cui viene chiamato `splice()`. E ricorda, gli array sono *indicizzati a zero*, quindi per indicare il primo elemento di un array, useremo `0`. Il primo parametro di `splice()`rappresenta l'indice dell'array da cui iniziare a rimuovere gli elementi, mentre il secondo parametro indica il numero di elementi da eliminare. Ad esempio:
`splice()` può richiedere fino a 3 parametri, ma per ora ci concentreremo solo sui primi 2. I primi due parametri di `splice()` sono interi che rappresentano indici, o posizioni, dell'array sul quale viene chiamato `splice()`. E ricorda, gli array sono *indicizzati a zero*, quindi per indicare il primo elemento di un array, useremo `0`. Il primo parametro di `splice()`rappresenta l'indice dell'array da cui iniziare a rimuovere gli elementi, mentre il secondo parametro indica il numero di elementi da eliminare. Ad esempio:
```js
let array = ['today', 'was', 'not', 'so', 'great'];

View File

@ -19,11 +19,11 @@ Gli indici degli array sono scritti nella stessa notazione tra parentesi usata d
```js
const array = [50, 60, 70];
array[0];
console.log(array[0]);
const data = array[1];
```
`array[0]` ora è `50` e `data` ha il valore `60`.
`console.log(array[0])` scrive `50`, e `data` ha il valore `60`.
**Nota:** Non ci dovrebbero essere spazi tra il nome dell'array e le parentesi quadre, come in `array [0]`. Anche se JavaScript è in grado di elaborarlo correttamente, questo potrebbe confondere altri programmatori che leggono il tuo codice.

View File

@ -31,13 +31,13 @@ assert(
);
```
Dopo `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")`, `tracks` dovrebbero avere la stringa `Take a Chance on Me` come ultimo elemento.
Dopo `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")`, `tracks` dovrebbe avere la stringa `Take a Chance on Me` come solo e ultimo elemento.
```js
assert(
updateRecords(_recordCollection, 5439, 'tracks', 'Take a Chance on Me')[5439][
'tracks'
].pop() === 'Take a Chance on Me'
updateRecords(_recordCollection, 5439, 'tracks', 'Take a Chance on Me') &&
_recordCollection[5439]['tracks'].length === 1 &&
_recordCollection[5439]['tracks'].pop() === 'Take a Chance on Me'
);
```

View File

@ -9,7 +9,7 @@ dashedName: understanding-uninitialized-variables
# --description--
Quando vengono dichiarate delle variabili in JavaScript, esse hanno un valore iniziale `undefined`. Se esegui un'operazione matematica su una variabile `undefined`, il risultato sarà `NaN` che significa <dfn>"Not a Number"</dfn> (non è un numero). Se concateni una stringa con una variabile `undefined`, otterrai una <dfn>stringa</dfn> letterale `undefined`.
Quando vengono dichiarate delle variabili in JavaScript, esse hanno un valore iniziale `undefined`. Se esegui un'operazione matematica su una variabile `undefined`, il risultato sarà `NaN` che significa <dfn>"Not a Number"</dfn> (non è un numero). Se concateni una stringa con una variabile `undefined`, otterrai una <dfn>string</dfn> di valore `undefined`.
# --instructions--

View File

@ -18,120 +18,123 @@ Ricorda, puoi accedere alle proprietà dell'oggetto tramite la notazione a punti
# --hints--
`truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex")` dovrebbe restituire `true`.
`truthCheck([{name: "Quincy", role: "Founder", isBot: false}, {name: "Naomi", role: "", isBot: false}, {name: "Camperbot", role: "Bot", isBot: true}], "isBot")` dovrebbe restituire `false`.
```js
assert.strictEqual(
truthCheck(
[
{ user: 'Tinky-Winky', sex: 'male' },
{ user: 'Dipsy', sex: 'male' },
{ user: 'Laa-Laa', sex: 'female' },
{ user: 'Po', sex: 'female' }
],
'sex'
),
true
);
assert.strictEqual(truthCheck(
[
{ name: "Quincy", role: "Founder", isBot: false },
{ name: "Naomi", role: "", isBot: false },
{ name: "Camperbot", role: "Bot", isBot: true }
],
"isBot"), false);
```
`truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex")` dovrebbe restituire `false`.
`truthCheck([{name: "Quincy", role: "Founder", isBot: false}, {name: "Naomi", role: "", isBot: false}, {name: "Camperbot", role: "Bot", isBot: true}], "name")` dovrebbe restituire `true`.
```js
assert.strictEqual(
truthCheck(
[
{ user: 'Tinky-Winky', sex: 'male' },
{ user: 'Dipsy' },
{ user: 'Laa-Laa', sex: 'female' },
{ user: 'Po', sex: 'female' }
],
'sex'
),
false
);
assert.strictEqual(truthCheck(
[
{ name: "Quincy", role: "Founder", isBot: false },
{ name: "Naomi", role: "", isBot: false },
{ name: "Camperbot", role: "Bot", isBot: true }
],
"name"), true);
```
`truthCheck([{"user": "Tinky-Winky", "sex": "male", "age": 0}, {"user": "Dipsy", "sex": "male", "age": 3}, {"user": "Laa-Laa", "sex": "female", "age": 5}, {"user": "Po", "sex": "female", "age": 4}], "age")` dovrebbe restituire `false`.
`truthCheck([{name: "Quincy", role: "Founder", isBot: false}, {name: "Naomi", role: "", isBot: false}, {name: "Camperbot", role: "Bot", isBot: true}], "role")` dovrebbe restituire `false`.
```js
assert.strictEqual(
truthCheck(
[
{ user: 'Tinky-Winky', sex: 'male', age: 2 },
{ user: 'Dipsy', sex: 'male', age: 0 },
{ user: 'Laa-Laa', sex: 'female', age: 5 },
{ user: 'Po', sex: 'female', age: 4 }
],
'age'
),
false
);
assert.strictEqual(truthCheck(
[
{ name: "Quincy", role: "Founder", isBot: false },
{ name: "Naomi", role: "", isBot: false },
{ name: "Camperbot", role: "Bot", isBot: true }
],
"role"), false);
```
`truthCheck([{"name": "Pete", "onBoat": true}, {"name": "Repeat", "onBoat": true}, {"name": "FastForward", "onBoat": null}], "onBoat")` dovrebbe restituire `false`.
`truthCheck([{name: "Pikachu", number: 25, caught: 3}, {name: "Togepi", number: 175, caught: 1}], "number")` dovrebbe ritornare `true`.
```js
assert.strictEqual(
truthCheck(
[
{ name: 'Pete', onBoat: true },
{ name: 'Repeat', onBoat: true },
{ name: 'FastForward', onBoat: null }
],
'onBoat'
),
false
);
assert.strictEqual(truthCheck(
[
{ name: "Pikachu", number: 25, caught: 3 },
{ name: "Togepi", number: 175, caught: 1 },
],
"number"), true);
```
`truthCheck([{"name": "Pete", "onBoat": true}, {"name": "Repeat", "onBoat": true, "alias": "Repete"}, {"name": "FastForward", "onBoat": true}], "onBoat")` dovrebbe restituire `true`.
`truthCheck([{name: "Pikachu", number: 25, caught: 3}, {name: "Togepi", number: 175, caught: 1}, {name: "MissingNo", number: NaN, caught: 0}], "caught")` dovrebbe restituire `false`.
```js
assert.strictEqual(
truthCheck(
[
{ name: 'Pete', onBoat: true },
{ name: 'Repeat', onBoat: true, alias: 'Repete' },
{ name: 'FastForward', onBoat: true }
],
'onBoat'
),
true
);
assert.strictEqual(truthCheck(
[
{ name: "Pikachu", number: 25, caught: 3 },
{ name: "Togepi", number: 175, caught: 1 },
{ name: "MissingNo", number: NaN, caught: 0 },
],
"caught"), false);
```
`truthCheck([{"single": "yes"}], "single")` dovrebbe restituire `true`.
`truthCheck([{name: "Pikachu", number: 25, caught: 3}, {name: "Togepi", number: 175, caught: 1}, {name: "MissingNo", number: NaN, caught: 0}], "number")` dovrebbe restituire `false`.
```js
assert.strictEqual(truthCheck([{ single: 'yes' }], 'single'), true);
assert.strictEqual(truthCheck(
[
{ name: "Pikachu", number: 25, caught: 3 },
{ name: "Togepi", number: 175, caught: 1 },
{ name: "MissingNo", number: NaN, caught: 0 },
],
"number"), false);
```
`truthCheck([{"single": ""}, {"single": "double"}], "single")` dovrebbe restituire `false`.
`truthCheck([{name: "Quincy", username: "QuincyLarson"}, {name: "Naomi", username: "nhcarrigan"}, {name: "Camperbot"}], "username")` dovrebbe restituire `false`.
```js
assert.strictEqual(
truthCheck([{ single: '' }, { single: 'double' }], 'single'),
false
);
assert.strictEqual(truthCheck(
[
{ name: "Quincy", username: "QuincyLarson" },
{ name: "Naomi", username: "nhcarrigan" },
{ name: "Camperbot" }
],
"username"), false);
```
`truthCheck([{"single": "double"}, {"single": undefined}], "single")` dovrebbe restituire `false`.
`truthCheck([{name: "freeCodeCamp", users: [{name: "Quincy"}, {name: "Naomi"}]}, {name: "Code Radio", users: [{name: "Camperbot"}]}, {name: "", users: []}], "users")` dovrebbe restituire `true`.
```js
assert.strictEqual(
truthCheck([{ single: 'double' }, { single: undefined }], 'single'),
false
);
assert.strictEqual(truthCheck(
[
{ name: "freeCodeCamp", users: [{ name: "Quincy" }, { name: "Naomi" }] },
{ name: "Code Radio", users: [{ name: "Camperbot" }] },
{ name: "", users: [] },
],
"users"), true);
```
`truthCheck([{"single": "double"}, {"single": NaN}], "single")` dovrebbe restituire `false`.
`truthCheck([{id: 1, data: {url: "https://freecodecamp.org", name: "freeCodeCamp"}}, {id: 2, data: {url: "https://coderadio.freecodecamp.org/", name: "CodeRadio"}}, {id: null, data: {}}], "data")` dovrebbe restituire `true`.
```js
assert.strictEqual(
truthCheck([{ single: 'double' }, { single: NaN }], 'single'),
false
);
assert.strictEqual(truthCheck(
[
{ id: 1, data: { url: "https://www.freecodecamp.org", name: "freeCodeCamp" } },
{ id: 2, data: { url: "https://coderadio.freecodecamp.org/", name: "CodeRadio" } },
{ id: null, data: {} },
],
"data"), true);
```
`truthCheck([{id: 1, data: {url: "https://freecodecamp.org", name: "freeCodeCamp"}}, {id: 2, data: {url: "https://coderadio.freecodecamp.org/", name: "CodeRadio"}}, {id: null, data: {}}], "id")` dovrebbe restituire `false`.
```js
assert.strictEqual(truthCheck(
[
{ id: 1, data: { url: "https://www.freecodecamp.org", name: "freeCodeCamp" } },
{ id: 2, data: { url: "https://coderadio.freecodecamp.org/", name: "CodeRadio" } },
{ id: null, data: {} },
],
"id"), false);
```
# --seed--
@ -143,7 +146,7 @@ function truthCheck(collection, pre) {
return pre;
}
truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
truthCheck([{name: "Quincy", role: "Founder", isBot: false}, {name: "Naomi", role: "", isBot: false}, {name: "Camperbot", role: "Bot", isBot: true}], "isBot");
```
# --solutions--

View File

@ -22,7 +22,7 @@ Gli alberi binari di ricerca sono strutture di dati molto comuni e utili perché
# --instructions--
Cominceremo con qualcosa di semplice. Qui abbiamo definito lo scheletro di una struttura ad albero binario di ricerca oltre a una funzione per creare nodi per il nostro albero. Nota che ogni nodo può avere un valore sinistro e destro. A questi saranno assegnati sotto-alberi figli, se esistono. Nel nostro albero binario di ricerca, creerai un metodo per aggiungere nuovi valori. Il metodo dovrebbe essere chiamato `add` e dovrebbe accettare un valore intero da aggiungere all'albero. Fai attenzione a mantenere invariata la struttura di un albero binario di ricerca: il valore in ogni figlio sinistro dovrebbe essere inferiore o uguale al valore genitore, e il valore in ogni figlio destro dovrebbe essere maggiore o uguale al valore genitore. Ecco, facciamo in modo che il nostro albero non possa contenere valori duplicati. Se cerchiamo di aggiungere un valore che esiste già, il metodo dovrebbe restituire `null`. Altrimenti, se l'aggiunta è riuscita, dovrebbe essere restituito `undefined`.
Cominceremo con qualcosa di semplice. Qui abbiamo definito lo scheletro di una struttura ad albero binario di ricerca oltre a una funzione per creare nodi per il nostro albero. Nota che ogni nodo può avere un valore sinistro e destro. A questi saranno assegnati sotto-alberi figli, se esistono. Nel nostro albero binario di ricerca, creerai un metodo per aggiungere nuovi valori all'albero. Il metodo dovrebbe essere chiamato `add` e dovrebbe accettare un valore intero da aggiungere all'albero. Fai attenzione a mantenere invariata la struttura di un albero binario di ricerca: il valore in ogni figlio sinistro dovrebbe essere inferiore o uguale al valore genitore, e il valore in ogni figlio destro dovrebbe essere maggiore o uguale al valore genitore. Ecco, facciamo in modo che il nostro albero non possa contenere valori duplicati. Se cerchiamo di aggiungere un valore che esiste già, il metodo dovrebbe restituire `null`. Altrimenti, se l'aggiunta è riuscita, dovrebbe essere restituito `undefined`.
**Suggerimento:** gli alberi sono strutture dati ricorsive per natura!

View File

@ -20,7 +20,7 @@ Fai attenzione a gestire eventuali casi limite durante la scrittura di questi me
# --hints--
La struttura di dati DoublyLinkedList dovrebbe esistere.
La struttura dei dati `DoublyLinkedList` dovrebbe esistere.
```js
assert(
@ -34,7 +34,7 @@ assert(
);
```
La lista DoublyLinkedList dovrebbe avere un metodo chiamato add.
Il `DoublyLinkedList` dovrebbe avere un metodo denominato `add`.
```js
assert(
@ -51,7 +51,7 @@ assert(
);
```
La lista DoublyLinkedList dovrebbe avere un metodo chiamato remove.
Il `DoublyLinkedList` dovrebbe avere un metodo denominato `remove`.
```js
assert(
@ -68,7 +68,7 @@ assert(
);
```
Rimuovere un elemento da una lista vuota dovrebbe restituire null.
Inoltre, la rimozione di qualsiasi elemento da una lista vuota dovrebbe restituire `null`.
```js
assert(
@ -82,7 +82,7 @@ assert(
);
```
Il metodo add dovrebbe aggiungere elementi all'elenco.
Il metodo `add` dovrebbe aggiungere elementi alla lista.
```js
assert(

View File

@ -24,7 +24,7 @@ Assicurati di scrivere il tuo codice per gestire le collisioni!
# --hints--
La struttura di dati HashTable dovrebbe esistere.
La struttura di dati `HashTable` dovrebbe esistere.
```js
assert(
@ -38,7 +38,7 @@ assert(
);
```
L'HashTable dovrebbe avere un metodo add.
La tua classe `HashTable` dovrebbe avere un metodo `add`.
```js
assert(
@ -52,7 +52,7 @@ assert(
);
```
L'HashTable dovrebbe avere un metodo lookup.
La tua classe `HashTable` dovrebbe avere un metodo `lookup`.
```js
assert(
@ -66,7 +66,7 @@ assert(
);
```
L'HashTable dovrebbe avere un metodo remove.
La tua classe `HashTable` dovrebbe avere un metodo `remove`.
```js
assert(
@ -80,7 +80,7 @@ assert(
);
```
Il metodo add dovrebbe aggiungere coppie chiave-valore e il metodo di ricerca dovrebbe restituire i valori associati a una determinata chiave.
Il metodo `add` dovrebbe aggiungere coppie chiave-valore e il metodo `lookup` dovrebbe restituire i valori associati con una determinata chiave.
```js
assert(
@ -95,7 +95,7 @@ assert(
);
```
Il metodo di rimozione dovrebbe accettare una chiave come input e dovrebbe rimuovere la coppia chiave-valore associata.
Il metodo `remove` dovrebbe accettare una chiave come input e rimuovere la coppia chiave-valore associata.
```js
assert(
@ -113,7 +113,7 @@ assert(
);
```
Il metodo di rimozione dovrebbe rimuovere solo la coppia chiave-valore corretta.
Il metodo `remove` dovrebbe rimuovere solo la coppia chiave-valore corretta.
```js
assert(

View File

@ -26,7 +26,7 @@ Facciamo un po' di pratica nel creare la nostra mappa. Poiché gli oggetti JavaS
# --hints--
La struttura di dati Mappa dovrebbe esistere.
La struttura dati `Map` dovrebbe esistere.
```js
assert(
@ -40,7 +40,7 @@ assert(
);
```
L'oggetto Map dovrebbe avere i seguenti metodi: add, remove, get, has, values, clear e size.
L'oggetto `Map` dovrebbe seguire i seguenti metodi: `add`, `remove`, `get`, `has`, `values`, `clear`, and `size`.
```js
assert(
@ -62,7 +62,7 @@ assert(
);
```
Il metodo add dovrebbe aggiungere oggetti alla mappa.
Il metodo `add` dovrebbe aggiungere degli oggetti alla mappa.
```js
assert(
@ -79,7 +79,7 @@ assert(
);
```
Il metodo has dovrebbe restituire true per elementi esistenti e false per oggetti non esistenti.
Il metodo `has` dovrebbe restituire `true` per gli oggetti aggiunti e `false` per quelli assenti.
```js
assert(
@ -94,7 +94,7 @@ assert(
);
```
Il metodo get dovrebbe accettare delle chiavi come input e dovrebbe restituire i valori associati.
Il metodo `get` dovrebbe accettare le chiavi come input e dovrebbe restituire i valori associati.
```js
assert(
@ -109,7 +109,7 @@ assert(
);
```
Il metodo values dovrebbe restituire tutti i valori immagazzinati nella mappa come stringhe in un array.
Il `values` dovrebbe ritornare tutti i valori immagazzinati nella mappa come stringhe in una variabile.
```js
assert(
@ -131,7 +131,7 @@ assert(
);
```
Il metodo clear dovrebbe svuotare la mappa e il metodo size dovrebbe restituire il numeri di oggetti presenti nella mappa.
Il metodo `clear` dovrebbe svuotare la mappa e il metodo `size` dovrebbe restituire il numero di elementi presenti nella mappa.
```js
assert(

View File

@ -16,7 +16,7 @@ Creiamo un trie per memorizzare parole. Accetterà parole attraverso un metodo `
# --hints--
Il Trie dovrebbe avere un metodo add.
La tua classe `HashTable` dovrebbe avere un metodo `add`.
```js
assert(
@ -32,7 +32,7 @@ assert(
);
```
Il Trie dovrebbe avere un metodo print.
Il `Trie` dovrebbe avere `print` come metodo.
```js
assert(
@ -48,7 +48,7 @@ assert(
);
```
Il Trie dovrebbe avere un metodo isWord.
La tua classe `HashTable` dovrebbe avere un metodo `add`.
```js
assert(
@ -93,7 +93,7 @@ assert(
);
```
Il metodo isWord dovrebbe restituire vero solo per le parole aggiunte al trie e falso per tutte le altre parole.
Il `has` dovrebbe ritornare `true` per gli oggetti aggiunti `false` per consentire gli altri oggetti.
```js
assert(

View File

@ -8,7 +8,15 @@ dashedName: create-an-es6-javascript-map
# --description--
La nuova versione di JavaScript ci fornisce un oggetto Map incorporato che fornisce gran parte delle funzionalità che abbiamo scritto a mano nell'ultima sfida. Questo oggetto Map, anche se simile a oggetti JavaScript regolari, fornisce alcune funzionalità utili che agli oggetti normali mancano. Ad esempio, una Map ES6 tiene in memoria l'ordine di inserimento degli elementi che vengono aggiunti. Ecco una panoramica più completa dei suoi metodi: `.has(key)` restituisce true o false in base alla presenza di una chiave `.get(key)` restituisce il valore associato con una chiave `.set(key, value)` aggiunge una nuova coppia chiave-valore `.delete(key)` rimuove una coppia chiave-valore `.clear()` rimuove tutte le coppie chiave-valore `.entries()` restituisce un array con tutte le chiavi in ordine di inserimento `.values()` restituisce un array con tutti i valori in ordine di inserzione
La nuova versione di JavaScript ci fornisce un oggetto Map incorporato che fornisce gran parte delle funzionalità che abbiamo scritto a mano nell'ultima sfida. Questo oggetto Map, anche se simile a oggetti JavaScript regolari, fornisce alcune funzionalità utili che agli oggetti normali mancano. Ad esempio, una Map ES6 tiene in memoria l'ordine di inserimento degli elementi che vengono aggiunti. Ecco una panoramica più completa dei suoi metodi:
- `.has(key)` restituisce vero o falso in base alla presenza di una chiave
- `.get(key)` restituisce il valore associato a una chiave
- `.set(key, value)` imposta una nuova coppia chiave-valore
- `.delete(key)` rimuove una coppia chiave-valore
- `.clear()` rimuove tutte le coppie chiave-valore
- `.entries()` restituisce un array di tutte le chiavi in ordine di inserimento
- `.values()` restituisce un array di tutti i valori in ordine di inserimento
# --instructions--
@ -16,13 +24,13 @@ Definisci un oggetto Map JavaScript e assegna ad esso una variabile chiamata myM
# --hints--
L'oggetto myMap dovrebbe esistere.
L'oggetto `myMap` dovrebbe esistere.
```js
assert(typeof myMap === 'object');
```
myMap dovrebbe contenere la coppia chiave-valore `freeCodeCamp`, `Awesome!`.
`myMap` dovrebbe contenere la coppia chiave-valore `freeCodeCamp`,`Awesome!`.
```js
assert(myMap.get('freeCodeCamp') === 'Awesome!');

View File

@ -18,7 +18,7 @@ Implementa un heap sort con un min heap. Adatta liberamente il codice del tuo ma
# --hints--
La struttura dati MinHeap dovrebbe esistere.
La struttura dati `MinHeap` dovrebbe esistere
```js
assert(
@ -32,7 +32,7 @@ assert(
);
```
MinHeap dovrebbe avere un metodo chiamato insert.
`MinHeap` dovrebbe avere un metodo chiamato `insert`
```js
assert(
@ -48,7 +48,7 @@ assert(
);
```
MinHeap dovrebbe avere un metodo chiamato remove.
`MinHeap` dovrebbe avere un metodo chiamato `remove`
```js
assert(
@ -64,7 +64,7 @@ assert(
);
```
MinHeap dovrebbe avere un metodo chiamato sort.
`MinHeap` dovrebbe avere un metodo chiamato `insert`
```js
assert(
@ -80,7 +80,7 @@ assert(
);
```
Il metodo sort dovrebbe restituire un array che continuete tutto gli elementi aggiunti al min heap ordinati.
Il metodo sort dovrebbe restituire un array che contiene tutti gli elementi aggiunti al min heap ordinati.
```js
assert(

View File

@ -18,7 +18,7 @@ Ogni colonna rappresenterà un arco unico. Inoltre, ogni arco collegherà due no
<blockquote> 1<br> ---<br>1 | 1<br>2 | 0<br>3 | 1</blockquote>
Ecco un esempio di una `incidence matrix` con 4 archi e 4 nodi. Ricorda, le colonne sono gli archi e le righe sono i nodi.
Ecco un esempio di matrice di incidenza con 4 archi e 4 nodi. Ricorda, le colonne sono gli archi e le righe sono i nodi.
<blockquote> 1 2 3 4<br> --------<br>1 | 0 1 1 1<br>2 | 1 1 0 0<br>3 | 1 0 0 1<br>4 | 0 0 1 0</blockquote>

View File

@ -48,7 +48,7 @@ Alla fine, aggiungi un metodo `print` che restituire un array di tutti gli eleme
# --hints--
La struttura dati MaxHeap dovrebbe esistere.
La struttura dati `MaxHeap` dovrebbe esistere
```js
assert(
@ -62,7 +62,7 @@ assert(
);
```
MaxHeap dovrebbe avere un metodo chiamato insert.
`MaxHeap`dovrebbe avere un metodo chiamato `insert`.
```js
assert(
@ -78,7 +78,7 @@ assert(
);
```
MaxHeap dovrebbe avere un metodo chiamato print.
`MaxHeap` dovrebbe avere un metodo chiamato `print`
```js
assert(
@ -94,7 +94,7 @@ assert(
);
```
Il metodo insert dovrebbe aggiungere elementi rispettando la proprietà max heap.
Il metodo `insert` dovrebbe aggiungere elementi in base alla proprietà heap massima
```js
assert(

View File

@ -25,7 +25,7 @@ assert(
);
```
Il primo Set() dovrebbe essere contenuto nel secondo Set
Il primo `Set` dovrebbe essere contenuto nel secondo `Set`
```js
assert(

View File

@ -25,7 +25,7 @@ assert(
);
```
L'unione di un insieme contenente valori ["a", "b", "c"] e un insieme contenente valori ["c", "d"] dovrebbe restituire un nuovo Set contenente valori ["a", "b", "c", "d"].
L'unione di un `Set` contenente valori `["a", "b", "c"]` e un `Set` contenente valori `["c", "d"]` dovrebbe restituire un nuovo `Set` contenente valori `["a", "b", "c", "d"]`.
```js
assert(

View File

@ -22,7 +22,7 @@ Istruzioni: Aggiungere un metodo al nostro max-heap chiamato `remove`. Questo me
# --hints--
La struttura dati MaxHeap dovrebbe esistere.
La struttura dati `MaxHeap` dovrebbe esistere
```js
assert(
@ -36,7 +36,7 @@ assert(
);
```
MaxHeap dovrebbe avere un metodo chiamato print.
`MaxHeap` dovrebbe avere un metodo chiamato `print`.
```js
assert(
@ -52,7 +52,7 @@ assert(
);
```
MaxHeap dovrebbe avere un metodo chiamato insert.
`MaxHeap`dovrebbe avere un metodo chiamato `insert`.
```js
assert(
@ -68,7 +68,7 @@ assert(
);
```
MaxHeap dovrebbe avere un metodo chiamato remove.
`MaxHeap`dovrebbe avere un metodo chiamato `remove`.
```js
assert(

View File

@ -12,7 +12,7 @@ Creiamo un metodo in più per la nostra lista a doppio collegamento, chiamato re
# --hints--
La struttura dei dati DoublyLinkedList dovrebbe esistere.
La struttura di dati DoublyLinkedList dovrebbe esistere.
```js
assert(
@ -26,7 +26,7 @@ assert(
);
```
La lista DoublyLinkedList dovrebbe avere un metodo chiamato reverse.
`DoublyLinkedList` dovrebbe avere un metodo chiamato `reverse`.
```js
assert(
@ -43,7 +43,7 @@ assert(
);
```
Invertire una lista vuota dovrebbe restituire null.
Invertire una lista vuota dovrebbe restituire `null`.
```js
assert(
@ -57,7 +57,7 @@ assert(
);
```
Il metodo reverse dovrebbe invertire l'elenco.
Il metodo `reverse` dovrebbe invertire la lista.
```js
assert(
@ -77,7 +77,7 @@ assert(
);
```
I riferimenti next e previous dovrebbero essere mantenuti correttamente quando un elenco è invertito.
I riferimenti `next` e `previous` dovrebbero essere mantenuti correttamente quando la lista è invertita.
```js
assert(

View File

@ -20,7 +20,9 @@ Di base, se ci fosse stato dato solo il primo termine della sequenza, sarebbe pi
Quindi otterremo i seguenti PO per la sequenza cubica:
$$\begin{array}{ll} OP(1, n) = 1 & 1, {\color{red}1}, 1, 1, \ldots \\\\ OP(2, n) = 7n6 & 1, 8, {\color{red}{15}}, \ldots \\\\ OP(3, n) = 6n^211n+6 & 1, 8, 27, {\color{red}{58}}, \ldots \\\\ OP(4, n) = n^3 & 1, 8, 27, 64, 125, \ldots \end{array}$$
$$\begin{array}{ll} OP(1, n) = 1 & 1, {\color{red}1}, 1, 1, \ldots \\\\
OP(2, n) = 7n6 & 1, 8, {\color{red}{15}}, \ldots \\\\ OP(3, n) = 6n^211n+6 & 1, 8, 27, {\color{red}{58}}, \ldots \\\\
OP(4, n) = n^3 & 1, 8, 27, 64, 125, \ldots \end{array}$$
Chiaramente non esistono BOP per k ≥ 4. Considerando la somma delle FIT generate dai BOP (indicata in $\color{red}{red}$ sopra), otteniamo 1 + 15 + 58 = 74. Considera la seguente funzione generatrice polinomiale di decimo grado:

View File

@ -15,7 +15,10 @@ Lascia che $S(A)$ rappresenti la somma degli elementi nel set A di dimensione n.
Se $S(A)$ è minimizzata per un dato n, la chiameremo somma speciale di un set ottimale. Le prime cinque somme speciali di un set ottimale sono date sotto.
$$\begin{align} & n = 1: \\{1\\} \\\\ & n = 2: \\{1, 2\\} \\\\ & n = 3: \\{2, 3, 4\\} \\\\ & n = 4: \\{3, 5, 6, 7\\} \\\\ & n = 5: \\{6, 9, 11, 12, 13\\} \\\\ \end{align}$$
$$\begin{align} & n = 1: \\{1\\} \\\\
& n = 2: \\{1, 2\\} \\\\ & n = 3: \\{2, 3, 4\\} \\\\
& n = 4: \\{3, 5, 6, 7\\} \\\\ & n = 5: \\{6, 9, 11, 12, 13\\} \\\\
\end{align}$$
Sembra che per un dato set ottimale, $A = \\{a_1, a_2, \ldots, a_n\\}$, il successivo set ottimale è della forma $B = \\{b, a_1 + b, a_2 + b, \ldots, a_n + b\\}$, dove b è l'elemento "di mezzo" della riga precedente.

View File

@ -14,7 +14,9 @@ $$\frac{1}{x} + \frac{1}{y} = \frac{1}{n}$$
Per `n` = 4 ci sono esattamente tre distinte soluzioni:
$$\begin{align} & \frac{1}{5} + \frac{1}{20} = \frac{1}{4}\\\\ \\\\ & \frac{1}{6} + \frac{1}{12} = \frac{1}{4}\\\\ \\\\ & \frac{1}{8} + \frac{1}{8} = \frac{1}{4} \end{align}$$
$$\begin{align} & \frac{1}{5} + \frac{1}{20} = \frac{1}{4}\\\\
\\\\ & \frac{1}{6} + \frac{1}{12} = \frac{1}{4}\\\\
\\\\ & \frac{1}{8} + \frac{1}{8} = \frac{1}{4} \end{align}$$
Qual è il valore più piccolo di `n` per cui il numero di soluzioni distinte supera mille?

View File

@ -20,7 +20,12 @@ Ci sono molte variazioni di regole ma nel gioco più popolare i giocatori inizia
Quando un giocare è in grado di finire sul proprio punteggio viene chiamato un "checkout" e il checkout più alto è 170: T20 T20 D25 (due tripli 20 e un doppio centro). Ci sono esattamente 11 modi distinti per fare checkout con un punteggio di 6:
$$\begin{array} \text{D3} & & \\\\ D1 & D2 & \\\\ S2 & D2 & \\\\ D2 & D1 & \\\\ S4 & D1 & \\\\ S1 & S1 & D2 \\\\ S1 & T1 & D1 \\\\ S1 & S3 & D1 \\\\ D1 & D1 & D1 \\\\ D1 & S2 & D1 \\\\ S2 & S2 & D1 \end{array}$$
$$\begin{array} \text{D3} & & \\\\
D1 & D2 & \\\\ S2 & D2 & \\\\
D2 & D1 & \\\\ S4 & D1 & \\\\
S1 & S1 & D2 \\\\ S1 & T1 & D1 \\\\
S1 & S3 & D1 \\\\ D1 & D1 & D1 \\\\
D1 & S2 & D1 \\\\ S2 & S2 & D1 \end{array}$$
Nota che D1 D2 è considerato diverso da D2 D1 visto che finiscono su doppi diversi. Invece, la combinazione S1 T1 D1 è considerata la stessa di T1 S1 D1. In aggiunta, non includiamo lanci mancati considerando le combinazioni; per esempio, D3 è la stessa cosa di 0 D3 e 0 0 D3. Incredibilmente ci sono 42336 modi diversi per fare checkout in totale. Quanti modi distinti ci sono per un giocatore di fare checkout con un punteggio inferiore a 100?

View File

@ -14,11 +14,16 @@ $$n × n × \ldots × n = n^{15}$$
Ma usando un metodo "binario" è possibile calcolarlo in sei moltiplicazioni:
$$$\start{align} & n × n = n^2\\\\ & n^2 × n^2 = n^4\\\\ & n^4 × n^4 = n^8\\\\ & n^8 × n^4 = n^{12}\\\\ & n^{12} × n^2 = n^{14}\\\\ & n^{14} × n = n^{15} \end{align}$$
$$$\start{align} & n × n = n^2\\\\
& n^2 × n^2 = n^4\\\\ & n^4 × n^4 = n^8\\\\
& n^8 × n^4 = n^{12}\\\\ & n^{12} × n^2 = n^{14}\\\\
& n^{14} × n = n^{15} \end{align}$$
Tuttavia è ancora possibile calcolarlo in sole cinque moltiplicazioni:
$$\begin{align} & n × n = n^2\\\\ & n^2 × n = n^3\\\\ & n^3 × n^3 = n^6\\\\ & n^6 × n^6 = n^{12}\\\\ & n^{12} × n^3 = n^{15} \end{align}$$
$$\begin{align} & n × n = n^2\\\\
& n^2 × n = n^3\\\\ & n^3 × n^3 = n^6\\\\
& n^6 × n^6 = n^{12}\\\\ & n^{12} × n^3 = n^{15} \end{align}$$
Definiremo $m(k)$ in modo che sia il numero minimo di moltiplicazioni per calcolare $n^k$; per esempio $m(15) = 5$.

View File

@ -14,7 +14,8 @@ Per questo problema consideriamo i valori di $x$ per cui $A_{F}(x)$ è un numero
Sorprendentemente
$$\begin{align} A_F(\frac{1}{2}) & = (\frac{1}{2}) × 1 + {(\frac{1}{2})}^2 × 1 + {(\frac{1}{2})}^3 × 2 + {(\frac{1}{2})}^4 × 3 + {(\frac{1}{2})}^5 × 5 + \cdots \\\\ & = \frac{1}{2} + \frac{1}{4} + \frac{2}{8} + \frac{3}{16} + \frac{5}{32} + \cdots \\\\ & = 2 \end{align}$$
$$\begin{align} A_F(\frac{1}{2}) & = (\frac{1}{2}) × 1 + {(\frac{1}{2})}^2 × 1 + {(\frac{1}{2})}^3 × 2 + {(\frac{1}{2})}^4 × 3 + {(\frac{1}{2})}^5 × 5 + \cdots \\\\
& = \frac{1}{2} + \frac{1}{4} + \frac{2}{8} + \frac{3}{16} + \frac{5}{32} + \cdots \\\\ & = 2 \end{align}$$
I valori porrispondenti di $x$ per i primi cinque numeri naturali sono mostrati sotto.

View File

@ -17,13 +17,17 @@ Nell'esempio sottostante si può facilmente verificare che il triangolo marcato
Vogliamo creare una tale matrice triangolare con mille righe, in modo da generare 500500 numeri pseudo-casuali $s_k$ nel range $±2^{19}$, utilizzando un tipo di generatore di numeri casuali (noto come generatore di elementi costitutivi lineari) come segue:
$$\begin{align} t := & \\ 0\\\\ \text{for}\\ & k = 1\\ \text{up to}\\ k = 500500:\\\\ & t := (615949 × t + 797807)\\ \text{modulo}\\ 2^{20}\\\\ & s_k := t 219\\\\ \end{align}$$
$$\begin{align} t := & \\ 0\\\\
\text{for}\\ & k = 1\\ \text{up to}\\ k = 500500:\\\\ & t := (615949 × t + 797807)\\ \text{modulo}\\ 2^{20}\\\\
& s_k := t 219\\\\ \end{align}$$
Thus: $s_1 = 273519$, $s_2 = 153582$, $s_3 = 450905$ etc.
La nostra matrice triangolare è poi formata utilizzando i numeri pseudo-casuali in questo modo:
$$ s_1 \\\\ s_2\\;s_3 \\\\ s_4\\; s_5\\; s_6 \\\\ s_7\\; s_8\\; s_9\\; s_{10} \\\\ \ldots $$
$$ s_1 \\\\
s_2\\;s_3 \\\\ s_4\\; s_5\\; s_6 \\\\
s_7\\; s_8\\; s_9\\; s_{10} \\\\ \ldots $$
I sub-triangoli possono iniziare da qualsiasi elemento dell'array ed estendersi quanto vogliamo (prendendo i due elementi direttamente sotto di esso dalla riga successiva, i tre elementi direttamente al di sotto dalla riga successiva, e così via).

View File

@ -12,7 +12,10 @@ Considera l'equazione diofantina $\frac{1}{a} + \frac{1}{b} = \frac{p}{{10}^n}$
Per $n = 1$ questa equazione ha 20 soluzioni che sono elencate di seguito:
$$\begin{array}{lllll} \frac{1}{1} + \frac{1}{1} = \frac{20}{10} & \frac{1}{1} + \frac{1}{2} = \frac{15}{10} & \frac{1}{1} + \frac{1}{5} = \frac{12}{10} & \frac{1}{1} + \frac{1}{10} = \frac{11}{10} & \frac{1}{2} + \frac{1}{2} = \frac{10}{10} \\\\ \frac{1}{2} + \frac{1}{5} = \frac{7}{10} & \frac{1}{2} + \frac{1}{10} = \frac{6}{10} & \frac{1}{3} + \frac{1}{6} = \frac{5}{10} & \frac{1}{3} + \frac{1}{15} = \frac{4}{10} & \frac{1}{4} + \frac{1}{4} = \frac{5}{10} \\\\ \frac{1}{4} + \frac{1}{4} = \frac{5}{10} & \frac{1}{5} + \frac{1}{5} = \frac{4}{10} & \frac{1}{5} + \frac{1}{10} = \frac{3}{10} & \frac{1}{6} + \frac{1}{30} = \frac{2}{10} & \frac{1}{10} + \frac{1}{10} = \frac{2}{10} \\\\ \frac{1}{11} + \frac{1}{110} = \frac{1}{10} & \frac{1}{12} + \frac{1}{60} = \frac{1}{10} & \frac{1}{14} + \frac{1}{35} = \frac{1}{10} & \frac{1}{15} + \frac{1}{30} = \frac{1}{10} & \frac{1}{20} + \frac{1}{20} = \frac{1}{10} \end{array}$$
$$\begin{array}{lllll} \frac{1}{1} + \frac{1}{1} = \frac{20}{10} & \frac{1}{1} + \frac{1}{2} = \frac{15}{10} & \frac{1}{1} + \frac{1}{5} = \frac{12}{10} & \frac{1}{1} + \frac{1}{10} = \frac{11}{10} & \frac{1}{2} + \frac{1}{2} = \frac{10}{10} \\\\
\frac{1}{2} + \frac{1}{5} = \frac{7}{10} & \frac{1}{2} + \frac{1}{10} = \frac{6}{10} & \frac{1}{3} + \frac{1}{6} = \frac{5}{10} & \frac{1}{3} + \frac{1}{15} = \frac{4}{10} & \frac{1}{4} + \frac{1}{4} = \frac{5}{10} \\\\
\frac{1}{4} + \frac{1}{4} = \frac{5}{10} & \frac{1}{5} + \frac{1}{5} = \frac{4}{10} & \frac{1}{5} + \frac{1}{10} = \frac{3}{10} & \frac{1}{6} + \frac{1}{30} = \frac{2}{10} & \frac{1}{10} + \frac{1}{10} = \frac{2}{10} \\\\
\frac{1}{11} + \frac{1}{110} = \frac{1}{10} & \frac{1}{12} + \frac{1}{60} = \frac{1}{10} & \frac{1}{14} + \frac{1}{35} = \frac{1}{10} & \frac{1}{15} + \frac{1}{30} = \frac{1}{10} & \frac{1}{20} + \frac{1}{20} = \frac{1}{10} \end{array}$$
Quante soluzioni ha questa equazione per $1 ≤ n ≤ 9$?

View File

@ -12,7 +12,10 @@ Un numero composito può essere fattorizzato in molti modi diversi.
Per esempio, senza includere la moltiplicazione per 1, 24 può essere fattorizzato in 7 modi distinti:
$$\begin{align} & 24 = 2 \times 2 \times 2 \times 3\\\\ & 24 = 2 \times 3 \times 4 \\\\ & 24 = 2 \times 2 \times 6 \\\\ & 24 = 4 \times 6 \\\\ & 24 = 3 \times 8 \\\\ & 24 = 2 \times 12 \\\\ & 24 = 24 \end{align}$$
$$\begin{align} & 24 = 2 \times 2 \times 2 \times 3\\\\
& 24 = 2 \times 3 \times 4 \\\\ & 24 = 2 \times 2 \times 6 \\\\
& 24 = 4 \times 6 \\\\ & 24 = 3 \times 8 \\\\
& 24 = 2 \times 12 \\\\ & 24 = 24 \end{align}$$
Ricordati che le radice numerica di un numero, in base 10, si trova sommando le cifre del numero e ripetendo il processo fino a che il risultato non è inferiore a 10. Quindi la radice numerica di 467 è 8.

View File

@ -12,7 +12,8 @@ Per ogni $N$, $f(N)$ rappresenti le ultime cinque cifre prima degli zero finali
Ad esempio,
$$\begin{align} & 9! = 362880 \\; \text{so} \\; f(9) = 36288 \\\\ & 10! = 3628800 \\; \text{so} \\; f(10) = 36288 \\\\ & 20! = 2432902008176640000 \\; \text{so} \\; f(20) = 17664 \end{align}$$
$$\begin{align} & 9! = 362880 \\; \text{so} \\; f(9) = 36288 \\\\
& 10! = 3628800 \\; \text{so} \\; f(10) = 36288 \\\\ & 20! = 2432902008176640000 \\; \text{so} \\; f(20) = 17664 \end{align}$$
Trova $f(1,000,000,000,000)$

View File

@ -18,7 +18,8 @@ Si può vedere che il triangolo di dimensione 2 contiene 4 triangoli di dimensio
Sia $T(n)$ il numero di triangoli presenti in un triangolo di dimensione $n$, allora
$$\begin{align} & T(1) = 16 \\\\ & T(2) = 104 \end{align}$$
$$\begin{align} & T(1) = 16 \\\\
& T(2) = 104 \end{align}$$
Trova $T(36)$.

View File

@ -16,13 +16,17 @@ Sia $T$, un punto in comune di due segmenti $L_1$ e $L_2$, un vero punto d'inter
Considera i tre segmenti $L_1$, $L_2$, e $L_3$:
$$\begin{align} & L_1: (27, 44) \\;\text{to}\\; (12, 32) \\\\ & L_2: (46, 53) \\;\text{to}\\; (17, 62) \\\\ & L_3: (46, 70) \\;\text{to}\\; (22, 40) \\\\ \end{align}$$
$$\begin{align} & L_1: (27, 44) \\;\text{to}\\; (12, 32) \\\\
& L_2: (46, 53) \\;\text{to}\\; (17, 62) \\\\ & L_3: (46, 70) \\;\text{to}\\; (22, 40) \\\\
\end{align}$$
Si può verificare che i segmenti $L_2$ e $L_3$ hanno un vero punto di intersezione. Notiamo che essendo uno dei terminali di $L_3$: (22, 40) su $L_1$ questo non è un vero punto d'intersezione. $L_1$ e $L_2$ non hanno un punto in comune. Quindi tra i tre segmenti troviamo un vero punto di intersezione.
Adesso facciamo lo stesso per 5000 segmenti. A questo fine, generiamo 20000 numeri casuali usando il generatore pseudo-casuale di numeri chiamato "Blum Blum Shub".
$$\begin{align} & s_0 = 290797 \\\\ & s_{n + 1} = s_n × s_n (\text{modulo}\\; 50515093) \\\\ & t_n = s_n (\text{modulo}\\; 500) \\\\ \end{align}$$
$$\begin{align} & s_0 = 290797 \\\\
& s_{n + 1} = s_n × s_n (\text{modulo}\\; 50515093) \\\\ & t_n = s_n (\text{modulo}\\; 500) \\\\
\end{align}$$
Per creare ogni segmento, usiamo quattro numeri consecutivi $t_n$. Quindi, il primo segmento è dato da:

View File

@ -12,7 +12,9 @@ Una griglia 4x4 è riempita con cifre $d$, $0 ≤ d ≤ 9$.
Si può vedere che nella griglia
$$\begin{array}{} 6 & 3 & 3 & 0 \\\\ 5 & 0 & 4 & 3 \\\\ 0 & 7 & 1 & 4 \\\\ 1 & 2 & 4 & 5 \end{array}$$
$$\begin{array}{} 6 & 3 & 3 & 0 \\\\
5 & 0 & 4 & 3 \\\\ 0 & 7 & 1 & 4 \\\\
1 & 2 & 4 & 5 \end{array}$$
la somma di ciascuna riga e di ciascuna colonna ha il valore 12. Inoltre la somma di ogni diagonale è anch'essa 12.

View File

@ -14,7 +14,9 @@ Sia $f(0) = 1$ e sia $f(n)$ il numero di modi diversi in cui $n$ può essere esp
Per esempio, $f(10)=5$ visto che ci sono cinque modi diversi di esprimere 10:
$$\begin{align} & 1 + 1 + 8 \\\\ & 1 + 1 + 4 + 4 \\\\ & 1 + 1 + 2 + 2 + 4 \\\\ & 2 + 4 + 4 \\\\ & 2 + 8 \end{align}$$
$$\begin{align} & 1 + 1 + 8 \\\\
& 1 + 1 + 4 + 4 \\\\ & 1 + 1 + 2 + 2 + 4 \\\\
& 2 + 4 + 4 \\\\ & 2 + 8 \end{align}$$
Qual è il valore di $f({10}^{25})$?

View File

@ -12,7 +12,8 @@ dashedName: >-
Prendi il numero 6 e moltiplicalo per 1273 e 9854:
$$\begin{align} & 6 × 1273 = 7638 \\\\ & 6 × 9854 = 59124 \\\\ \end{align}$$
$$\begin{align} & 6 × 1273 = 7638 \\\\
& 6 × 9854 = 59124 \\\\ \end{align}$$
Concatenando questi prodotti otteniamo il pandigitale 1-9 763859124. Chiamiamo 763859124 il "prodotto concatenato di 6 e (1273, 9854)". Nota anche, che la concatenazione dei numeri di input, 612739854, è pure un numero pandigitale 1-9.

View File

@ -12,7 +12,9 @@ dashedName: >-
Per un numero intero positivo $n$, sia $f(n)$ la somma dei quadrati delle cifre (in base 10) di $n$, es.
$$\begin{align} & f(3) = 3^2 = 9 \\\\ & f(25) = 2^2 + 5^2 = 4 + 25 = 29 \\\\ & f(442) = 4^2 + 4^2 + 2^2 = 16 + 16 + 4 = 36 \\\\ \end{align}$$
$$\begin{align} & f(3) = 3^2 = 9 \\\\
& f(25) = 2^2 + 5^2 = 4 + 25 = 29 \\\\ & f(442) = 4^2 + 4^2 + 2^2 = 16 + 16 + 4 = 36 \\\\
\end{align}$$
Trova le ultime nove cifre della somma di tutti $n$, $0 &lt; n &lt; {10}^{20}$, tali che $f(n)$ sia un quadrato perfetto.

View File

@ -10,7 +10,8 @@ dashedName: problem-180-rational-zeros-of-a-function-of-three-variables
Per qualsiasi intero $n$, considera le tre funzioni
$$\begin{align} & f_{1,n}(x,y,z) = x^{n + 1} + y^{n + 1} z^{n + 1}\\\\ & f_{2,n}(x,y,z) = (xy + yz + zx) \times (x^{n - 1} + y^{n - 1} z^{n - 1})\\\\ & f_{3,n}(x,y,z) = xyz \times (x^{n - 2} + y^{n - 2} z^{n - 2}) \end{align}$$
$$\begin{align} & f_{1,n}(x,y,z) = x^{n + 1} + y^{n + 1} z^{n + 1}\\\\
& f_{2,n}(x,y,z) = (xy + yz + zx) \times (x^{n - 1} + y^{n - 1} z^{n - 1})\\\\ & f_{3,n}(x,y,z) = xyz \times (x^{n - 2} + y^{n - 2} z^{n - 2}) \end{align}$$
e la loro combinazione

View File

@ -14,13 +14,27 @@ Invece di chiodini colorati, devi indovinare una sequenza segreta di cifre. Dopo
Per esempio, date le seguenti ipotesi per una sequenza segreta di 5 cifre,
$$\begin{align} & 90342 ;2\\;\text{correct}\\\\ & 70794 ;0\\;\text{correct}\\\\ & 39458 ;2\\;\text{correct}\\\\ & 34109 ;1\\;\text{correct}\\\\ & 51545 ;2\\;\text{correct}\\\\ & 12531 ;1\\;\text{correct} \end{align}$$
$$\begin{align} & 90342 ;2\\;\text{correct}\\\\
& 70794 ;0\\;\text{correct}\\\\ & 39458 ;2\\;\text{correct}\\\\
& 34109 ;1\\;\text{correct}\\\\ & 51545 ;2\\;\text{correct}\\\\
& 12531 ;1\\;\text{correct} \end{align}$$
La sequenza corretta 39542 è unica.
Sulla base delle ipotesi seguenti,
$$\begin{align} & 5616185650518293 ;2\\;\text{correct}\\\\ & 3847439647293047 ;1\\;\text{correct}\\\\ & 5855462940810587 ;3\\;\text{correct}\\\\ & 9742855507068353 ;3\\;\text{correct}\\\\ & 4296849643607543 ;3\\;\text{correct}\\\\ & 3174248439465858 ;1\\;\text{correct}\\\\ & 4513559094146117 ;2\\;\text{correct}\\\\ & 7890971548908067 ;3\\;\text{correct}\\\\ & 8157356344118483 ;1\\;\text{correct}\\\\ & 2615250744386899 ;2\\;\text{correct}\\\\ & 8690095851526254 ;3\\;\text{correct}\\\\ & 6375711915077050 ;1\\;\text{correct}\\\\ & 6913859173121360 ;1\\;\text{correct}\\\\ & 6442889055042768 ;2\\;\text{correct}\\\\ & 2321386104303845 ;0\\;\text{correct}\\\\ & 2326509471271448 ;2\\;\text{correct}\\\\ & 5251583379644322 ;2\\;\text{correct}\\\\ & 1748270476758276 ;3\\;\text{correct}\\\\ & 4895722652190306 ;1\\;\text{correct}\\\\ & 3041631117224635 ;3\\;\text{correct}\\\\ & 1841236454324589 ;3\\;\text{correct}\\\\ & 2659862637316867 ;2\\;\text{correct} \end{align}$$
$$\begin{align} & 5616185650518293 ;2\\;\text{correct}\\\\
& 3847439647293047 ;1\\;\text{correct}\\\\ & 5855462940810587 ;3\\;\text{correct}\\\\
& 9742855507068353 ;3\\;\text{correct}\\\\ & 4296849643607543 ;3\\;\text{correct}\\\\
& 3174248439465858 ;1\\;\text{correct}\\\\ & 4513559094146117 ;2\\;\text{correct}\\\\
& 7890971548908067 ;3\\;\text{correct}\\\\ & 8157356344118483 ;1\\;\text{correct}\\\\
& 2615250744386899 ;2\\;\text{correct}\\\\ & 8690095851526254 ;3\\;\text{correct}\\\\
& 6375711915077050 ;1\\;\text{correct}\\\\ & 6913859173121360 ;1\\;\text{correct}\\\\
& 6442889055042768 ;2\\;\text{correct}\\\\ & 2321386104303845 ;0\\;\text{correct}\\\\
& 2326509471271448 ;2\\;\text{correct}\\\\ & 5251583379644322 ;2\\;\text{correct}\\\\
& 1748270476758276 ;3\\;\text{correct}\\\\ & 4895722652190306 ;1\\;\text{correct}\\\\
& 3041631117224635 ;3\\;\text{correct}\\\\ & 1841236454324589 ;3\\;\text{correct}\\\\
& 2659862637316867 ;2\\;\text{correct} \end{align}$$
Trova la sequenza segreta unica a 16 cifre.

View File

@ -10,7 +10,13 @@ dashedName: problem-196-prime-triplets
Costruisci un triangolo da tutti gli interi positivi nel modo seguente:
$$\begin{array}{rrr} & 1 \\\\ & \color{red}{2} & \color{red}{3} \\\\ & 4 & \color{red}{5} & 6 \\\\ & \color{red}{7} & 8 & 9 & 10 \\\\ & \color{red}{11} & 12 & \color{red}{13} & 14 & 15 \\\\ & 16 & \color{red}{17} & 18 & \color{red}{19} & 20 & 21 \\\\ & 22 & \color{red}{23} & 24 & 25 & 26 & 27 & 28 \\\\ & \color{red}{29} & 30 & \color{red}{31} & 32 & 33 & 34 & 35 & 36 \\\\ & \color{red}{37} & 38 & 39 & 40 & \color{red}{41} & 42 & \color{red}{43} & 44 & 45 \\\\ & 46 & \color{red}{47} & 48 & 49 & 50 & 51 & 52 & \color{red}{53} & 54 & 55 \\\\ & 56 & 57 & 58 & \color{red}{59} & 60 & \color{red}{61} & 62 & 63 & 64 & 65 & 66 \\\\ & \cdots \end{array}$$
$$\begin{array}{rrr} & 1 \\\\
& \color{red}{2} & \color{red}{3} \\\\ & 4 & \color{red}{5} & 6 \\\\
& \color{red}{7} & 8 & 9 & 10 \\\\ & \color{red}{11} & 12 & \color{red}{13} & 14 & 15 \\\\
& 16 & \color{red}{17} & 18 & \color{red}{19} & 20 & 21 \\\\ & 22 & \color{red}{23} & 24 & 25 & 26 & 27 & 28 \\\\
& \color{red}{29} & 30 & \color{red}{31} & 32 & 33 & 34 & 35 & 36 \\\\ & \color{red}{37} & 38 & 39 & 40 & \color{red}{41} & 42 & \color{red}{43} & 44 & 45 \\\\
& 46 & \color{red}{47} & 48 & 49 & 50 & 51 & 52 & \color{red}{53} & 54 & 55 \\\\ & 56 & 57 & 58 & \color{red}{59} & 60 & \color{red}{61} & 62 & 63 & 64 & 65 & 66 \\\\
& \cdots \end{array}$$
Ogni numero intero positivo ha fino a otto vicini nel triangolo.

View File

@ -22,7 +22,7 @@ Considerando i termini nella sequenza di Fibonacci i cui valori non superano `n`
assert(typeof fiboEvenSum(10) === 'number');
```
La tua funzione dovrebbe restituire un valore `pari`.
La tua funzione dovrebbe restituire un valore pari.
```js
assert.equal(fiboEvenSum(10) % 2 === 0, true);

View File

@ -12,7 +12,17 @@ Per qualsiasi insieme $A$ di numeri, sia $sum(A)$ la somma degli elementi di $A$
Considera l'insieme $B = \\{1,3,6,8,10,11\\}$. Ci sono 20 sottoinsiemi di $B$ contenenti tre elementi, e le loro somme sono:
$$\begin{align} & sum(\\{1,3,6\\}) = 10 \\\\ & sum(\\{1,3,8\\}) = 12 \\\\ & sum(\\{1,3,10\\}) = 14 \\\\ & sum(\\{1,3,11\\}) = 15 \\\\ & sum(\\{1,6,8\\}) = 15 \\\\ & sum(\\{1,6,10\\}) = 17 \\\\ & sum(\\{1,6,11\\}) = 18 \\\\ & sum(\\{1,8,10\\}) = 19 \\\\ & sum(\\{1,8,11\\}) = 20 \\\\ & sum(\\{1,10,11\\}) = 22 \\\\ & sum(\\{3,6,8\\}) = 17 \\\\ & sum(\\{3,6,10\\}) = 19 \\\\ & sum(\\{3,6,11\\}) = 20 \\\\ & sum(\\{3,8,10\\}) = 21 \\\\ & sum(\\{3,8,11\\}) = 22 \\\\ & sum(\\{3,10,11\\}) = 24 \\\\ & sum(\\{6,8,10\\}) = 24 \\\\ & sum(\\{6,8,11\\}) = 25 \\\\ & sum(\\{6,10,11\\}) = 27 \\\\ & sum(\\{8,10,11\\}) = 29 \\end{align}$$
$$\begin{align} & sum(\\{1,3,6\\}) = 10 \\\\
& sum(\\{1,3,8\\}) = 12 \\\\ & sum(\\{1,3,10\\}) = 14 \\\\
& sum(\\{1,3,11\\}) = 15 \\\\ & sum(\\{1,6,8\\}) = 15 \\\\
& sum(\\{1,6,10\\}) = 17 \\\\ & sum(\\{1,6,11\\}) = 18 \\\\
& sum(\\{1,8,10\\}) = 19 \\\\ & sum(\\{1,8,11\\}) = 20 \\\\
& sum(\\{1,10,11\\}) = 22 \\\\ & sum(\\{3,6,8\\}) = 17 \\\\
& sum(\\{3,6,10\\}) = 19 \\\\ & sum(\\{3,6,11\\}) = 20 \\\\
& sum(\\{3,8,10\\}) = 21 \\\\ & sum(\\{3,8,11\\}) = 22 \\\\
& sum(\\{3,10,11\\}) = 24 \\\\ & sum(\\{6,8,10\\}) = 24 \\\\
& sum(\\{6,8,11\\}) = 25 \\\\ & sum(\\{6,10,11\\}) = 27 \\\\
& sum(\\{8,10,11\\}) = 29 \\end{align}$$
Alcune di queste somme si verificano più di una volta, altre sono uniche. Per un insieme $A$, sia $U(A,k)$ l'insieme di somme uniche dei sottoinsiemi di $k$ elementi di $A$, nel nostro esempio troviamo $U(B,3) = \\{10,12,14,18,21,25,27,29\\}$ e $sum(U(B,3)) = 156$.

View File

@ -10,7 +10,11 @@ dashedName: problem-203-squarefree-binomial-coefficients
I coefficienti binomiali $\displaystyle\binom{n}{k}$ possono essere disposti in forma triangolare (il triangolo di Pascal) in questo modo:
$$\begin{array}{ccccccccccccccc} & & & & & & & 1 & & & & & & & \\\\ & & & & & & 1 & & 1 & & & & & & \\\\ & & & & & 1 & & 2 & & 1 & & & & & \\\\ & & & & 1 & & 3 & & 3 & & 1 & & & & \\\\ & & & 1 & & 4 & & 6 & & 4 & & 1 & & & \\\\ & & 1 & & 5 & & 10 & & 10 & & 5 & & 1 & & \\\\ & 1 & & 6 & & 15 & & 20 & & 15 & & 6 & & 1 & \\\\ 1 & & 7 & & 21 & & 35 & & 35 & & 21 & & 7 & & 1 \\\\ & & & & & & & \ldots \end{array}$$
$$\begin{array}{ccccccccccccccc} & & & & & & & 1 & & & & & & & \\\\
& & & & & & 1 & & 1 & & & & & & \\\\ & & & & & 1 & & 2 & & 1 & & & & & \\\\
& & & & 1 & & 3 & & 3 & & 1 & & & & \\\\ & & & 1 & & 4 & & 6 & & 4 & & 1 & & & \\\\
& & 1 & & 5 & & 10 & & 10 & & 5 & & 1 & & \\\\ & 1 & & 6 & & 15 & & 20 & & 15 & & 6 & & 1 & \\\\
1 & & 7 & & 21 & & 35 & & 35 & & 21 & & 7 & & 1 \\\\ & & & & & & & \ldots \end{array}$$
Si può notare che le prime otto righe del triangolo di Pascal contengono dodici numeri distinti: 1, 2, 3, 4, 5, 6, 7, 10, 15, 20, 21 e 35.

View File

@ -20,7 +20,11 @@ Così $P(6) = \frac{1}{2}$.
Nella tabella seguente sono elencati alcuni valori di $P(m)$
$$\begin{align} & P(5) = \frac{1}{1} \\\\ & P(10) = \frac{1}{2} \\\\ & P(15) = \frac{2}{3} \\\\ & P(20) = \frac{1}{2} \\\\ & P(25) = \frac{1}{2} \\\\ & P(30) = \frac{2}{5} \\\\ & \ldots \\\\ & P(180) = \frac{1}{4} \\\\ & P(185) = \frac{3}{13} \end{align}$$
$$\begin{align} & P(5) = \frac{1}{1} \\\\
& P(10) = \frac{1}{2} \\\\ & P(15) = \frac{2}{3} \\\\
& P(20) = \frac{1}{2} \\\\ & P(25) = \frac{1}{2} \\\\
& P(30) = \frac{2}{5} \\\\ & \ldots \\\\
& P(180) = \frac{1}{4} \\\\ & P(185) = \frac{3}{13} \end{align}$$
Trova il più piccolo $m$ per il quale $P(m) &lt; \frac{1}{12\\,345}

View File

@ -12,7 +12,10 @@ Un cuboid allineato all'asse, specificato dai parametri $\{ (x_0,y_0,z_0), (dx,d
Sia $C_1, \ldots, C_{50000}$ una collezione di 50000 cuboidi allineati assialmente in modo che $C_n$ abbia parametri
$$\begin{align} & x_0 = S_{6n - 5} \\; \text{modulo} \\; 10000 \\\\ & y_0 = S_{6n - 4} \\; \text{modulo} \\; 10000 \\\\ & z_0 = S_{6n - 3} \\; \text{modulo} \\; 10000 \\\\ & dx = 1 + (S_{6n - 2} \\; \text{modulo} \\; 399) \\\\ & dy = 1 + (S_{6n - 1} \\; \text{modulo} \\; 399) \\\\ & dz = 1 + (S_{6n} \\; \text{modulo} \\; 399) \\\\ \end{align}$$
$$\begin{align} & x_0 = S_{6n - 5} \\; \text{modulo} \\; 10000 \\\\
& y_0 = S_{6n - 4} \\; \text{modulo} \\; 10000 \\\\ & z_0 = S_{6n - 3} \\; \text{modulo} \\; 10000 \\\\
& dx = 1 + (S_{6n - 2} \\; \text{modulo} \\; 399) \\\\ & dy = 1 + (S_{6n - 1} \\; \text{modulo} \\; 399) \\\\
& dz = 1 + (S_{6n} \\; \text{modulo} \\; 399) \\\\ \end{align}$$
dove $S_1, \ldots, S_{300000}$ provengono dal "Lagged Fibonacci Generator":

View File

@ -12,7 +12,11 @@ Sia $φ$ la funzione toziente di Eulero, cioè per un numero naturale $n$, $φ(n
Iterando $φ$, ogni numero intero positivo genera una serie decrescente di numeri che termina con 1. Ad es. se iniziamo con 5 viene generata la sequenza 5,4,2,1. Ecco un elenco di tutte le catene con lunghezza 4:
$$\begin{align} 5,4,2,1 & \\\\ 7,6,2,1 & \\\\ 8,4,2,1 & \\\\ 9,6,2,1 & \\\\ 10,4,2,1 & \\\\ 12,4,2,1 & \\\\ 14,6,2,1 & \\\\ 18,6,2,1 & \end{align}$$
$$\begin{align} 5,4,2,1 & \\\\
7,6,2,1 & \\\\ 8,4,2,1 & \\\\
9,6,2,1 & \\\\ 10,4,2,1 & \\\\
12,4,2,1 & \\\\ 14,6,2,1 & \\\\
18,6,2,1 & \end{align}$$
Solo due di queste catene iniziano con un primo, la loro somma è 12.

View File

@ -10,7 +10,8 @@ dashedName: problem-228-minkowski-sums
Sia $S_n$ il poligono regolare a $n$ lati i cui vertici $v_k (k = 1, 2, \ldots, n)$ hanno coordinate:
$$\begin{align} & x_k = cos(\frac{2k - 1}{n} × 180°) \\\\ & y_k = sin(\frac{2k - 1}{n} × 180°) \end{align}$$
$$\begin{align} & x_k = cos(\frac{2k - 1}{n} × 180°) \\\\
& y_k = sin(\frac{2k - 1}{n} × 180°) \end{align}$$
Ogni $S_n$ è da considerarsi come una forma riempita consistente di tutti i punti sia del perimetro che dell'interno.

View File

@ -10,13 +10,17 @@ dashedName: problem-229-four-representations-using-squares
Considera il numero 3600. È molto speciale, perché
$$\begin{align} & 3600 = {48}^2 + {36}^2 \\\\ & 3600 = {20}^2 + {2×40}^2 \\\\ & 3600 = {30}^2 + {3×30}^2 \\\\ & 3600 = {45}^2 + {7×15}^2 \\\\ \end{align}$$
$$\begin{align} & 3600 = {48}^2 + {36}^2 \\\\
& 3600 = {20}^2 + {2×40}^2 \\\\ & 3600 = {30}^2 + {3×30}^2 \\\\
& 3600 = {45}^2 + {7×15}^2 \\\\ \end{align}$$
In maniera simile troviamo che $88201 = {99}^2 + {280}^2 = {287}^2 + 2 × {54}^2 = {283}^2 + 3 × {52}^2 = {197}^2 + 7 × {84}^2$.
Nel 1747, Eulero ha provato quali numeri sono rappresentabili come somma di due quadrati. Siamo interessati nel numero $n$ che ammette le rappresentazioni di tutti i seguenti quattro tipi:
$$\begin{align} & n = {a_1}^2 + {b_1}^2 \\\\ & n = {a_2}^2 + 2{b_2}^2 \\\\ & n = {a_3}^2 + 3{b_3}^2 \\\\ & n = {a_7}^2 + 7{b_7}^2 \\\\ \end{align}$$
$$\begin{align} & n = {a_1}^2 + {b_1}^2 \\\\
& n = {a_2}^2 + 2{b_2}^2 \\\\ & n = {a_3}^2 + 3{b_3}^2 \\\\
& n = {a_7}^2 + 7{b_7}^2 \\\\ \end{align}$$
dove i numeri $a_k$ e $b_k$ sono numeri interi positivi.

View File

@ -18,17 +18,21 @@ Sia $A = 1\\,415\\,926\\,535$, $B = 8\\,979\\,323\\,846$. Vogliamo trovare, dici
I primi termini di $F_{A,B}$ sono:
$$\begin{align} & 1\\,415\\,926\\,535 \\\\ & 8\\,979\\,323\\,846 \\\\ & 14\\,159\\,265\\,358\\,979\\,323\\,846 \\\\ & 897\\,932\\,384\\,614\\,159\\,265\\,358\\,979\\,323\\,846 \\\\ & 14\\,159\\,265\\,358\\,979\\,323\\,846\\,897\\,932\\,384\\,614\\,15\color{red}{9}\\,265\\,358\\,979\\,323\\,846 \end{align}$$
$$\begin{align} & 1\\,415\\,926\\,535 \\\\
& 8\\,979\\,323\\,846 \\\\ & 14\\,159\\,265\\,358\\,979\\,323\\,846 \\\\
& 897\\,932\\,384\\,614\\,159\\,265\\,358\\,979\\,323\\,846 \\\\ & 14\\,159\\,265\\,358\\,979\\,323\\,846\\,897\\,932\\,384\\,614\\,15\color{red}{9}\\,265\\,358\\,979\\,323\\,846 \end{align}$$
Allora $D_{A,B}(35)$ è la ${35}$-sima cifra nel qunto termine, che è 9.
Ora utilizziamo per $A$ le prime 100 cifre di $π$ dietro il punto decimale:
$$\begin{align} & 14\\,159\\,265\\,358\\,979\\,323\\,846\\,264\\,338\\,327\\,950\\,288\\,419\\,716\\,939\\,937\\,510 \\\\ & 58\\,209\\,749\\,445\\,923\\,078\\,164\\,062\\,862\\,089\\,986\\,280\\,348\\,253\\,421\\,170\\,679 \end{align}$$
$$\begin{align} & 14\\,159\\,265\\,358\\,979\\,323\\,846\\,264\\,338\\,327\\,950\\,288\\,419\\,716\\,939\\,937\\,510 \\\\
& 58\\,209\\,749\\,445\\,923\\,078\\,164\\,062\\,862\\,089\\,986\\,280\\,348\\,253\\,421\\,170\\,679 \end{align}$$
e per $B$ le prossime cento cifre:
$$\begin{align} & 82\\,148\\,086\\,513\\,282\\,306\\,647\\,093\\,844\\,609\\,550\\,582\\,231\\,725\\,359\\,408\\,128 \\\\ & 48\\,111\\,745\\,028\\,410\\,270\\,193\\,852\\,110\\,555\\,964\\,462\\,294\\,895\\,493\\,038\\,196 \end{align}$$
$$\begin{align} & 82\\,148\\,086\\,513\\,282\\,306\\,647\\,093\\,844\\,609\\,550\\,582\\,231\\,725\\,359\\,408\\,128 \\\\
& 48\\,111\\,745\\,028\\,410\\,270\\,193\\,852\\,110\\,555\\,964\\,462\\,294\\,895\\,493\\,038\\,196 \end{align}$$
Trova $\sum_{n = 0, 1, \ldots, 17} {10}^n × D_{A,B}((127 + 19n) × 7^n)$.

View File

@ -10,7 +10,8 @@ dashedName: problem-238-infinite-string-tour
Crea una sequenza di numeri usando il generatore pseudo-casuale di numero "Blum Blum Shub":
$$ s_0 = 14025256 \\\\ s_{n + 1} = {s_n}^2 \\; mod \\; 20\\,300\\,713 $$
$$ s_0 = 14025256 \\\\
s_{n + 1} = {s_n}^2 \\; mod \\; 20\\,300\\,713 $$
Concatena questi numeri $s_0s_1s_2\ldots$ per creare una stringa $w$ di lunghezza infinita. Quindi, $w = 14025256741014958470038053646\ldots$

View File

@ -10,7 +10,9 @@ dashedName: problem-240-top-dice
Ci sono 1111 modi in cui cinque dadi a 6 facce (le facce numerate da 1 a 6) possono essere lanciati in modo che i tre più grandi sommino a 15. Alcuni esempi sono:
$$\begin{align} & D_1,D_2,D_3,D_4,D_5 = 4,3,6,3,5 \\\\ & D_1,D_2,D_3,D_4,D_5 = 4,3,3,5,6 \\\\ & D_1,D_2,D_3,D_4,D_5 = 3,3,3,6,6 \\\\ & D_1,D_2,D_3,D_4,D_5 = 6,6,3,3,3 \end{align}$$
$$\begin{align} & D_1,D_2,D_3,D_4,D_5 = 4,3,6,3,5 \\\\
& D_1,D_2,D_3,D_4,D_5 = 4,3,3,5,6 \\\\ & D_1,D_2,D_3,D_4,D_5 = 3,3,3,6,6 \\\\
& D_1,D_2,D_3,D_4,D_5 = 6,6,3,3,3 \end{align}$$
In quanti modi si possono lanciare venti dadi a 12 facce (facce numerate da 1 a 12) in modo che la somma dei dieci maggiori a 70?

View File

@ -16,7 +16,9 @@ Una mossa è indicata dall'iniziale maiuscolo della direzione (sinistra, destra,
Per ogni percorso, il suo checksum è calcolato con (pseudocodice):
$$\begin{align} & \text{checksum} = 0 \\\\ & \text{checksum} = (\text{checksum} × 243 + m_1) \\; \text{mod} \\; 100\\,000\\,007 \\\\ & \text{checksum} = (\text{checksum} × 243 + m_2) \\; \text{mod} \\; 100\\,000\\,007 \\\\ & \ldots \\\\ & \text{checksum} = (\text{checksum} × 243 + m_n) \\; \text{mod} \\; 100\\,000\\,007 \end{align}$$
$$\begin{align} & \text{checksum} = 0 \\\\
& \text{checksum} = (\text{checksum} × 243 + m_1) \\; \text{mod} \\; 100\\,000\\,007 \\\\ & \text{checksum} = (\text{checksum} × 243 + m_2) \\; \text{mod} \\; 100\\,000\\,007 \\\\
& \ldots \\\\ & \text{checksum} = (\text{checksum} × 243 + m_n) \\; \text{mod} \\; 100\\,000\\,007 \end{align}$$
dove $m_k$ è il valore ASCII della $k^{\text{th}}$-ma lettera nella sequenza di movimento e i valori ASCII per le mosse sono:

View File

@ -16,7 +16,8 @@ Ad esempio, l'immagine sottostante mostra una serie di venti punti e alcuni di q
Per il nostro esempio, abbiamo usato i primi 20 punti ($T_{2k 1}$, $T_{2k}$), per $k = 1, 2, \ldots, 20$, prodotto con il generatore di numeri pseudo-casuali:
$$\begin{align} S_0 & = 290\\,797 \\\\ S_{n+1} & = {S_n}^2 \\; \text{mod} \\; 50\\,515\\,093 \\\\ T_n & = (S_n \\; \text{mod} \\; 2000) 1000 \end{align}$$
$$\begin{align} S_0 & = 290\\,797 \\\\
S_{n+1} & = {S_n}^2 \\; \text{mod} \\; 50\\,515\\,093 \\\\ T_n & = (S_n \\; \text{mod} \\; 2000) 1000 \end{align}$$
cioè (527, 144), (488, 732), (454, 947), …

View File

@ -28,7 +28,8 @@ 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$$
$$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…).

View File

@ -8,7 +8,7 @@ dashedName: problem-257-angular-bisectors
# --description--
Dato un triangolo con lati interi $ABC$ con lati $a ≤ b ≤ c$. ($AB = c$, $BC = a$ and $AC = b$).
Ti viene dato un triangolo con lati interi $ABC$ con lati $a ≤ b ≤ c$ ($AB = c$, $BC = a$ e $AC = b$).
Le bisettrici angolari del triangolo intersecano i lati ai punti $E$, $F$ e $G$ (vedi la figura sotto).

View File

@ -14,7 +14,9 @@ $${(k - m)}^2 + \ldots + k^2 = {(n + 1)}^2 + \ldots + {(n + m)}^2$$
Alcuni piccoli square-pivot sono
$$\begin{align} & \mathbf{4}: 3^2 + \mathbf{4}^2 = 5^2 \\\\ & \mathbf{21}: {20}^2 + \mathbf{21}^2 = {29}^2 \\\\ & \mathbf{24}: {21}^2 + {22}^2 + {23}^2 + \mathbf{24}^2 = {25}^2 + {26}^2 + {27}^2 \\\\ & \mathbf{110}: {108}^2 + {109}^2 + \mathbf{110}^2 = {133}^2 + {134}^2 \\\\ \end{align}$$
$$\begin{align} & \mathbf{4}: 3^2 + \mathbf{4}^2 = 5^2 \\\\
& \mathbf{21}: {20}^2 + \mathbf{21}^2 = {29}^2 \\\\ & \mathbf{24}: {21}^2 + {22}^2 + {23}^2 + \mathbf{24}^2 = {25}^2 + {26}^2 + {27}^2 \\\\
& \mathbf{110}: {108}^2 + {109}^2 + \mathbf{110}^2 = {133}^2 + {134}^2 \\\\ \end{align}$$
Trova la somma dei square pivot distinti $≤ {10}^{10}$.

View File

@ -10,7 +10,8 @@ dashedName: problem-282-the-ackermann-function
Per gli interi non negativi $m$, $n$, la funzione Ackermann $A(m, n)$ è definita come segue:
$$A(m, n) = \begin{cases} n + 1 & \text{if $m = 0$} \\\\ A(m - 1, 1) & \text{if $m > 0$ e $n = 0$} \\\\ A(m - 1, A(m, n - 1)) & \text{if $m > 0$ e $n > 0$} \end{cases}$$
$$A(m, n) = \begin{cases} n + 1 & \text{if $m = 0$} \\\\
A(m - 1, 1) & \text{if $m > 0$ e $n = 0$} \\\\ A(m - 1, A(m, n - 1)) & \text{if $m > 0$ e $n > 0$} \end{cases}$$
Per esempio $A(1, 0) = 2$, $A(2, 2) = 7$ e $A(3, 4) = 125$.

View File

@ -10,7 +10,8 @@ dashedName: problem-288-an-enormous-factorial
Per ogni numero primo $p$ il numero $N(p, q)$ è definito da $N(p,q) = \sum_{n=0}^q T_n \times p^n$ con $T_n$ generato dal seguente generatore casuale di numeri:
$$\begin{align} & S_0 = 290797 \\\\ & S_{n + 1} = {S_n}^2\bmod 50\\,515\\,093 \\\\ & T_n = S_n\bmod p \end{align}$$
$$\begin{align} & S_0 = 290797 \\\\
& S_{n + 1} = {S_n}^2\bmod 50\\,515\\,093 \\\\ & T_n = S_n\bmod p \end{align}$$
Sia $Nfac(p,q)$ il fattoriale di $N(p,q)$.

View File

@ -16,7 +16,8 @@ Chiamiamo l'area convessa racchiusa da due cerchi un foro lenticolare se:
Considera i cerchi:
$$\begin{align} & C_0: x^2 + y^2 = 25 \\\\ & C_1: {(x + 4)}^2 + {(y - 4)}^2 = 1 \\\\ & C_2: {(x - 12)}^2 + {(y - 4)}^2 = 65 \end{align}$$
$$\begin{align} & C_0: x^2 + y^2 = 25 \\\\
& C_1: {(x + 4)}^2 + {(y - 4)}^2 = 1 \\\\ & C_2: {(x - 12)}^2 + {(y - 4)}^2 = 65 \end{align}$$
I cerchi $C_0$, $C_1$ e $C_2$ sono disegnati nell'immagine sottostante.

View File

@ -19,7 +19,9 @@ Sia $C(n)$ il numero di cicli che passano esattamente una volta attraverso tutti
Si può anche verificare che:
$$\begin{align} & C(1) = C(2) = 1 \\\\ & C(5) = 71\\,328\\,803\\,586\\,048 \\\\ & C(10 000)\bmod {10}^8 = 37\\,652\\,224 \\\\ & C(10 000)\bmod {13}^8 = 617\\,720\\,485 \\\\ \end{align}$$
$$\begin{align} & C(1) = C(2) = 1 \\\\
& C(5) = 71\\,328\\,803\\,586\\,048 \\\\ & C(10 000)\bmod {10}^8 = 37\\,652\\,224 \\\\
& C(10 000)\bmod {13}^8 = 617\\,720\\,485 \\\\ \end{align}$$
Trova $C(C(C(C(10\\,000)))\bmod {13}^8$.

View File

@ -12,7 +12,11 @@ Considera il numero reale $\sqrt{2} + \sqrt{3}$.
Quando calcoliamo le potenze pari di $\sqrt{2} + \sqrt{3}$ troviamo:
$$\begin{align} & {(\sqrt{2} + \sqrt{3})}^2 = 9.898979485566356\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^4 = 97.98979485566356\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^6 = 969.998969071069263\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^8 = 9601.99989585502907\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^{10} = 95049.999989479221\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^{12} = 940897.9999989371855\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^{14} = 9313929.99999989263\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^{16} = 92198401.99999998915\ldots \\\\ \end{align}$$
$$\begin{align} & {(\sqrt{2} + \sqrt{3})}^2 = 9.898979485566356\ldots \\\\
& {(\sqrt{2} + \sqrt{3})}^4 = 97.98979485566356\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^6 = 969.998969071069263\ldots \\\\
& {(\sqrt{2} + \sqrt{3})}^8 = 9601.99989585502907\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^{10} = 95049.999989479221\ldots \\\\
& {(\sqrt{2} + \sqrt{3})}^{12} = 940897.9999989371855\ldots \\\\ & {(\sqrt{2} + \sqrt{3})}^{14} = 9313929.99999989263\ldots \\\\
& {(\sqrt{2} + \sqrt{3})}^{16} = 92198401.99999998915\ldots \\\\ \end{align}$$
Sembra che il numero di nove consecutivi all'inizio della parte frazionaria di queste potenze non diminuisca. In realtà si può dimostrare che la parte frazionaria di ${(\sqrt{2} + \sqrt{3})}^{2n}$ si avvicina 1 per $n$ di grandi dimensioni.

View File

@ -8,18 +8,16 @@ dashedName: problem-323-bitwise-or-operations-on-random-integers
# --description--
Sia $y_0, y_1, y_2, \ldots$ una sequenza di numeri interi casuali a 32 bit senza segno
Sia $y_0, y_1, y_2, \ldots$ una successione casuale di numeri interi senza segno a 32 bit (cioè $0 ≤ y_i &lt; 2^{32}$, ogni valore altrettanto probabile).
(cioè $0 ≤ y_i &lt; 2^{32}$, con ogni valore ugualmente probabile).
Per la sequenza $x_i$ viene fornita la seguente ricorsione:
Per la successione $x_i$ viene data la seguente ricorsione:
- $x_0 = 0$ e
- $x_i = x_{i - 1} \mathbf{|} y_{i - 1}$, per $i > 0$. ($\mathbf{|}$ è l'operatore bitwise-OR)
Si può vedere che alla fine ci sarà un indice $N$ tale che $x_i = 2^{32} - 1$ (un bit-pattern di solo uno) per tutti $i ≥ N$.
Si può vedere che alla fine ci sarà un indice $N$ tale che $x_i = 2^{32} - 1$ (un pattern con tutti i bit a uno) per tutti gli i $i ≥ N$.
Trova il valore atteso di $N$. Dare la risposta arrotondata a 10 cifre dopo il punto decimale.
Trova il valore atteso di $N$. Dai la tua risposta arrotondata a 10 cifre dopo il punto decimale.
# --hints--

View File

@ -12,7 +12,9 @@ Sia $f(n)$ il numero di modi in cui si può riempire una torre $3×3×n$ con blo
Per esempio (con $q = 100\\,000\\,007$):
$$\begin{align} & f(2) = 229, \\\\ & f(4) = 117\\,805, \\\\ & f(10)\bmod q = 96\\,149\\,360, \\\\ & f({10}^3)\bmod q = 24\\,806\\,056, \\\\ & f({10}^6)\bmod q = 30\\,808\\,124. \end{align}$$
$$\begin{align} & f(2) = 229, \\\\
& f(4) = 117\\,805, \\\\ & f(10)\bmod q = 96\\,149\\,360, \\\\
& f({10}^3)\bmod q = 24\\,806\\,056, \\\\ & f({10}^6)\bmod q = 30\\,808\\,124. \end{align}$$
Trova $f({10}^{10000})\bmod 100\\,000\\,007$.

View File

@ -10,11 +10,13 @@ dashedName: problem-330-eulers-number
Una sequenza infinita di numeri reali $a(n)$ è definita per tutti gli interi $n$ come segue:
$$ a(n) = \begin{cases} 1 & n < 0 \\\\ \displaystyle \sum_{i = 1}^{\infty} \frac{a(n - 1)}{i!} & n \ge 0 \end{cases} $$
$$ a(n) = \begin{cases} 1 & n < 0 \\\\
\displaystyle \sum_{i = 1}^{\infty} \frac{a(n - 1)}{i!} & n \ge 0 \end{cases} $$
Per esempio,
$$\begin{align} & a(0) = \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = e 1 \\\\ & a(1) = \frac{e 1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = 2e 3 \\\\ & a(2) = \frac{2e 3}{1!} + \frac{e 1}{2!} + \frac{1}{3!} + \ldots = \frac{7}{2} e 6 \end{align}$$
$$\begin{align} & a(0) = \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = e 1 \\\\
& a(1) = \frac{e 1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \ldots = 2e 3 \\\\ & a(2) = \frac{2e 3}{1!} + \frac{e 1}{2!} + \frac{1}{3!} + \ldots = \frac{7}{2} e 6 \end{align}$$
dove $e = 2.7182818\ldots$ è costante di Euler.

View File

@ -14,7 +14,8 @@ Consideriamo solo quelle partizioni dove nessuno dei termini può dividere uno d
Molti interi hanno più di una partizione valida, il primo è 11 con le due partizioni seguenti.
$$\begin{align} & 11 = 2 + 9 = (2^1 \times 3^0 + 2^0 \times 3^2) \\\\ & 11 = 8 + 3 = (2^3 \times 3^0 + 2^0 \times 3^1) \end{align}$$
$$\begin{align} & 11 = 2 + 9 = (2^1 \times 3^0 + 2^0 \times 3^2) \\\\
& 11 = 8 + 3 = (2^3 \times 3^0 + 2^0 \times 3^1) \end{align}$$
Definiamo $P(n)$ come il numero di partizioni valide di $n$. Per esempio, $P(11) = 2$.

View File

@ -16,7 +16,10 @@ Ad esempio, considera due ciotole adiacenti contenenti 2 e 3 fagioli rispettivam
animazione di una partita con due ciotole adiacenti contenenti rispettivamente 2 e 3 fagioli:
$$\begin{align} & t_0 = 123456, \\\\ & t_i = \begin{cases} \frac{t_{i - 1}}{2}, & \text{if $t_{i - 1}$ is even} \\\\ \left\lfloor\frac{t_{i - 1}}{2}\right\rfloor \oplus 926252, & \text{if $t_{i - 1}$ is odd} \end{cases} \\\\ & \qquad \text{dove$⌊x⌋$ è la funzione arrotonda verso il basso e $\oplus$ è l'operatore bitwise XOR.} \\\\ & b_i = (t_i\bmod 2^{11}) + 1. \end{align}$$
$$\begin{align} & t_0 = 123456, \\\\
& t_i = \begin{cases} \frac{t_{i - 1}}{2}, & \text{if $t_{i - 1}$ is even} \\\\
\left\lfloor\frac{t_{i - 1}}{2}\right\rfloor \oplus 926252, & \text{if $t_{i - 1}$ is odd} \end{cases} \\\\
& \qquad \text{dove$⌊x⌋$ è la funzione arrotonda verso il basso e $\oplus$ è l'operatore bitwise XOR.} \\\\ & b_i = (t_i\bmod 2^{11}) + 1. \end{align}$$
I primi due termini dell'ultima sequenza sono $b_1 = 289$ e $b_2 = 145$. Se iniziamo con $b_1$ e $b_2$ fagioli in due ciotole adiacenti, saranno necessarie 3419100 mosse per finire la partita.

View File

@ -10,7 +10,8 @@ dashedName: problem-340-crazy-function
Per gli interi fissati $a$, $b$, $c$, definire la funzione pazza $F(n)$ come segue:
$$\begin{align} & F(n) = n - c \\;\text{ per ogni } n > b \\\\ & F(n) = F(a + F(a + F(a + F(a + n)))) \\;\text{ per ogni } n ≤ b. \end{align}$$
$$\begin{align} & F(n) = n - c \\;\text{ per ogni } n > b \\\\
& F(n) = F(a + F(a + F(a + F(a + n)))) \\;\text{ per ogni } n ≤ b. \end{align}$$
Inoltre, definisci $S(a, b, c) = \displaystyle\sum_{n = 0}^b F(n)$.

View File

@ -10,7 +10,8 @@ dashedName: problem-341-golombs-self-describing-sequence
La sequenza di auto-descrizione di Golomb ($G(n)$) è l'unica sequenza non decrescente di numeri naturali tali che $n$ appaia esattamente $G(n)$ volte nella sequenza. I valori di $G(n)$ per i primi $n$ sono
$$\begin{array}{c} n & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & \ldots \\\\ G(n) & 1 & 2 & 2 & 3 & 3 & 4 & 4 & 4 & 5 & 5 & 5 & 6 & 6 & 6 & 6 & \ldots \end{array}$$
$$\begin{array}{c} n & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & \ldots \\\\
G(n) & 1 & 2 & 2 & 3 & 3 & 4 & 4 & 4 & 5 & 5 & 5 & 6 & 6 & 6 & 6 & \ldots \end{array}$$
Ti viene dato che $G({10}^3) = 86$, $G({10}^6) = 6137$.

View File

@ -12,11 +12,20 @@ Definiamo la Somma di Matrice di una matrice come la somma massima di elementi d
Ad esempio, la somma di matrice della matrice qui sotto è pari a $3315 ( = 863 + 383 + 343 + 959 + 767)$:
$$\begin{array}{rrrrr} 7 & 53 & 183 & 439 & \color{lime}{863} \\\\ 497 & \color{lime}{383} & 563 & 79 & 973 \\\\ 287 & 63 & \color{lime}{343} & 169 & 583 \\\\ 627 & 343 & 773 & \color{lime}{959} & 943 \\\\ \color{lime}{767} & 473 & 103 & 699 & 303 \end{array}$$
$$\begin{array}{rrrrr} 7 & 53 & 183 & 439 & \color{lime}{863} \\\\
497 & \color{lime}{383} & 563 & 79 & 973 \\\\ 287 & 63 & \color{lime}{343} & 169 & 583 \\\\
627 & 343 & 773 & \color{lime}{959} & 943 \\\\ \color{lime}{767} & 473 & 103 & 699 & 303 \end{array}$$
Trova la somma di matrice di:
$$\\begin{array}{r} 7 & 53 & 183 & 439 & 863 & 497 & 383 & 563 & 79 & 973 & 287 & 63 & 343 & 169 & 583 \\\\ 627 & 343 & 773 & 959 & 943 & 767 & 473 & 103 & 699 & 303 & 957 & 703 & 583 & 639 & 913 \\\\ 447 & 283 & 463 & 29 & 23 & 487 & 463 & 993 & 119 & 883 & 327 & 493 & 423 & 159 & 743 \\\\ 217 & 623 & 3 & 399 & 853 & 407 & 103 & 983 & 89 & 463 & 290 & 516 & 212 & 462 & 350 \\\\ 960 & 376 & 682 & 962 & 300 & 780 & 486 & 502 & 912 & 800 & 250 & 346 & 172 & 812 & 350 \\\\ 870 & 456 & 192 & 162 & 593 & 473 & 915 & 45 & 989 & 873 & 823 & 965 & 425 & 329 & 803 \\\\ 973 & 965 & 905 & 919 & 133 & 673 & 665 & 235 & 509 & 613 & 673 & 815 & 165 & 992 & 326 \\\\ 322 & 148 & 972 & 962 & 286 & 255 & 941 & 541 & 265 & 323 & 925 & 281 & 601 & 95 & 973 \\\\ 445 & 721 & 11 & 525 & 473 & 65 & 511 & 164 & 138 & 672 & 18 & 428 & 154 & 448 & 848 \\\\ 414 & 456 & 310 & 312 & 798 & 104 & 566 & 520 & 302 & 248 & 694 & 976 & 430 & 392 & 198 \\\\ 184 & 829 & 373 & 181 & 631 & 101 & 969 & 613 & 840 & 740 & 778 & 458 & 284 & 760 & 390 \\\\ 821 & 461 & 843 & 513 & 17 & 901 & 711 & 993 & 293 & 157 & 274 & 94 & 192 & 156 & 574 \\\\ 34 & 124 & 4 & 878 & 450 & 476 & 712 & 914 & 838 & 669 & 875 & 299 & 823 & 329 & 699 \\\\ 815 & 559 & 813 & 459 & 522 & 788 & 168 & 586 & 966 & 232 & 308 & 833 & 251 & 631 & 107 \\\\ 813 & 883 & 451 & 509 & 615 & 77 & 281 & 613 & 459 & 205 & 380 & 274 & 302 & 35 & 805 \end{array}$$
$$\\begin{array}{r} 7 & 53 & 183 & 439 & 863 & 497 & 383 & 563 & 79 & 973 & 287 & 63 & 343 & 169 & 583 \\\\
627 & 343 & 773 & 959 & 943 & 767 & 473 & 103 & 699 & 303 & 957 & 703 & 583 & 639 & 913 \\\\ 447 & 283 & 463 & 29 & 23 & 487 & 463 & 993 & 119 & 883 & 327 & 493 & 423 & 159 & 743 \\\\
217 & 623 & 3 & 399 & 853 & 407 & 103 & 983 & 89 & 463 & 290 & 516 & 212 & 462 & 350 \\\\ 960 & 376 & 682 & 962 & 300 & 780 & 486 & 502 & 912 & 800 & 250 & 346 & 172 & 812 & 350 \\\\
870 & 456 & 192 & 162 & 593 & 473 & 915 & 45 & 989 & 873 & 823 & 965 & 425 & 329 & 803 \\\\ 973 & 965 & 905 & 919 & 133 & 673 & 665 & 235 & 509 & 613 & 673 & 815 & 165 & 992 & 326 \\\\
322 & 148 & 972 & 962 & 286 & 255 & 941 & 541 & 265 & 323 & 925 & 281 & 601 & 95 & 973 \\\\ 445 & 721 & 11 & 525 & 473 & 65 & 511 & 164 & 138 & 672 & 18 & 428 & 154 & 448 & 848 \\\\
414 & 456 & 310 & 312 & 798 & 104 & 566 & 520 & 302 & 248 & 694 & 976 & 430 & 392 & 198 \\\\ 184 & 829 & 373 & 181 & 631 & 101 & 969 & 613 & 840 & 740 & 778 & 458 & 284 & 760 & 390 \\\\
821 & 461 & 843 & 513 & 17 & 901 & 711 & 993 & 293 & 157 & 274 & 94 & 192 & 156 & 574 \\\\ 34 & 124 & 4 & 878 & 450 & 476 & 712 & 914 & 838 & 669 & 875 & 299 & 823 & 329 & 699 \\\\
815 & 559 & 813 & 459 & 522 & 788 & 168 & 586 & 966 & 232 & 308 & 833 & 251 & 631 & 107 \\\\ 813 & 883 & 451 & 509 & 615 & 77 & 281 & 613 & 459 & 205 & 380 & 274 & 302 & 35 & 805 \end{array}$$
# --hints--

View File

@ -14,7 +14,9 @@ Considera i numeri palindromici che possono essere espressi come la somma di un
Ad esempio, 5229225 è un numero palindromico e può essere espresso esattamente in 4 modi diversi:
$$\begin{align} & {2285}^2 + {20}^3 \\\\ & {2223}^2 + {66}^3 \\\\ & {1810}^2 + {125}^3 \\\\ & {1197}^2 + {156}^3 \end{align}$$
$$\begin{align} & {2285}^2 + {20}^3 \\\\
& {2223}^2 + {66}^3 \\\\ & {1810}^2 + {125}^3 \\\\
& {1197}^2 + {156}^3 \end{align}$$
Trova la somma dei cinque numeri palindromi più piccoli.

View File

@ -16,7 +16,9 @@ Il minimo comun divisore, o $lcm$ (dall'inglese least common multiple), di una l
Sia $f(G, L, N)$ il numero di liste di dimensione $N$ con $gcd ≥ G$ e $lcm ≤ L$. Ad esempio:
$$\begin{align} & f(10, 100, 1) = 91 \\\\ & f(10, 100, 2) = 327 \\\\ & f(10, 100, 3) = 1135 \\\\ & f(10, 100, 1000)\bmod {101}^4 = 3\\,286\\,053 \end{align}$$
$$\begin{align} & f(10, 100, 1) = 91 \\\\
& f(10, 100, 2) = 327 \\\\ & f(10, 100, 3) = 1135 \\\\
& f(10, 100, 1000)\bmod {101}^4 = 3\\,286\\,053 \end{align}$$
Trova $f({10}^6, {10}^{12}, {10}^{18})\bmod {101}^4$.

Some files were not shown because too many files have changed in this diff Show More