私は学生の有限の数学を教えるhttp://finitehelp.comの数学ウェブサイトを持っています。 私は、電卓を組み込むのがいいと思っていたので、Javascriptで組み合わせと順列を作ったのです。ライブ計算機はhttp://finitehelp.com/finite-calculator.htmlです。私はJavascriptについては何も知らず、特に変数の過度の使用のために次のような記述を行うより効率的な方法があると推測します。誰かが私を助けてくれたら、私はとても感謝しています。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>
私は、タスクを学生に割り当てることが最も効率的であると信じています。特別なメリットについて考えてみましょう!あなたが努力する必要はありませんが、生徒は新しいものも学び、必要に応じてコードを維持してアップグレードしてください。D。 – mingos