¿Cómo cambiará la industria del software si definimos x / 0 como 0 o una cantidad definida?

Examinaré dos escenarios , uno donde hay muy pocos cambios en la industria del software y otro donde podría haber un cambio modesto.

Escenario uno: Una buena manera de ver por qué habría muy pocos cambios es contemplando cómo el software maneja la raíz cuadrada de uno negativo (el imaginario [matemático] i [/ matemático]). La mayoría del software no presta atención a [math] i [/ math] ya que no es un número real y los números reales son suficientes para la gran mayoría de nuestros propósitos. El software con [math] i [/ math] (que significa números complejos) solo se ha desarrollado para áreas especializadas donde [math] i [/ math] es importante como la ingeniería eléctrica, las matemáticas y la física cuántica. Y, de hecho, este ya es el caso de la división entre [matemáticas] 0 [/ matemáticas]. Solo (hasta donde yo sé) en software especializado para matemáticos como Mathematica se divide y trabaja con [matemática] 0 [/ matemática].

Pero, se podría decir, hay una gran diferencia en comparación con la división por [matemáticas] 0 [/ matemáticas]. No hay un mensaje de error con [math] i [/ math]. Por supuesto que es correcto. Entonces, ¿cambiaría algo si no hubiera ningún mensaje de error? Si, por ejemplo, se utilizara la definición de infinito complejo? Dudoso. Lo único que cambiaría sería que los desarrolladores de software ahora tendrían que evitar cualquier división entre [math] 0 [/ math] que se haya definido.

Escenario dos: un impacto (¿modesto?) En un software más general puede resultar de al menos dos áreas de investigación que involucran una división definida por [matemáticas] 0 [/ matemáticas]. Las dos áreas son “Meadows como un nuevo tema en The Theory of Rings and Fields”, donde [matemáticas] 0 ^ {- 1} = 0 [/ matemáticas] y Computación exacta que implica una “aritmética real exacta” basada en parte en Transformaciones de Mobius que están relacionadas con el complejo infinito mencionado en el escenario uno anterior. Los enlaces proporcionados aquí son solo la punta de un iceberg de trabajo ya considerable en estas áreas. Queda por ver cómo se desarrollan estas (y quizás otras) teorías y sus aplicaciones. La computación exacta elimina los errores de redondeo y es un competidor de la aritmética de coma flotante. Un uso de Meadows implica la vinculación y gestión de datos. La ventaja que promete tener en relación con el software de gestión de datos existente está más allá de mi capacidad de evaluar.

No cambiaría mucho: los errores en los programas que dependen de manera no trivial de que la división por cero sea una excepción o un error, etc. Casi todos los programas o aplicaciones hacen esta suposición, pero muy pocos programas o aplicaciones tienen un comportamiento no trivial que depende de esto. suposición.

De hecho, C # en realidad ha definido la división por cero para que no sea un error para los valores de coma flotante; mira aquí. El razonamiento de Microsoft es que

“El desbordamiento aritmético de punto flotante o la división por cero nunca arroja una excepción, porque los tipos de punto flotante se basan en IEEE 754 y, por lo tanto, tienen disposiciones para representar el infinito y NaN (no es un número)”.

Este comportamiento es tan intrascendente que la mayoría de los programadores de C # ni siquiera se dan cuenta de que la división por cero de flotantes no arrojará una excepción.

More Interesting

¿La comunidad de matemáticos sería bienvenida a las nuevas ideas que se originan fuera de esa comunidad si se adhieren a las reglas de la verdad matemática?

¿Cómo era Shiing Shen Chern en persona?

Deje que [matemáticas] a_0 = 1 [/ matemáticas] y [matemáticas] a_n = a_ {n-1} (4- \ frac {2} {n}) [/ matemáticas], [matemáticas] n \ geq 1 [/ matemáticas ] ¿Cómo demuestras que [math] a_n [/ math] es un entero positivo?

Cómo obtener una imagen del rostro de una mujer que no corresponde a la proporción áurea (parece que todos tienen una proporción áurea)

¿Puedes predecir la cantidad de pasos necesarios para resolver un enunciado matemático?

¿Cuál es el coeficiente de [matemáticas] x ^ 3 [/ matemáticas] en [matemáticas] (1 + 2x + 3x ^ 2 + 4x ^ 3) ^ 5 [/ matemáticas]?

¿Dónde se usa la serie seno / coseno de Fourier en el mundo real?

Agrupaciones: ¿Qué es una función [matemática] f [/ matemática] que satisface la condición: [matemática] f (A_i) = f (A_j) [/ matemática] si y solo si [matemática] | A_i - A_j | <\ epsilon [/ math], donde [math] \ epsilon [/ math] es una constante positiva?

¿Cómo se calculan las operaciones aritméticas en Python?

¿Por qué la definición formal captura la noción de un límite en lugar de otras permutaciones de cuantificadores, épsilon y delta?

Cuando expandimos una desigualdad como (ab) (c + d)> 0, ¿por qué se invierte un signo de desigualdad?

He visto muchas listas de los diez mejores matemáticos y Cauchy no estaba en la mayoría de ellos. ¿No está él allá arriba con gente como Euler y Gauss?

¿Por qué los fractales son tan comunes en la naturaleza?

Si [matemáticas] a \ ne b [/ matemáticas] y [matemáticas] a + b = 1 [/ matemáticas], entonces ¿cuál es el valor más bajo de [matemáticas] a ^ {-1} + b ^ {-1} [ /matemáticas] ?

¿Cuánto combustible se desperdicia todos los días debido a la ineficiencia de los semáforos automáticos?