Tengo un sitio web de matemáticas http://finitehelp.com que enseña a los estudiantes matemáticas finitas. Pensé que sería genial incluir una calculadora, así que hice una para combinaciones y permutaciones en Javascript. La calculadora en vivo está en http://finitehelp.com/finite-calculator.html. No sé casi nada sobre Javascript y me atrevería a adivinar que hay una forma mucho más eficiente de escribir lo siguiente, particularmente debido al uso excesivo de variables. Si alguien pudiera ayudarme, estaría muy agradecido.La forma más eficiente de escribir la calculadora de combinación y permutación en Javascript
<script type="text/javascript">
// calculate n!
Math.factorial = function(n)
{
if(typeof n == 'string') n = Number(n);
if(typeof n != 'number' || isNaN(n))
{
alert("Factorial requires a numeric argument.");
return null;
}
if (n < 2) return 1;
return (n * Math.factorial(n-1));
}
Math.divide = function(a,b)
{
return a/b;
}
</script>
<form class="form" name="combination" action="">
<p>C(<input type="text" value="n" name="T1" size="1">,<input type="text" value="r" name="T2" size="1">)
<input type="button" value="Calculate"
onclick="var n = T1.value; var r = T2.value; var n_minus_r = parseFloat(n) - parseFloat(r); var numerator = Math.factorial(T1.value); var n_minus_r_fact = Math.factorial(n_minus_r); var r_fact = Math.factorial(r); var denominator = n_minus_r_fact * r_fact; T3.value = Math.divide(numerator,denominator); return true;">
= <input type="text" name="T3" size="12" readonly></p>
</form>
Creo que será más eficiente asignar la tarea a un alumno. ¡Piensa en los beneficios adicionales! Además de que no requiere ningún esfuerzo de su parte, el alumno también aprenderá cosas nuevas, y con suerte mantendrá y actualizará el código si fuera necesario: D. – mingos