bc
prend en charge le logarithme naturel s'il est invoqué avec l' -l
indicateur. Vous pouvez calculer le journal base-10 ou base-2 avec lui:
$ bc -l
...
l(100)/l(10)
2.00000000000000000000
l(256)/l(2)
8.00000000000000000007
Je ne pense pas qu'il y ait une factorielle intégrée, mais c'est assez facile de vous écrire:
$ bc
...
define fact_rec (n) {
if (n < 0) {
print "oops";
halt;
}
if (n < 2) return 1;
return n*fact_rec(n-1);
}
fact_rec(5)
120
Ou:
define fact_it (n) {
if (n < 0) {
print "oops";
halt;
}
res = 1;
for (; n > 1; n--) {
res *= n;
}
return res;
}
fact_it(100)
93326215443944152681699238856266700490715968264381621468592963895217\
59999322991560894146397615651828625369792082722375825118521091686400\
0000000000000000000000
Pour être conforme à POSIX, vous devez l'écrire:
define f(n) {
auto s, m
if (n <= 0) {
"Invalid input: "
n
return(-1)
}
s = scale
scale = 0
m = n / 1
scale = s
if (n != m) {
"Invalid input: "
n
return(-1)
}
if (n < 2) return(1)
return(n * f(n - 1))
}
C'est-à-dire: nom de la fonction à un caractère, non print
, non halt
, parenthèses requises dans return(x)
. Si vous n'avez pas besoin de validation d'entrée (ici pour les nombres entiers positifs), c'est juste:
define f(n) {
if (n < 2) return(1)
return(n * f(n - 1))
}
0!=1
tout comme1!=1
. C'est du moins ce que dit Wikipédia.Orpie est la calculatrice pour les geeks calculatrice et ligne de commande. Il émule une calculatrice HP RPN moderne, qui est bien sûr la seule vraie façon de calculer.
Si vous êtes un calculateur hérétique, élevé sur les TI, les Casios, etc., il existe de nombreux tutoriels RPN en ligne avec lesquels vous pouvez commencer votre rééducation. Le manuel Orpie vous sera éventuellement utile une fois que vous aurez compris la façon de penser du RPN.
Pour calculer 5! dans orpie, il suffit de taper comme vous rédigeriez: 5 !. Vous pouvez appuyer Enterentre eux pour pousser d'abord
5
sur la pile, mais ce n'est pas nécessaire.Pour calculer le journal 10 (5), tapez 5 Enter ' l o Enter. Vous devez d'abord pousser le
5
sur la pile dans ce cas, car la prochaine frappe n'est pas un opérateur. Ce caractère guillemet simple entre en mode abréviation de commande, ce qui vous permet de commencer à taperlog10
, que vous pouvez identifier uniquement avec les deux premiers caractères uniquement. (l
seul, vous obtenez la fonction de journal naturel à laln
place.)Comme avec n'importe quelle calculatrice RPN, vous pouvez être très rapide avec Orpie, avec un peu de pratique.
Orpie est dans le référentiel Ubuntu. FreeBSD l'inclut dans les ports, comme
math/orpie
. Sous OS X, vous pouvez l'installer via Homebrew . Des packages tiers peuvent être disponibles pour d'autres systèmes d'exploitation. La construction à partir des sources peut être un peu une corvée, car elle est écrite en OCaml , et vous n'avez probablement pas installé un environnement de développement OCaml. Cependant, l'installation d'une configuration n'est pas particulièrement difficile.la source
Il y a toujours GNU Octave , les emacs des calculatrices en ligne de commande (pour quand vous voulez un environnement de développement complet et un langage de programmation intégré à votre calculatrice, et des milliers de modules complémentaires optionnels)
ou R si les statistiques sont plus votre truc.
Je l'utilise principalement
bc -l
pour charger la bibliothèque mathématique standard ... J'ai même unbc
alias pourbc -l
. Voir la réponse de Mat pour plus d'informations sur la définition d'une fonction factorielle .... bien que labc
page de manuel la définit comme:La vérification de <= 1 plutôt que == 1 empêche une boucle sans fin si vous lui fournissez un nombre négatif (devrait être une erreur) ou zéro (valide).
la source
Mon préféré est le poids léger, simple
W-Calc
. http://w-calc.sourceforge.netVous n'avez pas besoin de regarder dans le manuel ou de recréer manuellement des fonctions communes, comme vous le faites avec
bc
- les commandes sont généralement exactement ce que vous attendez, alors tapez simplement ce que vous voulez et cela fonctionne. Test selon votre question - en effetlog()
etn!
fonctionne comme prévu.(Certes, je n'ai pas entendu parler d'Orpie - très bien peut-être une meilleure option.)
la source
Totalement exagéré, mais les interprètes de langage de programmation sont des calculateurs de ligne de commande après tout:
la source
Si vous avez des ports Mac:
la source