observaciones/elucubraciones

pacopuf
11
11
Mensajes: 644
Registrado: Lun 07 Ago, 2017 4:49 pm

Re: observaciones/elucubraciones

Mensaje por pacopuf »

Wandering escribió:
Dom 27 Feb, 2022 7:04 pm
Hola pco, hace un tiempo empece a estudiar pihton y lo dege, pero veo que ustes si lo hace.
Si tiene inrface grafico, si no recuerdo mal, has de instalar algo mas, no me hagas mucho caso.
Ya tengo algo para hace rpracticas, y muchas librerias que las tengo apuntadas por algun lado.
Felicidades por y gracias por el codigo.
Saludos.
Hola Wandering,

gracias por el mensaje, Bueno, no tienes que llamarme de "usted" (ni "usted" :) ). En general, los lenguajes de programación no son gráficos, salvo, por ejemplo, el scratch que es con fines didácticos. Quizás te confundes con un interface gráfico para Linux, Sobre el tema de las librerías, al final, para mi como "autodidacta aficionado", el flujo es: buscar en google cómo hacer algo > ver un comando necesario > ver el mensaje de error en google > instalar la librería que dicen en google

Saludos,

Paco
Groucho Marx: ¿A quién vas a creer, a mí o a tus propios ojos?

"Si no podemos poner fin a nuestras diferencias, contribuyamos a que el mundo sea un lugar apto para ellas"
J. F. Kennedy

Adios y hasta la próxima!!
pacopuf
11
11
Mensajes: 644
Registrado: Lun 07 Ago, 2017 4:49 pm

Re: observaciones/elucubraciones

Mensaje por pacopuf »

danvader99 escribió:
Dom 27 Feb, 2022 8:34 pm
una pregunta mas paco

cuando en Python hace algo de este estilo

For x=1 to 14000000

for y=1 to 1000

if lo que sea= lo que sea then

...mas cosas.....por ejemplo meter matrices(arrays),etc

end if

next y

next x

¿Lo haces mas o menos así? o hay algún diccionario, api, función directa en definitiva algo que haga que los bucles anidados vayan mas rápidos o simplemente es que pynthon es algo mas rápido que VBA, digo algo porque si probablemente sea algo mas rápido pero no creo que sea significativamente lo suficientemente mas rápido para decir guauuu que diferencia tan brutal ¿o si?

Un saludo
Hola,

los bucles son muy parecidos a VBA. Por ejemplo, un bucle "for":

for x_dsv in vector_dsv:
resultado_dsv = resultado_dsv + x_dsv
return(round(resultado_dsv,2))

(tan solo hay que añadir tabulador en la 2a y 3a líneas)

el "if" es:

if a==10:
entonces hace esto
else:
entonces hace esto otro

(tan solo hay que añadir tabulador en la 2a y 4a líneas)

Respecto la diferencia de velocidad. He buscado en internet, y veo la dos opiniones buscando "which is faster python vba":

In most operations, it's undeniable that VBA is faster than Python. From repeated observations from using both plain VBA and plain Python, it's obvious that Python is about two to three times slower than VBA. However, this is because both are not called directly from their native environment.

Y:

3. When Python calls compiled code from libraries such as Numpy and Scipy it can be hugely faster than the same operations in VBA (50-100 times faster).

En mi opinión, Python es mucho más rápido y sí merece la pena pasarse a él. Hace mucho tiempo que no uso VBA y no tengo nada para que me sirva de referencia.

Pero también te digo que va a depender del equipo/Sistema operativo que uses. Yo tengo un macbook (antiguo, pero con 16G RAM). Recuerdo que con este ordenador el VBA me iba bastante más lento que cuando usaba un portátil con windows. Y Python está incluido en el Sistema Operativo del mac. Y Python me va mucho más rápido que VBA.

Sin embargo, cuando uso Python para windows en un portátil con Windows, me va mas lento que con el mac. Pero, en mi opinión, más rápido que VBA.

Si quieres, me pasas un bucle anidado y lo ejecuto y comparamos.

Dicho todo esto, te añado que soy autodidacta para estos temas, no puedo ir mucho más allá de lo que utilizo.

Saludos,

Paco
Groucho Marx: ¿A quién vas a creer, a mí o a tus propios ojos?

"Si no podemos poner fin a nuestras diferencias, contribuyamos a que el mundo sea un lugar apto para ellas"
J. F. Kennedy

Adios y hasta la próxima!!
incredulo
10
10
Mensajes: 23
Registrado: Mar 26 Oct, 2021 5:33 pm

Re: observaciones/elucubraciones

Mensaje por incredulo »

Pero también te digo que va a depender del equipo/Sistema operativo que uses. Yo tengo un macbook (antiguo, pero con 16G RAM). Recuerdo que con este ordenador el VBA me iba bastante más lento que cuando usaba un portátil con windows. Y Python está incluido en el Sistema Operativo del mac. Y Python me va mucho más rápido que VBA.
hola paco
si quieres velocidad al analizar apuestas te recomiendo el MSDOS (ensamlador o código maquina), es de bajo nivel
per es el único q va veloz
yo lo uso y me hace un análisis en 1 minuto máximo 5 (dependiendo de las condiciones q ponga)
yo tengo un ordenador del 2003 tengo Windows 7 es de 16 bits y va de maravilla con el símbolo del sistema

lapega es q tienes q copiar pagina a pagina las apuestas q te de cuando son 100 mas o menos bien pero si son 3000 es un astio copiarlas de 24 líneas cada pagina
yo soy atodidacta en MSDOS

ya sabes quien soy si quieres aprender te puedo ayudar
pacopuf
11
11
Mensajes: 644
Registrado: Lun 07 Ago, 2017 4:49 pm

Re: observaciones/elucubraciones

Mensaje por pacopuf »

Hola Incrédulo,

gracias por el mensaje y el ofrecimiento.

Está claro que los lenguajes de más bajo nivel son los más rápidos. Casi que no dependen del sistema operativo y es como si el programa se ejecuta directamente en HW.

Al final, es buscar un equilibrio. Python no será nunca tan rápido, pero, a cambio, ofrece mucha flexibilidad. No solamente para estas tareas de loto; sino también para otros campos completamente diferentes.

De nuevo, muchas gracias!!

Saludos,

Paco
Groucho Marx: ¿A quién vas a creer, a mí o a tus propios ojos?

"Si no podemos poner fin a nuestras diferencias, contribuyamos a que el mundo sea un lugar apto para ellas"
J. F. Kennedy

Adios y hasta la próxima!!
pacopuf
11
11
Mensajes: 644
Registrado: Lun 07 Ago, 2017 4:49 pm

Re: observaciones/elucubraciones

Mensaje por pacopuf »

Hola,

ya solo por curiosidad. He hecho este programa que suma x de 1 en 1 hasta 100 millones (100.000.000).

import time

start_time = time.time()
x=0
while x < 100000000:
x = x + 1
print("final")
print("--- %s seconds ---" % (time.time() - start_time))

la parte de "time" es solo para calcular automáticamente el tiempo que tarda en ejecutarse.

Ahora lo estoy ejecutando sobre windows y tarda 12 segundos en ejecutarse:

λ python3 contar.py
final
--- 12.877079248428345 seconds ---

Luego lo ejecuto en mac.

EDITO: pues en el mac, entre 17 y 20 segundos, me ha sorprendido (negativamente):

python3 contar.py
final
--- 20.803762912750244 seconds ---

python3 contar.py
final
--- 17.603098154067993 seconds ---

¿Cuánto os tarda a vosotros? (aunque no pongais nada de time)

Saludos,

Paco
Groucho Marx: ¿A quién vas a creer, a mí o a tus propios ojos?

"Si no podemos poner fin a nuestras diferencias, contribuyamos a que el mundo sea un lugar apto para ellas"
J. F. Kennedy

Adios y hasta la próxima!!
danvader99
11
11
Mensajes: 809
Registrado: Dom 29 Oct, 2017 8:20 pm

Re: observaciones/elucubraciones

Mensaje por danvader99 »

Vale voy a probarlo en VBA pero para que sea lo mas real, entiendo que te esta imprimiendo la palabra "print", pero exactamente ¿donde te la imprime? ,como el Python no tenia interfaz grafico.... ¿en el mismo sitio? y tu la ves parpadeando, o te la va imprimiendo en columna o en un TXT que sale en pantalla

Para probarlo en Excel sería mejor limitarlo a 1 millon (mas que nada para no superar las filas y hacerlo en las dos opciones,1- que aparezca la palabra print y 2- sin que aparezca nada para ver cuanto tarda el bucle.

a ver si luego lo hago
pacopuf
11
11
Mensajes: 644
Registrado: Lun 07 Ago, 2017 4:49 pm

Re: observaciones/elucubraciones

Mensaje por pacopuf »

danvader99 escribió:
Lun 28 Feb, 2022 7:16 pm
Vale voy a probarlo en VBA pero para que sea lo mas real, entiendo que te esta imprimiendo la palabra "print", pero exactamente ¿donde te la imprime? ,como el Python no tenia interfaz grafico.... ¿en el mismo sitio? y tu la ves parpadeando, o te la va imprimiendo en columna o en un TXT que sale en pantalla

Para probarlo en Excel sería mejor limitarlo a 1 millon (mas que nada para no superar las filas y hacerlo en las dos opciones,1- que aparezca la palabra print y 2- sin que aparezca nada para ver cuanto tarda el bucle.

a ver si luego lo hago
Hola,

Bueno, cuando haces un print, te lo muestra por pantalla. Lo que he puesto arriba es justo lo que sale:

λ python3 contar.py
final
--- 12.877079248428345 seconds ---

Pero, ojo, solo 1 print al final del programa (no 100.000.000 prints). Lo hice en un principio para calcular a ojo el tiempo de ejecución. Luego añadí lo de "time" para que sea automático.

Saludos,

Paco
Groucho Marx: ¿A quién vas a creer, a mí o a tus propios ojos?

"Si no podemos poner fin a nuestras diferencias, contribuyamos a que el mundo sea un lugar apto para ellas"
J. F. Kennedy

Adios y hasta la próxima!!
danvader99
11
11
Mensajes: 809
Registrado: Dom 29 Oct, 2017 8:20 pm

Re: observaciones/elucubraciones

Mensaje por danvader99 »

pacopuf escribió:
Lun 28 Feb, 2022 7:44 pm
danvader99 escribió:
Lun 28 Feb, 2022 7:16 pm
Vale voy a probarlo en VBA pero para que sea lo mas real, entiendo que te esta imprimiendo la palabra "print", pero exactamente ¿donde te la imprime? ,como el Python no tenia interfaz grafico.... ¿en el mismo sitio? y tu la ves parpadeando, o te la va imprimiendo en columna o en un TXT que sale en pantalla

Para probarlo en Excel sería mejor limitarlo a 1 millon (mas que nada para no superar las filas y hacerlo en las dos opciones,1- que aparezca la palabra print y 2- sin que aparezca nada para ver cuanto tarda el bucle.

a ver si luego lo hago
Hola,

Bueno, cuando haces un print, te lo muestra por pantalla. Lo que he puesto arriba es justo lo que sale:

λ python3 contar.py
final
--- 12.877079248428345 seconds ---

Pero, ojo, solo 1 print al final del programa (no 100.000.000 prints). Lo hice en un principio para calcular a ojo el tiempo de ejecución. Luego añadí lo de "time" para que sea automático.

Saludos,

Paco
ok solo 1 print y 100 millones de vueltas, voy a probar en VBA
danvader99
11
11
Mensajes: 809
Registrado: Dom 29 Oct, 2017 8:20 pm

Re: observaciones/elucubraciones

Mensaje por danvader99 »

1 segundo !!!

Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz 1.70 GHz
8,00 GB RAM
disco SSD
Windows 10
Excel

Dim bn As Double
Hoja45.Cells(1, 1) = Time
For bn = 1 To 100000000
Next bn
Hoja45.Cells(1, 2) = Time
Hoja45.Cells(1, 3) = "print"

8:30:38 PM 8:30:39 PM print


He traducido lo que me habías puesto

En la mayoría de las operaciones, es innegable que VBA es más rápido que Python. A partir de observaciones repetidas del uso de VBA simple y Python simple, es obvio que Python es aproximadamente dos o tres veces más lento que VBA. Sin embargo, esto se debe a que ambos no son llamados directamente desde su entorno nativo.


Cuando Python llama a código compilado de bibliotecas como Numpy y Scipy, puede ser enormemente más rápido que las mismas operaciones en VBA (50-100 veces más rápido).



El disco SSD también puede ser la clave

Un saludo
pacopuf
11
11
Mensajes: 644
Registrado: Lun 07 Ago, 2017 4:49 pm

Re: observaciones/elucubraciones

Mensaje por pacopuf »

danvader99 escribió:
Lun 28 Feb, 2022 8:34 pm
1 segundo !!!

Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz 1.70 GHz
8,00 GB RAM
disco SSD
Windows 10
Excel

Dim bn As Double
Hoja45.Cells(1, 1) = Time
For bn = 1 To 100000000
Next bn
Hoja45.Cells(1, 2) = Time
Hoja45.Cells(1, 3) = "print"

8:30:38 PM 8:30:39 PM print


He traducido lo que me habías puesto

En la mayoría de las operaciones, es innegable que VBA es más rápido que Python. A partir de observaciones repetidas del uso de VBA simple y Python simple, es obvio que Python es aproximadamente dos o tres veces más lento que VBA. Sin embargo, esto se debe a que ambos no son llamados directamente desde su entorno nativo.


Cuando Python llama a código compilado de bibliotecas como Numpy y Scipy, puede ser enormemente más rápido que las mismas operaciones en VBA (50-100 veces más rápido).



El disco SSD también puede ser la clave

Un saludo
Hablemos de otro tema...

Era broma :)

Pues también me sorprende, porque sí es (bastante) más rápido.

Comentarte que el programa que has usado no es exactamente igual al que yo tenia, porque no estás sumando una variable. Es decir, no haces x = x +1

De todos modos, lo he probado yo:

Sub test1()
Dim bn As Double
Dim x As Double
x = 0
Hoja1.Cells(1, 1) = Time
For bn = 1 To 100000000
x = x + 1
Next bn
Hoja1.Cells(1, 2) = Time
Hoja1.Cells(1, 3) = x
End Sub

Y el resultado sigue siendo mejor que con Python:
5:21:05 a. m. 5:21:13 a. m. 100000000

Pues a verdad, me ha sorprendido. Porque yo me pasé a Python precisamente por la velocidad en ejecución.

Me alegro de haber hecho la comparación, así tengo una mejor idea de ambos.

Por compartir la referencia:

2 GHz Intel Core i7 (2011)
16 GB 1333 MHz DDR3
disco SSD
MacOS High Sierra

Saludos!!

Paco
Groucho Marx: ¿A quién vas a creer, a mí o a tus propios ojos?

"Si no podemos poner fin a nuestras diferencias, contribuyamos a que el mundo sea un lugar apto para ellas"
J. F. Kennedy

Adios y hasta la próxima!!
danvader99
11
11
Mensajes: 809
Registrado: Dom 29 Oct, 2017 8:20 pm

Re: observaciones/elucubraciones

Mensaje por danvader99 »

L0 raro es que tienes un procesador mejor que el mío y mas RAM (ambos con discos SSD) y tardas 8 segundos y yo 1 mi conclusión es que debes de tener mogollon de "mierdas" corriendo en segundo plano y consumiéndote recursos, yo miraría eso.

Quizás también sea porque Excel es de Microsoft, Windows es de Microsoft y quizás corra mas rápido ahí que en un Mac

Es raro


Un saludo
pacopuf
11
11
Mensajes: 644
Registrado: Lun 07 Ago, 2017 4:49 pm

Re: observaciones/elucubraciones

Mensaje por pacopuf »

Bueno,

es lo que te comentaba, en tu programa no haces la suma x = x +1 en cada iteración.

Cuando yo lo tengo exactamente igual al tuyo (es decir, sin el x = x + 1), me tarda 2 segundos (a tí 1 segundo).

He buscado info en internet, y parece que sí es común que VB sea más rápido que Python. Aparte que, estoy de acuerdo, que quizás no se ejecute bien en el mac siendo VBA/excel.

Ya te digo, que no me lo esperaba.

Bueno, ya me he acostumbrado a Python y seguiré con él :)

Saludos!!

Paco
Groucho Marx: ¿A quién vas a creer, a mí o a tus propios ojos?

"Si no podemos poner fin a nuestras diferencias, contribuyamos a que el mundo sea un lugar apto para ellas"
J. F. Kennedy

Adios y hasta la próxima!!
Loboguiten
10
10
Mensajes: 6
Registrado: Mié 23 Feb, 2022 4:35 pm

Re: observaciones/elucubraciones

Mensaje por Loboguiten »

Combinación ganadora de la bonoloto de hoy 13 de junio:
9-20-31-39-42-49
Se han cumplido dos de las observaciones que hice en este hilo, que cuando el bote es importante (hoy lo era, 4,6 millones) sale el 1 o el 49, ha salido el 49. Y que salen tres o cuatro números como mínimo de los bordes de la cuadricula, también se ha cumplido, esta vez con creces: 9, 20, 39, 42, 49.
No se ha cumplido lo de que suelen salir dos números seguidos, pero esto lo esperaba, porque llevaba pasando esto muchos sorteos seguidos.
Avatar de Usuario
Wandering
12
12
Mensajes: 1494
Registrado: Jue 26 Abr, 2018 8:50 pm

Re: observaciones/elucubraciones

Mensaje por Wandering »

Efectivamnete has acertado. Loboguiten
Yo veo algo mas, que si suele salir, por orden o desorden.
solo un detalle. Para este tipo de combinación serian, maximo 1,500.000 combinaciones posible, si eres previsior y analizas las combinaciones ganadoras, de cajon debia de salir.
Esto no es ningun sistema ni nada por el estilo, solo es concepto y cantidad.
Jope hacia tiempo que no escribia, cada vez menos, algunos estaran contentos.
Seguiremos trabajando en la teoira y escribiendo, para no olvidarme de nada.
Me soprende la quiniela, equipos de Estados unidos, seguimos con el mismo patron.
Saludos a tod@s.
:beer2: :money:
Avatar de Usuario
Wandering
12
12
Mensajes: 1494
Registrado: Jue 26 Abr, 2018 8:50 pm

Re: observaciones/elucubraciones

Mensaje por Wandering »

Os propongo esta idea, como observacion/ elucubracion.

Haceis una prediccion de numeros. Para el proximo sorteo o alguno pasado.
Escogeis una de los grupos de combinaciones que tengan un valor superior a 120 y que no sea mayor de 200, por ejemplo.
Luego escrutais contra las que querais anteriores o la nueva y observar los aciertos de 3 y de 4.
Si sois capaces de pronosticar un trio y acertarlo. Os animaria a buscar la forma de obtener beneficio con poca inversión.
Es solo una propuesta.

Si quereis probar o si os gusta. No es nada especial.
Solo curiosidad.
:beer2: :money:
Avatar de Usuario
BlasaZero
10
10
Mensajes: 100
Registrado: Lun 31 May, 2021 7:55 pm

Re: observaciones/elucubraciones

Mensaje por BlasaZero »

Entonces, si se puede.....
NO SE SI SE PUEDE.........!!!!!!
Avatar de Usuario
Wandering
12
12
Mensajes: 1494
Registrado: Jue 26 Abr, 2018 8:50 pm

Re: observaciones/elucubraciones

Mensaje por Wandering »

Blas saludos y saber que aun sigue emtre nosotr@s.
Eso lo sabra usted, yo solo se que si se puede ganar algo y no parece tan complicado.
Incluso, se podria llegar a coger una sin saber mucho de matemmiticas ni nada complejo, me refiero que en el pronostico si lo ordenas de 1 a la ultima, seguro si acertaris muchas veces, entramos en jugar sin elementos del juegp.
Ya tiene otra cosa a probar.
Sigo sin saber mucho mas que nadie de todo esto.
No estaria mal hacer algunas pruebas y ver que combinacion del pronostico tiene tres aciertos, se lo pongo facil.
:beer2:
:beer2: :money:
Avatar de Usuario
BlasaZero
10
10
Mensajes: 100
Registrado: Lun 31 May, 2021 7:55 pm

Re: observaciones/elucubraciones

Mensaje por BlasaZero »

wang escribió:No estaria mal hacer algunas pruebas y ver que combinacion del pronostico tiene tres aciertos, se lo pongo facil.
Ponlo tú y así nos evitamos trabajar dos veces.

Y si pones el código en VB ó en phyton,................., no te digo ná....

y si pones una hoja de datos excel...............je je je :haha:
NO SE SI SE PUEDE.........!!!!!!
Avatar de Usuario
Wandering
12
12
Mensajes: 1494
Registrado: Jue 26 Abr, 2018 8:50 pm

Re: observaciones/elucubraciones

Mensaje por Wandering »

Eso voy y lo pongo.
Un cafetito y una pastita, saco el boli, consulto la matriz y a calcular la posible suma ganadora.
La hoja de excel ni de coña, hay mas cosas que no deben de verse ni de broma.
Por cierto.
La quiniela, de esta semana, suma 14 o es una ilusion. Preguntate cuanto sumo la anterior, 10, debia de subir descarado y luego diarn qu es azar y muy complicada. Sigo sin comparar equipos. :;): sigo equivocado.
Si es hacer las cosas de otra manera, inexplicables y poco entendibles.
Los maestros se fueron de vacaciones.
Bastante he contado y he escrito.
Ese es vuestro trabajo, coges el mega primi, pones en sumas una cantidad como mayor y minima, Una vez celebrado el sorteo la escrutas, por lo general habra 3 y 4.
Si aciertas la suma tendras el pleno y algo mas.
Luego miras las combinaciones ganadoras, por que si se puede y a ver si te da una pista.
Poca inversión y ganar algo. Fantastico si, casualidad no se.
Premio y no he pensado en ningun numero.
Por lo general entre las 30 primeras suele haber alguna de 3, etc.
No hace falta ningun algoritmo, es lo que deben y llevan todos los programas. Eso aqui y en el universo.
Te vale esto.
:beer2:
:beer2: :money:
Avatar de Usuario
BlasaZero
10
10
Mensajes: 100
Registrado: Lun 31 May, 2021 7:55 pm

Re: observaciones/elucubraciones

Mensaje por BlasaZero »

Siempre con los jeroglíficos...... :aplauso: :aplauso: :aplauso:

Así no podemos aprender nunca.........


Mecachis en la mar, no vais a dejar nada sano a la civilización,,,,,,,,,
NO SE SI SE PUEDE.........!!!!!!
Responder