JavaScript - secuencia tribonacci

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 40 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

secuencia tribonacci

Publicado por beto (1 intervención) el 23/04/2021 17:19:45
Buenas gente estoy tratando de resolver este ejercicio pero estoy trabado hace rato. Les paso el ejercicio me estoy quedando poelado.
Secuencia inventada: f(n) = (f(n-1) + f(n-2) + f(n-3)) x 2
// Donde las primeras tres posiciones son dadas por el array recibido por parametro y a partir de
// la siguiente se calcula como la suma de los 3 números anteriores multiplicados por dos.
// array es un arreglo de 3 posiciones que puede contener números o strings, aquellas posiciones que
// sean números debemos dejarlas tal cual están pero las que tengan strings debemos calcular su cantidad
// de caracteres para usarlos en la secuencia.
// Por ejemplo si recibimos: ["Franco", 1, "Henry"] deberíamos tener los siguientes 3 valores iniciales
// de la secuencia f(0) = 6, f(1) = 1 y f(2) = 5 (Ya que "Franco" tiene 6 caracteres y "Henry", 5)
// A partir de ahí la cuarta posición sería (6 + 1 + 5) * 2 = 24 y así sucesivamente
// La función secuenciaHenry debe devolver el enésimo numero de la serie, por ejemplo para el array
// antes mencionado:
// secuencia: 6, 1, 5, 24, 60, 178, 524
// secuenciaHenry(0) // 6 ya que el elemento de la posición 0 es cero
// secuenciaHenry(1) // 1 ya que el elemento de la posición 1 es 1
// secuenciaHenry(6) // 524 ya que el elemento de la posición 6 es 524
// Para números negativos de n debe devolver false
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de katas
Val: 2.288
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

secuencia tribonacci

Publicado por katas (70 intervenciones) el 23/04/2021 19:27:00
Hola beto, seria algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function secuenciaHenry(arr, num) {
    // convertimos los textos a su longitud
    arr=arr.map(el => el==parseInt(el) ? el : el.length);
 
    // bucle hasta que la lontitud del array sea la deseada
    while(arr.length<=num) {
        // añadimos al array la sumas de los tres ultimos * 2
        arr.push((arr.slice(-3).reduce((a,b) => a+b))*2);
    }
 
    //devolvemos el ultimo valor
    return arr.pop();
}
 
arr=["Franco", 1, "Henry"];
console.log(secuenciaHenry(arr, 1)); // 5
console.log(secuenciaHenry(arr, 5)); // 178
console.log(secuenciaHenry(arr, 6)); // 524
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

secuencia tribonacci

Publicado por mauro (2 intervenciones) el 16/12/2021 18:16:11
Hola, deberia devolver 1 cuando num = 1 y no 5. Y además debería devolver false para numeros negativos. saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

secuencia tribonacci

Publicado por Mauro (2 intervenciones) el 16/12/2021 18:38:38
No entiendo demasiado pero supongo que habra que aplicar recuersion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar