Anuncios Google

Dividir un numero entre 0 en LuaDev

Desde hoy hay algo más que no entiendo, he programado algo para nds en lua que dividiera 5 / 0 (ya se que no se puede hacer) y da infinito en cambio en psp y con LuaDev da un número entero de más de 4 cifras, y si divido 0 / 0 en vez de dar infinito la psp se queda bloqueada y se apaga sola, esto es simplemente una prueba que he hecho a ver lo que pasaba y descubrí un error, aqui teneis el código

 

a = 0
 
while true do
a = 5/0 -- Prueba a dividir 0/0 y la psp se quedará bloqueada
screen.print(0,2,a)
 
screen.flip()
end


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Comandillos

Claro

No lo haces bien, tienes que poner screen.print(0,0,"∞"), y el signo del infinito dependiendo del valor del 0 del denominador, bien si se acerca por la derecha (0 positivo) o bien si se acerca por la izquierda (0 negativo).

Mas o menos, quedaría...

-- Declara B como el denominador de la división, es decir, un 0 hacia la derecha (como 0.[...]) o un 0 hacia la izquierda (como -0.[...])
 
B = 0.000000000000001 -- En este caso, declaro un cero hacia la derecha
 
while true do
 
if (B > 0)
{
 screen.print(0,0,"+∞")
}
 
if (B < 0)
{
 screen.print(0,0,"-∞")
}
 
if (B == 0)
{
 screen.print(0,0,"∞")
}
 
screen.flip()
end
 

Saludos


Imagen de Dioni0396

La cosa es

como vas a dividir algo si ni esta el que divide?

LOL Es un circulo vicioso.

 

Eso es lo que le he explicado yo xD

Eso es lo que le he explicado yo xD

Imagen de NEKERAFA

Uff

Al ver el titulo ya me estaba dando algo XD...

Y a mí xD

Y a mí xD

No es ningún error...

Es matemática pura:

Como sabes, cualquier número dividido entre 0 da infinito por el hecho de que cuanto más decimal sea el denominador de una fracción más se acercará a un número enorme, pero en el caso de dividir 0, que es una cantidad NULA, entre 0, es normal que se quede bloqueada, ya que aunque dividas 0 entre cualquier otro número SIEMPRE dará 0, y si lo divides entre 0 pues supongo que la reacción de bloqueo será totalmente normal ya que matemáticamente es imposible efectuar con éxito dicha operación.

Un saludo.


 

 

Imagen de User170294

Te equivocas...

Las operaciones de división entre 0 se pueden resolver. Tan solo tienes que aplicar un poco de límites a la indeterminación. A mí si que me parece un fallo, ya que entonces en LuaDEV es imposible resolver una operación entre 0, cosa que con un lapiz y un papel consigues ¬¬


Imagen de Chimecho

Invitación

Pues eso, te invito a que hagas una división para 0 en Java, C, o cualquier lenguaje que se te antoje, a ver si no te revienta en la cara un error o una excepción jaja



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de User170294

Depende

Ya he dicho más abajo como evitar el error en cualquier lenguaje :D

Imagen de Chimecho

Ya

Yo sé cómo evitar el error, he hecho calculadoras, puede ser poniendo condiciones o un try-catch o lo que sea, pero es obvio que me refería a hacerlo así a como quiere, sin hacer nada más, simplemente poniendo a = b/0; y PUM! xD



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de User170294

Valores infinito...¿?

Deberían existir los valores infinito positivo e infinito negativo en programación :( no entiendo por que no hacer que al detectar una división por 0 se  devuelba el valor infinito positivo o el valor infinito negativo (o un True o False en su defecto :D) automáticamente por la máquina.

Saludos.


Hombre...

Algo tendrá que poner de su parte el programador, no todo lo hace la maquina, ¿no? :)

Imagen de User170294

¿Por qué no?

No me gustaría que por hacer 3/2 me devolviese un error debido a que no manipula números reales el lenguaje de programación en cuestión del concepto :)

No veo razón para que no devuelba por lo menos True/False o NIL.

Saludos.


Decimales si que devuelve...

Lo que no devuelve es infinito cuando se divide entre 0, que es lo que hemos estado comentando...

Imagen de User170294

"No me gustaría que por hacer

"No me gustaría que por hacer 3/2 me devolviese un error debido a que
no manipula números reales el lenguaje de programación en cuestión del
concepto :)

No veo razón para que no devuelba por lo menos True/False o NIL.

Saludos."

 

Y es sobre lo que estoy comentando... Te he marcado en negrita para que veas que lo de los decimales es un ejemplo y no una realidad. Y que mi opinión está escrita al final del segundo párrafo. 

¿Cuál sería tu opinión? Saludos.


Ahhh...

Ahora entiendo...

Bueno, en mi opinión, para hallar una respuesta más técnica se debería mirar el algoritmo de resolución de calculos que incorpora LuaDev y ver el mecanismo, una vez visto se podría sacar alguna conclusión que solucione este tema...


 

 

Imagen de User170294

Ya, pero esto no es en Luadev

Ya, pero esto no es en Luadev es en TODOS los lenguajes de programación :/

Ya… ya...

Era solo para ponerte un ejemplo ;D

En el peor de los casos puede

En el peor de los casos puede pasar....: http://www.youtube.com/watch?v=mZ7pUADoo58

Imagen de Chimecho

D:

Inglip

LOOOOOOOL

Ahí me has matao jajajaja

Imagen de Comandillos

No se porque

Pero me encanta este video :D

Imagen de NEKERAFA

Estas equivocado

No se puede resolver.

Al calcular los límites solo estas viendo un comportamiento de esta operación, tiende a un número enorme. En matemáticas se representa a este comportamiento como infinito. El infinito es solo una tendencia, no es un número. Si se pudiera resolver, te daría una solución finita y concreta.

La matemáticas exigen soluciones concretas, y para lo no da algo concreto, te da la posibilidad de ver una tendencia o una aproximación, a veces clara y otras imprecisa, pero, debido a que no es algo concreto, no te da la solución. Es el caso del número pi, las raices cuadradas de numeros primos, ect...

Sabes que el número pi empieza por 3,141592... (Perdonar si me equivoco, lo he escrito de memoria) y las matemáticas te dicen que sus decimales tienden a infinito, pero no sabes que número es exactamente, solo una aproximación a el.

 

Un saludo ^-^.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de User170294

No me acabaís de entender...

Me refiero a que si haces por ejemplo una calculadora y el usuario decide dividir 20 entre 0 la PSP se le vá a colgar y no vas a poder programar jamás una calculadora en LuaDEV que te diga "Error" sin que se cuelgue la PSP (que es el problema de verdad).

PD: ya sé como se podría resolver... :D si el divisor es 0 que devuelba "Error" ¬¬

Saludos.


Imagen de jorge_97

By jorge_97

Agregaré eso a mi calculadora ;)

Un saludo

Imagen de User170294

Jaja.

Se me ocurrió pensando en tu calculadora :D

Saludos.

Imagen de jorge_97

By jorge_97

jjajajaja pues no se cuelga...

simplemente sale un número muy grande.

Bueno pero ya está solucionado.

Pueden descargarlo en la noticia oficial

Un saludo


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Dioni0396

...

if(Divisor != 0) then

code

else

message("Error")

end

Claro...

Eso sí, pero es bastante simple de todos modos...

Imagen de User170294

Mejor ;)

En mi opinión cuanto más simple mejor, pero para gustos los colores...

Exacto, justo lo que le he

Exacto, justo lo que le he dicho.

En el caso de k/0 da

En el caso de k/0 da infinito, solo se podría calcular si fuera de la forma k/x cuando x tiende a un número que hace que el denominador sea 0 ( en este caso cuando x tiende a 0), entonces se deberían calcular los límites laterales.

Pero vamos a ver...

Si de toda la vida nos han dicho que cualquier número dividido entre 0 es infinito (o tiende a serlo), ¿cómo pretendes resolverlo con lápiz y papel?


 

 

Imagen de Andres_Ne

+1

+1

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.