»
AnglaisFran�aisVietnamien

Imprimer - Vitaliy's Math Library Javascript - JavaScriptBank.com

Version compl�te: jsB@nk » Calcul » Math » Vitaliy's Math Library Javascript
URL: https://www.javascriptbank.com/vitaliy-math-javascript-library-demo.html

Vitaliy's Math Library Javascript © JavaScriptBank.comVitaliy's Math Javascript Library - est la collection de routines ne figurent pas dans JavaScript intégré dans les objets (mathématiques, Number). L'outil de cette page est utilisé pour montrer comment ces fonctions de travail. C'est encore une version beta de la bibliothèque, puisque les essais ne sont pas encore complets.

Version compl�te: jsB@nk » Calcul » Math » Vitaliy's Math Library Javascript
URL: https://www.javascriptbank.com/vitaliy-math-javascript-library-demo.html



JavaScript
<script language="JavaScript"><!--/************************************************************************************//* math.js - the library of mathematical functions that are not part of Math object.*//* AUTHOR: Vitaliy Rabotnik WWW: http://chat.carleton.ca/~vrabotni/JavaScript/Math/ *//* VERSION                                                                          *//* VERSION: 1                                               DATE: 01/03/2000        *//************************************************************************************//****************************************************************************//* DESCRIPTION: Returns a string representing expansion of (x + y)^n.       *//* PARAMETERS: n - a positive integer;                                      *//* format(optional) - the output format either text ("txt") or html ("html")*//* default is "html" format                                                 *//****************************************************************************/function binomial(n, format){  var out = "";  var temp;  var pow1, pow2;    if(format == "txt")  {    pow1 = "^";pow2 ="";  }    else  {    pow1 = "<sup>";pow2 = "</sup>";    }    if(!isInteger(n) || n < 0)   {   // alert("Error \"binomial\": " + n + " is not valid number.");    return;  }    for(var i = 0; i <= n; i++)  {    temp = choose(n,i);if(temp > 1) out += temp;if(i > 1)  out += "x" + pow1 + i + pow2;    if(i == 1)  out += "x";  if(n - i > 1) out += "y" + pow1 + (n - i) + pow2; if(n - i == 1) out += "y"; if(i < n) out += " + ";      }  return out;}/*******************************************************************************************//* DESCRIPTION: Returns the result of  "n choose r"; Returns null if "n" and r are invalid.*//* PARAMETERS: n and r - are positive integers, where r is less or equal to n.             *//*******************************************************************************************/function choose(n,r){  if(!isInteger(n) || !isInteger(r))  {   // alert("Error \"choose\": " + n + " or " + r + " are not valid number.");    return;  }    if(r > n)  {    // alert("Error \"choose\": " + r + " must be less or equal to " + n + "."); return;  }    return factorial(n)/(factorial(n - r) * factorial(r));}/************************************************************************************//* DESCRIPTION: Returns the factorial of namber "n"; Returns null if "n" is invalid.*//* PARAMETERS: n - a positive integer                                               *//************************************************************************************/function factorial(n){  if(n < 0 || !isInteger(n))   {   // alert("Error \"factorial\": " + n + " is not valid number.");    return;  }  if(n == 0) return 1;  if(n == 1) return n;  return (n * factorial(n - 1));}/*******************************************************************************//* DESCRIPTION: Returns n th fibonacci number; Returns null if "n" is invalid. *//* PARAMETERS: n - a positive integer greater than zero                        *//*******************************************************************************/function fibonacci(n){  if(n < 1 || !isInteger(n))   {   // alert("Error \"fibonacci\": " + n + " is not valid number.");    return;  }  if(n == 1 || n == 2)      return 1;  return fibonacci(n - 1) + fibonacci(n - 2);}/********************************************************************//* DESCRIPTION: Returns wheather the number "n" is an even number.  *//* PARAMETERS: n - an integer or a string representing integer.     *//********************************************************************/function isEven(n){  if(!isInteger(n))    {  // alert("Error \"roundOff\": " + n + " or " + r + " is not valid number.");    return;  }    return(n%2 == 0);}/*************************************************************//* DESCRIPTION: Returns wheather the number "n" is a float.  *//* PARAMETERS: n - a float or a string representing float.   *//*************************************************************//*function isFloat(n){  return (parseFloat("" + n) === n);}  *//******************************************************************//* DESCRIPTION: Returns wheather the number "n" is an integer.    *//* PARAMETERS: n - an integer or a string representing integer.   *//******************************************************************/function isInteger(n){   if(isNaN(n))     return false;    return(parseInt("" + n) == n);}  /******************************************************************//* DESCRIPTION: Returns wheather the number "n" is a prime number.*//* PARAMETERS: n - a positive integer greater than zero.          *//******************************************************************/function isPrime(n){  if(!isInteger(n) || n < 1)   {   // alert("Error \"isPrime\": " + n + " is not valid number.");    return;  }      for(var i = 2; i < n - 1; i++)   {    if(n % i == 0)  return false;  }  return true;}  /********************************************************************//* DESCRIPTION: Returns wheather the number "n" is an odd number.   *//* PARAMETERS: n - an integer or a string representing integer.     *//********************************************************************/function isOdd(n){  if(!isInteger(n))    {  // alert("Error \"roundOff\": " + n + " or " + r + " is not valid number.");    return;  }  return(!isEven(n));}/********************************************************************//* DESCRIPTION: Logarithm of number "n" to the base a.              *//* PARAMETERS: n - a number; a - base.                              *//********************************************************************/function log(n,a){  if(isNaN(a) || isNaN(n))    return;  return(Math.log(n)/Math.log(a));}/*********************************************************************//* DESCRIPTION: Rounds off the number "n" to "digits" decimal places.*//* PARAMETERS: n - a number; digits - number of decimal places.      *//*********************************************************************/function roundOff(n,digits){  var temp;  if(isNaN(n) || !isInteger(digits))    {  // alert("Error \"roundOff\": " + n + " or " + r + " is not valid number.");    return;  }    if(digits < 0)  {    // alert("Error \"roundOff\": " + digits + " must be greater or equal to zero.");    return null;  }  if(digits == 0)    return Math.round(n);    temp =  Math.pow(10,digits)   return(Math.round(n * temp)/temp);}/********************************************************************************//* DESCRIPTION: Returns a string representation of the binary convertion of "n".*//* PARAMETERS: n - a positive integer.                                          *//********************************************************************************/function toBinary(n){  var out = "";  var temp;      if(!isInteger(n) || n < 0)   {   // alert("Error \"toBinary\": " + n + " is not valid number.");    return;  }  if(n == 0)   return 0;    temp = n;  while(temp > 0)  {    out =  (temp % 2) + out;     temp = parseInt(temp / 2);  }   return out;}/********************************************************************************//* DESCRIPTION: Returns an integer.                                             *//* PARAMETERS: n - a string representation of the binary number.                *//********************************************************************************/function toDecimal(n){  var out = 0;  var temp = "";  var startFound = false;        temp += n;    if(!validBinaryNumber(temp))    return;  for(var i = 0; i < temp.length; i++)   {    if(temp.charAt(i) == '1')  startFound = true;      if(startFound)      out += parseInt(temp.charAt(i)) * Math.pow(2, temp.length - (i + 1));  }  return out;}function validBinaryNumber(n){  for(var i = 0; i< n.length; i++)  {    if(n.charAt(i) != '0' && n.charAt(i) != '1')  return false;  }  return true;  }//--></script><script language="JavaScript">var functionNames;var rules;var farguments;var n, r;var IE = document.all;var NS = document.layers;function setText(what,str){  if(IE)    what.innerHTML = str;  else if(NS)  {    what.document.open();    what.document.write(str);what.document.close();  }}function getInput(){  var f = document.forms[0];  var list = f.functions;  var args = farguments[list.selectedIndex];  var func = functionNames[list.selectedIndex];  var type = inputTypes[list.selectedIndex];     n = prompt("Please enter the value for n: ", "");   if(n == null)   {  alert("The action was aborted by user!")  return;}      if(type[0] == "int")         n = parseInt(n);  else if (type[0] == "float")  n = parseFloat(n);      if(args == 2)   {      r = prompt("Please enter the value for r: ", "");     if(r == null)     {  alert("The action was aborted by user!")  return;     }       if(type[1] == "int")          r = parseInt(r);  else if (type[1] == "float")  r = parseFloat(r);     }   solve(func,args);   }function solve(func, args){ var field = getField("answ"); var msg = "<b>Answer is:</b> ";  if(args == 1) {   if(isNaN(n))     msg += eval(func + "(\"" + n + "\")");   else       msg += eval(func + "(" + n + ")");  }  else if(args == 2)    msg +=  eval(func + "(" + n + "," + r + ")");  setText(field, msg);}function update(ptr){   var index = ptr.selectedIndex;   setText(getField("description"), rules[index]);   setText(getField("answ"), "");}function getField(name){   if(IE)    return document.all[name];   else if(NS)   {    return document.layers[name];   }}// add an Option object into a combo box at indexfunction addOption(list, index, opt){   list.options[index] = opt;}// fill up a combobox with Option objectsfunction fillUpList(list, options, values){   for(var i = 0; i < options.length; i++)      addOption(list, i, new Option(options[i]),values[i]);   list.selectedIndex =  0; }function fixStupidNetscapeBug(){    var pointer = document["ptr"];var troubleLayer = document.layers["answ"];troubleLayer.top = pointer.pageY;troubleLayer.left = pointer.pageX;}</script><!--    This script downloaded from www.JavaScriptBank.com    Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->


HTML
<body onload="init();"><form><table cellspacing="7" cellpadding="7"><tbody><tr><td><select name="functions" onchange="update(this);"><option>binomial</option><option>choose</option><option>factorial</option><option>fibonacci</option><option>isEven</option><option>isInteger</option><option>isPrime</option><option>isOdd</option><option>log</option><option>roundOff</option><option>toBinary</option><option>toDecimal</option></select><input type="button" value="Calculate" onclick="getInput();"></td><td><span id="answ"><ilayer name="ptr"></ilayer><layer name="answ"></layer></span></td></tr></tbody></table><p><span id="description"><layer name="description"></layer></span><script language="JavaScript">function init(){   var f = document.forms[0];      functionNames = new Array("binomial", "choose", "factorial", "fibonacci", "isEven", "isInteger", "isPrime", "isOdd", "log", "roundOff", "toBinary", "toDecimal");   rules = new Array();      rules[0] = "<b>binomial(n)</b> - returns binomial expansion of equation (x + y)<sup>n</sup>.<br><i>n</i> must be a positive integer.";   rules[1] = "<b>choose(n,r)</b> - returns number of different groups of size <i>r</i> selected from a set of <i>n</i> objects, where <i>r <= n</i>.";   rules[2] = "<b>factorial(n)</b> - returns a factorial of the number <i>n</i>. <br><i>n</i> must be a positive integer.";   rules[3] = "<b>fibonacci(n)</b> - returns <i>n<sup>th</sup></i> fibonacci number. <br><i>n</i> must be a positive integer.";   rules[4] = "<b>isEven(n)</b> - whether <i>n</i> is an even number.<br><i>n</i> must be an integer.";   rules[5] = "<b>isInteger(n)</b> - whether <i>n</i> is an integer.";   rules[6] = "<b>isPrime(n)</b> - whether <i>n</i> is a prime number.<br><i>n</i> must be an integer greater than zero.";   rules[7] = "<b>isOdd(n)</b> - whether <i>n</i> is an odd number.<br><i>n</i> must be an integer.";   rules[8] = "<b>log(n,r)</b> - returns logarithm of <i>n</i> to the base <i>r</i>.";   rules[9] = "<b>roundOff(n,r)</b> - rounds off <i>n</i> to specified (<i>r</i>) number of digits.";   rules[10] = "<b>toBinary(n)</b> - returns a string representing binary number conversion of <i>n</i>.<br><i>n</i> must be a positive integer.";   rules[11] = "<b>toDecimal(n)</b> - returns a decimal integer representation of binary string <i>n</i>.<br><i>n</i> must be a valid binary string.";      farguments = new Array(1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1);          inputTypes = new Array();   inputTypes[0] = new Array("int");   inputTypes[1] = new Array("int","int");   inputTypes[2] = new Array("int");   inputTypes[3] = new Array("int");   inputTypes[4] = new Array("int");   inputTypes[5] = new Array("any");   inputTypes[6] = new Array("int");   inputTypes[7] = new Array("int");   inputTypes[8] = new Array("float", "float");   inputTypes[9] = new Array("float","int");   inputTypes[10] = new Array("int");      inputTypes[11] = new Array("str");        fillUpList(f.functions, functionNames, functionNames);   setText(getField("description"), rules[0]);      if(NS)    fixStupidNetscapeBug();}</script></form></body><!--    This script downloaded from www.JavaScriptBank.com    Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->