Dado este triángulo:
$$1$$ $$2,3$$ $$4,5,6$$ $$7,8,9,10$$ $$.............$$
Ahora, ¿cómo puedo calcular la altura del número de algún número en este triángulo? (A saber, ¿cómo puedo encontrar la fórmula para la altura de $n$ ?)
Dado este triángulo:
$$1$$ $$2,3$$ $$4,5,6$$ $$7,8,9,10$$ $$.............$$
Ahora, ¿cómo puedo calcular la altura del número de algún número en este triángulo? (A saber, ¿cómo puedo encontrar la fórmula para la altura de $n$ ?)
Para un valor determinado $n$ existen $h$ de tal manera que \begin {eqnarray*} \frac {h(h-1)}{2} < n \leq \frac {h(h+1)}{2}. \end {eqnarray*} Ahora trata a la mano derecha en la igualdad como una cuadrática en $h$ y resolver para conseguir \begin {eqnarray*} h = \left\lceil \frac {-1 + \sqrt {1+8n}}{2} \right\rceil. \end {eqnarray*}
Puntos:
Hay $n$ números en la fila $n$ .
El último número del $n^{ \text {th}}$ La fila es $ \dfrac {n(n+1)}{2}$ .
El primer número en el $n^{ \text {th}}$ La fila es $ \dfrac {n(n-1)}{2}+1$ .
Para calcular la fila en la que cualquier número $x$ mentiras, sólo comprueba el número triangular más cercano y más grande que él, y se encuentra en el número de fila $n$ correspondiente a ese número triangular.
Definir una función $h(m)$ recursivamente:
$h(1) = 1$
Deje que $h(m)$ se definan.
Si $m + 1 \le \dfrac {h(m)(h(m)+1)}{2}$ entonces $h(m+1) = h(m)$
más
$ \qquad \qquad \qquad \qquad \qquad \qquad \qquad \, h(m+1) = h(m) + 1$
Esto no proporciona una fórmula explícita, pero estoy bastante seguro de que unas pocas líneas de código en un lenguaje de programación (adecuado) servirá. Así que eso es tranquilizador.
Bien, aquí hay un código. Tengo algo de ayuda de los expertos en pitones; mira este desbordamiento de pila Q/A enlace . Note que este código también da la posición de la fila de cada número:
def daHB(m):
if m == 1:
return {'rowNum':1, 'posNum':1, 'TriNum':1}
else:
r = daHB(m-1)
if m <= r['TriNum']:
return {'rowNum':r['rowNum'], 'posNum':r['posNum'] + 1, 'TriNum':r['TriNum']}
else:
TriangularNum = (r['rowNum']+1)*(r['rowNum']+2) // 2
return {'rowNum':r['rowNum'] + 1,'posNum':1, 'TriNum':TriangularNum}
for n in range(1, 33):
print (n, daHB(n))
SALIDA
1 {'rowNum': 1, 'posNum': 1, 'TriNum': 1}
2 {'rowNum': 2, 'posNum': 1, 'TriNum': 3}
3 {'rowNum': 2, 'posNum': 2, 'TriNum': 3}
4 {'rowNum': 3, 'posNum': 1, 'TriNum': 6}
5 {'rowNum': 3, 'posNum': 2, 'TriNum': 6}
6 {'rowNum': 3, 'posNum': 3, 'TriNum': 6}
7 {'rowNum': 4, 'posNum': 1, 'TriNum': 10}
8 {'rowNum': 4, 'posNum': 2, 'TriNum': 10}
9 {'rowNum': 4, 'posNum': 3, 'TriNum': 10}
10 {'rowNum': 4, 'posNum': 4, 'TriNum': 10}
11 {'rowNum': 5, 'posNum': 1, 'TriNum': 15}
12 {'rowNum': 5, 'posNum': 2, 'TriNum': 15}
13 {'rowNum': 5, 'posNum': 3, 'TriNum': 15}
14 {'rowNum': 5, 'posNum': 4, 'TriNum': 15}
15 {'rowNum': 5, 'posNum': 5, 'TriNum': 15}
16 {'rowNum': 6, 'posNum': 1, 'TriNum': 21}
17 {'rowNum': 6, 'posNum': 2, 'TriNum': 21}
18 {'rowNum': 6, 'posNum': 3, 'TriNum': 21}
19 {'rowNum': 6, 'posNum': 4, 'TriNum': 21}
20 {'rowNum': 6, 'posNum': 5, 'TriNum': 21}
21 {'rowNum': 6, 'posNum': 6, 'TriNum': 21}
22 {'rowNum': 7, 'posNum': 1, 'TriNum': 28}
23 {'rowNum': 7, 'posNum': 2, 'TriNum': 28}
24 {'rowNum': 7, 'posNum': 3, 'TriNum': 28}
25 {'rowNum': 7, 'posNum': 4, 'TriNum': 28}
26 {'rowNum': 7, 'posNum': 5, 'TriNum': 28}
27 {'rowNum': 7, 'posNum': 6, 'TriNum': 28}
28 {'rowNum': 7, 'posNum': 7, 'TriNum': 28}
29 {'rowNum': 8, 'posNum': 1, 'TriNum': 36}
30 {'rowNum': 8, 'posNum': 2, 'TriNum': 36}
31 {'rowNum': 8, 'posNum': 3, 'TriNum': 36}
32 {'rowNum': 8, 'posNum': 4, 'TriNum': 36}
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.