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
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...
Saludos
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
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.
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 ¬¬
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 -_-
Depende
Ya he dicho más abajo como evitar el error en cualquier lenguaje :D
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 -_-
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? :)
¿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...
"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...
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
D:
LOOOOOOOL
Ahí me has matao jajajaja
No se porque
Pero me encanta este video :D
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).
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.
By jorge_97
Agregaré eso a mi calculadora ;)
Un saludo
Jaja.
Se me ocurrió pensando en tu calculadora :D
Saludos.
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
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
...
if(Divisor != 0) then
code
else
message("Error")
end
Claro...
Eso sí, pero es bastante simple de todos modos...
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?
+1
+1