elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C++ o Python, cual de los dos se equivoca!?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C++ o Python, cual de los dos se equivoca!?  (Leído 3,147 veces)
TheMaker


Desconectado Desconectado

Mensajes: 514



Ver Perfil
C++ o Python, cual de los dos se equivoca!?
« en: 3 Noviembre 2010, 00:30 am »

Tengo dos códigos, q hacen lo mismo (o es creo)

el de c++

Código
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int re(int nu){
  5.    if(nu==0)
  6.            return 0;
  7.    if(nu==1)
  8.            return 1;
  9.    return 3*re(nu-1)+4*re(nu-2);
  10.    }
  11. int main(){
  12.    cout<<re(1);
  13.    }

y el de python

Código
  1. def r(n):
  2. if n==0:
  3. return 0
  4. if n==1:
  5. return 1
  6. return 3*r(n-1)+4*r(n-2)

hasta r(16) dan los mismos resultados, pero a partir de ahí cada uno dice una cosa distinta, además c++ peta en cuanto se sube de r(20) mientras que python... llega a valores superiores a r(900) :O (copón bendito)

pues bien, usando el máxima (una copia libre del mathematica) he comprobado que python es el que lleva razón, alguien sabe porque c++, un leguaje que se supone supereficiente en comparación con un leguaje como python, se equivoca(para valores altos) en cálculos matemáticos que python resuelve sin despeinarse???


En línea

Gibe money please or I report you
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: C++ o Python, cual de los dos se equivoca!?
« Respuesta #1 en: 3 Noviembre 2010, 01:13 am »

¡Buenas!

Eso que describes me suena al rango de valores que puede tomar una variable de tipo int. Imprimitete por pantalla sizeof(int), lo multiplicas por 8 y eleva 2 al resultado que de en la calculadora. Luego dividelo por 2 y ese sera el entero mas grande que puedas utilizar en c++.

Por ejemplo, si sizeof(int) = 4 -> 8 * 4 = 32 -> 2^32 = 4.294,967.296 (Este sera el unsigned int mas alto que podras utilizar (realmente le tienes que restar uno)) y 4.294,967.296 / 2 - 1 = 2.147,483.647 Es el int mas alto que puedes utilizar.

Por lo que dices, la forma en la que python maneja enteros es distinta. Puede utilizar enteros arbitrariamente grandes.

En C++ esto lo puedes simular tu con una clase que maneje enteros todo lo grandes que quieras, por ejemplo, utilizando vectores de enteros. Luego, evidenemente, tendra que formatear la entrada y la salida, sobrecargar operadores...

¡Saludos!

PD: en limits.h, te salen los limites de los tipos enteros.


« Última modificación: 3 Noviembre 2010, 01:15 am por do-while » En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: C++ o Python, cual de los dos se equivoca!?
« Respuesta #2 en: 3 Noviembre 2010, 02:08 am »

 ;) por eso estudio los dos... ;D ;D y no me voy de todo del scripting
« Última modificación: 3 Noviembre 2010, 02:11 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
EvilGoblin


Desconectado Desconectado

Mensajes: 2.323


YO NO LA VOTE!


Ver Perfil
Re: C++ o Python, cual de los dos se equivoca!?
« Respuesta #3 en: 7 Noviembre 2010, 16:25 pm »

los 2 (c++ y python) son muy eficientes mientras los sepas usar =).


Python es una fuente de programacion rapida para tareas sencillas y a medida que la complicas se hace poco menos legible y mas desordenado.

Encambio C++ no cambia su dificultad desde el "Hola Mundo" hasta hookeos y mutex xD..

tenes que usar double int

En línea

Experimental Serial Lain [Linux User]
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: C++ o Python, cual de los dos se equivoca!?
« Respuesta #4 en: 7 Noviembre 2010, 16:49 pm »

tenes que usar double int

double int? :xD

Citar
C tiene los siguientes tipos fundamentales:

    * Caracteres: char (también es un entero), wchar_t
    * Enteros: short int, int, long int, long long int
    * Números en coma flotante: float, double, long double
    * Vacío: void
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
EvilGoblin


Desconectado Desconectado

Mensajes: 2.323


YO NO LA VOTE!


Ver Perfil
Re: C++ o Python, cual de los dos se equivoca!?
« Respuesta #5 en: 8 Noviembre 2010, 18:11 pm »

xD cierto long int :P
lo siento xD
En línea

Experimental Serial Lain [Linux User]
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Python: Cual es el error del codigo
Scripting
JCRb 3 4,814 Último mensaje 9 Enero 2012, 21:35 pm
por JCRb
bash y python (cual usar) ???
Scripting
retr02332 2 2,081 Último mensaje 30 Enero 2020, 02:51 am
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines