Excel - Fibonacci en EXCEL

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por CoquitoPe (64 intervenciones) el 23/03/2015 04:02:06
Foreros... un saludo...

En un foro... alguien pregunto como era el numero de Fibonacci en su 100 ava ubicacion... decia para un Insti... (Mis tiempos tambien...) en ese tiempo no se si podría resolver... porque no ahora ?
Características :
a.- manejar los numeros como cadena con un maximo de 11 caracteres por celda para no "ampliar la columna"...
b.- Iniciar los numeros fibonacci en la primera casilla de la ultima columna
c.- Considerar que el numero fibonacci es "encadenando" de izquierda a derecha...(columna A+columna B...
... probe hasta la ubicacion 30,000...
cual es el límite de EXCEL ?... pareciera ser el espacio del disco duro... no de la memoria...

mejoras al codigo e ideas... bienvenidas
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

Fibonacci en EXCEL

Publicado por Aarón (4 intervenciones) el 21/11/2015 23:12:39
Hola, se puede emplear el siguiente link que te comparto http://www.excel-avanzado.com/11588/como-crear-una-funcion-en-vba.html
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por CoquitoPE (64 intervenciones) el 22/11/2015 03:38:08
Aaron...
Gracias por comentar...
Corriste/probaste la aplicación de exce-avanzado ?... yo no lo hice... porque Excel no te muestra mas de 12 caracteres y cuando pasa ese número (999'999'999,999) te aproxima el número a una potencia decimal... mi codigo encadena los numeros los muestra juntando las columnas ( o sea te muestra el numero cuantos digitos sea... lo probe hasta 30,000... la aplicación es diferente... pruébalos y compáralos...
Un saludo
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
Imágen de perfil de Cacho R
Val: 81
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por Cacho R (66 intervenciones) el 23/11/2015 00:46:29
Me parece que el límite de estos procedimientos pasa por la memoria asignada al Excel antes que por otra cosa.

Por lo menos es lo que "veo" del siguiente procedimiento:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Sub Fibo()
'------------------
'by Cacho Rodríguez
'------------------
Dim Q&, i&, Vec1, Vec2, Vec3, R&, j&, m%, iFibo$, S&
Q = Application.InputBox("Término de la sucesión a determinar:", Type:=1)
If Q = 0 Then Exit Sub
 
ReDim Vec1(1 To 1): Vec1(1) = 0
ReDim Vec2(1 To 1): Vec2(1) = 1
 
For i = 3 To Q
  R = UBound(Vec2)
  If 1 + Vec1(R) + Vec2(R) > 9 Then
    R = 1 + R
    ReDim Preserve Vec1(1 To R)
    ReDim Preserve Vec2(1 To R)
  End If
 
  ReDim Vec3(1 To R): m = 0
  For j = 1 To R
    Vec3(j) = m + Vec1(j) + Vec2(j)
    If Vec3(j) > 9 Then m = 1: Vec3(j) = Vec3(j) - 10 Else m = 0
  Next
  Vec1 = Vec2: Vec2 = Vec3
Next
 
S = UBound(Vec3)
j = Application.Ceiling(S, 100) / 100
 
ReDim Vec2(1 To j)
R = 0
 
For i = S To 1 Step -100
  Vec1 = Empty
  For j = i To Application.Max(1, i - 99) Step -1
    Vec1 = Vec1 & Vec3(j): Next
  R = 1 + R: Vec2(R) = Vec1
Next
 
Application.ScreenUpdating = False
With Range("d1")
  .CurrentRegion.Offset(1).Delete xlShiftUp
  .Value = "Término " & Q & ":"
  With .Offset(1).Resize(, UBound(Vec2))
    .NumberFormat = "@": .Font.Size = 9: .Font.Name = "Consolas"
    .Value = Vec2
    .EntireColumn.AutoFit
  End With
End With
Application.ScreenUpdating = True
End
End Sub

En esta modalidad, y por ejemplo, el término 40000 de la sucesión de Fibonacci ocupa 8359 dígitos decimales distribuídos en 83 celdas conteniendo 100 dígitos cada una, más la última celda con 59 dígitos.

Cuando los tres "vectores" que intervienen en esta operatoria "agoten" la memoria del Excel: ¡Se termina la posibilidad de cálculo!

Saludos, Cacho R.
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por CoquitoPE (64 intervenciones) el 23/11/2015 01:42:49
Cacho R... un saludo...
Ilustrativo e interesante tu rutina...
diferencias con mi inicial :
1.- Muestro en forma secuencial todos los números (un numero por fila) ocupando las memorias de excel (El tuyo solo hace el indicado)
2.- Mis números son cadenas de números (strings) (ocupan mas espacio de memoria)... (El tuyo son números... probablemente menos espacio... es interesante)
3.- Me agradaria conocer cual es mas rápido... (perdona no compare resultados... por tiempo)
4.- Son dos opciones... para continuar el diálogo...

De nuevo... un saludo
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
Imágen de perfil de Cacho R
Val: 81
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por Cacho R (66 intervenciones) el 23/11/2015 20:23:46
Te comento, Coquito:

- Las diferencias en las velocidades de procesamiento son "escandalosas" toda vez que el procesamiento realizado en "memoria" es muchísimo más eficiente que lo que haces en las celdas.

- Como esa comparación ya la hice, abordé la "otra" visión del tema. Esto es: ¿interesa mostrar cada uno de los términos de la sucesión o -tan solo- el solicitado?...

En ese sentido me decidí por mostrar aquí la segunda opción.
Para mostrar la primera (los "n" términos) simplemente guardas en un "txt" dichos términos y sigues manteniendo la eficiencia (cosa que también verifiqué, claro está).

Por ello te mencionaba que no tienes un límite vía disco, sino vía memoria.

Saludos, Cacho R.
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por CoquitoPE (64 intervenciones) el 23/11/2015 23:31:04
Cacho R... un nuevo saludo...
Generalicemos el problema:
1.- Mostrar cada termino en una hilera hasta el límite de Excel (A efecto de comparar precision con el anterior y ver el límite...de excel)
2.- No debe haber pérdida de precisión ( Excel maneja errores y probable se acumula)
3.- Optativo... manejo recursivo...
ahora...
a.- yo estoy manejando cadenas (para no perder precision)...Tu estas manejando numeros... alli viene mi deseo de comparacion de tiempos
b.- me aventuro a pensar que los datos se almacenan en disco... y te muestran solo los de pantalla (memoria...?)
c.- nuestras apreciaciones aún son diferentes y... talvez los resultados...
veo tu nivel... una invitacion:
Podemos resolver el Cubo de Rugby ( 3x3)... en Excel ?... viste alguna solución...
Renovando mi saludo...
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
Imágen de perfil de Cacho R
Val: 81
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por Cacho R (66 intervenciones) el 25/11/2015 04:25:43
Te adjunto, Coquito, una forma de mostrar todos los términos de la serie hasta el término n-ésimo.

En particular te sugiero que analices el término 89 ya que es el primer término que difiere respecto del procedimiento que has desarrollado.

Saludos, Cacho R.
.
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por CoquitoPE (64 intervenciones) el 26/11/2015 03:37:31
Cacho R...
Tu observación me ha desvelado... pero... ha aumentado el deseo de programar...
Antes de publicar el programa... considere que tenía la solucion optima... hice análisis secuenciales antes del 84... y algunos aleatoriamente...
me parecieron perfectos... (Como mencione... Excel maneja errores)
me aventuro que tu programa NOooo...este... excento de errores...
te invito a que muestres el programa que te hace llegar a esa apreciación...
... considerando estos probables errores... me parece que la solución (no la única)... es sumar digito por digito..
no lo analice mas profundamente... por estar OBSESIONADO !... en resolver el cubo de Rugby por excel... al que te invito nuevamente....
Un nuevo saludo...
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
Imágen de perfil de Cacho R
Val: 81
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por Cacho R (66 intervenciones) el 26/11/2015 05:12:06
- Lo del Cubo de Rubik será cuestión de otro hilo de consulta.

- Tu comentario sobre sumar "dígito a dígito" me sorprende pues es lo que hace el código que te he pasado.

- Sin perjuicio de lo anterior, me sorprende -del mismo modo- que no hayas analizado con profundidad que ese código tiene dos parámetros adicionales y que hacen a la eficiencia general: la cantidad de dígitos por celda y la cantidad de filas completadas por traslado a celdas (no sé si no lo sabías: imagina tener 1000 datos. Es muchísimo más eficiente tener esos datos en una matriz y trasladarlos a celdas "en un solo movimiento" que trasladarlos "de a uno").

Me parece, para terminar, que deberías poner tu atención respecto a estudiar estas técnicas para llegar a entender que no es necesario sumar "dígito a dígito". De hecho: consigues aumentar la eficiencia en un 20 a 40% si sumas 6 a 8 dígitos simultáneamente... cosa que -con gusto- te mostraré en otra oportunidad.

Saludos, Cacho R.
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por CoquitoPE (64 intervenciones) el 26/11/2015 13:45:28
Cacho R...
Terminar...?
No me has enviado tu codigo... te pedi... que lo publicaras... me dices en "...otra oportunidad"
¿Admites que excel (como otros)... maneja errores... ?... por esa razón... redundo en hacerlo digito por digito... acercándonos a la exactitud... que es la idea teórica...
eficiencia en manejo de matrices y memoria... creo que no es relevante en comparacion a exactitud y precisión... este último centra mi atención....

Salu!!!2....
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
Imágen de perfil de Cacho R
Val: 81
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Fibonacci en EXCEL

Publicado por Cacho R (66 intervenciones) el 26/11/2015 15:31:58
Me parece que no has entendido nada. Resumo:

- Tu desarrollo es ineficiente y comete errores.
- Lo que te mostré es eficiente y no tiene errores ("doble chequeo" de los mismos).
- El segundo código que te he mostrado es más eficiente que el primero y tan exacto como aquél.
- Este código es sencillo. Te lo he mostrado para ayudarte a estudiar el tema ya que ninguna otra razón ha motivado mi intervención en este hilo.
- Por lo anterior es que considero innecesario mostrarte algo más depurado y eficiente (e igual de exacto): ¡No has manifestado intención alguna de estudiar!

- Y como me doy cuenta que opinas sin ninguna base técnica: ¡más que "esto" no puedo hacer por tí!

Saludos, Cacho R.
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