Un package Node.js simple et convivial, développé par nekoclem, offrant des fonctions mathématiques de base, des utilitaires pratiques et des outils plus spécifiques pour vos projets.
Installation
Pour installer nekomaths dans votre projet, utilisez npm :
npm install nekomaths
Utilisation
Importez les fonctions de nekomaths dans votre fichier JavaScript. Vous pouvez importer l'objet complet ou déstructurer pour n'importer que les fonctions spécifiques dont vous avez besoin.
const nekomaths = require('nekomaths');
// Ou en ES Modules (si votre projet supporte) :
// import nekomaths from 'nekomaths';
// Exemple de déstructuration pour n'importer que certaines fonctions :
// const { nekadd, nekpremier } = require('nekomaths');
Fonctionnalités
nekomaths offre les fonctions et modules suivants :
1. Calculs Arithmétiques Simples
Ces fonctions effectuent les opérations mathématiques de base et retournent le résultat.
nekadd(a, b) : Additionne deux nombres.
neksub(a, b) : Soustrait le deuxième nombre du premier.
nekmult(a, b) : Multiplie deux nombres.
nekdiv(a, b) : Divise le premier nombre par le deuxième. (Gère la division par zéro).
nekodouble(number) : Renvoie le double d'un nombre.
nekomoitie(number) : Renvoie la moitié d'un nombre.
nekracine(number) : Calcule la racine carrée d'un nombre.
nekopuissance(base, exposant) : Calcule la puissance d'un nombre.
javascript
1const nekomaths =require('nekomaths');23// Addition4console.log("4 + 5 =", nekomaths.nekadd(4,5));// Renvoie 956// Soustraction7console.log("10 - 3 =", nekomaths.neksub(10,3));// Renvoie 789// Multiplication10console.log("6 * 7 =", nekomaths.nekmult(6,7));// Renvoie 421112// Division13console.log("20 / 4 =", nekomaths.nekdiv(20,4));// Renvoie 51415// Gestion de la division par zéro16try{17 nekomaths.nekdiv(10,0);18}catch(error){19console.error(error.message);// Affiche : nekdiv: Division par zéro impossible.20}2122// Doubler un nombre23console.log("Le double de 7 est :", nekomaths.nekodouble(7));// Renvoie 142425// Moitié d'un nombre26console.log("La moitié de 15 est :", nekomaths.nekomoitie(15));// Renvoie 7.52728// Racine carrée29console.log("La racine carrée de 25 est :", nekomaths.nekracine(25));// Renvoie 53031// Puissance32console.log("2 à la puissance 3 :", nekomaths.nekopuissance(2,3));// Renvoie 8
2. Fonctions de Vérification et Séquences
nekIsPairOuImpair(number) : Vérifie si un nombre est pair ou impair et retourne une phrase explicative en français.
nekofibona(n) : Retourne le n-ième nombre de la séquence de Fibonacci.
nekpremier(number) : Vérifie si un nombre entier est premier. Retourne true si le nombre est premier, false sinon.
nekFacteurs(number) : Retourne un tableau des facteurs premiers d'un nombre.
javascript
1const nekomaths =require('nekomaths');23// Détection de Nombre Pair ou Impair4console.log(nekomaths.nekIsPairOuImpair(7));// Renvoie "Le nombre 7 est impair."5console.log(nekomaths.nekIsPairOuImpair(12));// Renvoie "Le nombre 12 est pair."67// Calcul du nombre de Fibonacci8console.log("Le 10ème nombre de Fibonacci est :", nekomaths.nekofibona(10));// Renvoie 55910// Vérification de Nombre Premier11console.log("17 est premier ?", nekomaths.nekpremier(17));// Renvoie true12console.log("18 est premier ?", nekomaths.nekpremier(18));// Renvoie false1314// Facteurs premiers15console.log("Facteurs premiers de 12 :", nekomaths.nekFacteurs(12));// Renvoie [2, 2, 3]
3. Statistiques et Calculs sur Tableaux
nekmed(arr) : Calcule la médiane d'un tableau de nombres.
nekmoy(arr) : Calcule la moyenne d'un tableau de nombres.
nekorandom(min, max) : Génère un nombre entier aléatoire entre min et max (inclus).
javascript
1const nekomaths =require('nekomaths');23// Générer un nombre aléatoire entre 5 et 10 (inclus)4const randomNumber = nekomaths.nekorandom(5,10);5console.log(`Un nombre aléatoire entre 5 et 10 : ${randomNumber}`);
5. Calculs avec Pi (nekopi)
L'objet nekopi fournit la valeur de Pi et des fonctions pour les calculs géométriques courants.
nekopi.valeur : La valeur de Pi (Math.PI).
nekopi.circonference(rayon) : Calcule la circonférence d'un cercle.
nekopi.aireCercle(rayon) : Calcule l'aire d'un cercle.
nekopi.degresEnRadians(degres) : Convertit des degrés en radians.
nekopi.radiansEnDegres(radians) : Convertit des radians en degrés.
javascript
1const nekomaths =require('nekomaths');23console.log("La valeur de Pi est :", nekomaths.nekopi.valeur);// Affiche Math.PI45// Calculs de cercle6console.log("Circonférence d'un cercle de rayon 5 :", nekomaths.nekopi.circonference(5));7console.log("Aire d'un cercle de rayon 5 :", nekomaths.nekopi.aireCercle(5));89// Conversions d'angles10console.log("90 degrés en radians :", nekomaths.nekopi.degresEnRadians(90));// Renvoie 1.57... (Pi/2)11console.log("1.5708 radians en degrés :", nekomaths.nekopi.radiansEnDegres(1.5708));// Renvoie ~90
6. Calculs Trigonométriques et Angles (nekdegres)
L'objet nekdegres fournit des fonctions pour manipuler et calculer des angles en degrés.
nekdegres.enDegres(radians) : Convertit des radians en degrés.
nekdegres.enRadians(degres) : Convertit des degrés en radians.
nekdegres.sinus(degres) : Calcule le sinus d'un angle en degrés.
nekdegres.cosinus(degres) : Calcule le cosinus d'un angle en degrés.
nekdegres.tangente(degres) : Calcule la tangente d'un angle en degrés.
javascript
1const nekomaths =require('nekomaths');23// Conversions4console.log("Pi/2 radians en degrés :", nekomaths.nekdegres.enDegres(Math.PI/2));// Renvoie 905console.log("45 degrés en radians :", nekomaths.nekdegres.enRadians(45));// Renvoie 0.785... (Pi/4)67// Fonctions trigonométriques8console.log("Sinus de 90 degrés :", nekomaths.nekdegres.sinus(90));// Renvoie 19console.log("Cosinus de 0 degré :", nekomaths.nekdegres.cosinus(0));// Renvoie 110console.log("Tangente de 45 degrés :", nekomaths.nekdegres.tangente(45));// Renvoie 1
7. Conversions d'Unités
7.1 Conversions Métriques (neky)
neky.metersToKilometers(meters) : Convertit des mètres en kilomètres.
neky.kilometersToMeters(kilometers) : Convertit des kilomètres en mètres.
nekorror.definirMessage(codeErreur, message) : Définit des messages d'erreur personnalisés.
nekorror.lancerErreur(codeErreur, donnees) : Lance des erreurs avec messages personnalisés.
nekorror.executer(fonction, gestionErreur) : Exécute des fonctions avec gestion d'erreurs.
nekorror.log(niveau, message, donnees) : Logger avec différents niveaux.
javascript
1const nekomaths =require('nekomaths');23// Définir un message d'erreur personnalisé4nekomaths.nekorror.definirMessage("DIVISION_ZERO","Impossible de diviser par zéro !");56// Logger des informations7nekomaths.nekorror.log("info","Calcul en cours...");8nekomaths.nekorror.log("error","Une erreur est survenue",{valeur:42});
12. Nouvelles Fonctionnalités Créatives
12.1 Dessin ASCII (nekdraw)
nekdraw.rectangle(largeur, hauteur, caractere) : Dessine un rectangle dans la console.
nekdraw.triangle(taille, caractere) : Dessine un triangle dans la console.
nekdraw.afficher(dessin) : Affiche le dessin dans la console.
javascript
1const nekomaths =require('nekomaths');23// Dessiner un rectangle4const rect = nekomaths.nekdraw.rectangle(5,3,'#');5nekomaths.nekdraw.afficher(rect);6// Affiche:7// #####8// #####9// #####1011// Dessiner un triangle12const triangle = nekomaths.nekdraw.triangle(4,'*');13nekomaths.nekdraw.afficher(triangle);14// Affiche:15// *16// ***17// *****18// *******
12.2 Arrondi Personnalisé (nekril)
nekril(nombre, decimales) : Arrondit un nombre décimal au nombre de décimales spécifié.
nekcopare.maximum(nombres) : Trouve le maximum dans un tableau.
nekcopare.minimum(nombres) : Trouve le minimum dans un tableau.
javascript
1const nekomaths =require('nekomaths');23// Comparer 5 et 84const comparaison = nekomaths.nekcopare.comparer(5,8);5console.log("Comparaison :", comparaison);// 5 < 867// Trouver le maximum8const nombres =[3,7,2,9,1];9console.log("Maximum :", nekomaths.nekcopare.maximum(nombres));// 91011// Trouver le minimum12console.log("Minimum :", nekomaths.nekcopare.minimum(nombres));// 1
14.9 Base de Données Personnalisée (nekdone)
nekdone.creerBase(nom, structure) : Crée une base de données.
nekdone.ajouterDonnee(nomBase, donnee) : Ajoute des données.
nekdone.calculer(nomBase, propriete, operation) : Effectue des calculs.
nekdone.obtenirBase(nomBase) : Obtient les informations d'une base.
javascript
1const nekomaths =require('nekomaths');23// Créer une base de données4nekomaths.nekdone.creerBase("ventes",["produit","prix","quantite"]);56// Ajouter des données7nekomaths.nekdone.ajouterDonnee("ventes",{produit:"ordinateur",prix:800,quantite:2});8nekomaths.nekdone.ajouterDonnee("ventes",{produit:"souris",prix:25,quantite:5});910// Calculer la somme des prix11const sommePrix = nekomaths.nekdone.calculer("ventes","prix","somme");12console.log("Somme des prix :", sommePrix);1314// Obtenir toute la base15const base = nekomaths.nekdone.obtenirBase("ventes");16console.log("Base de données :", base);
14.10 Arithmétique Personnalisée (nekarin)
nekarin.enregistrerFonction(nom, fonction, description) : Enregistre une fonction.
nekarin.executer(nom, ...args) : Exécute une fonction personnalisée.
nekarin.combiner(nom1, nom2, operation, ...args) : Combine deux fonctions.
nekarin.listerFonctions() : Liste toutes les fonctions enregistrées.
javascript
1const nekomaths =require('nekomaths');23// Enregistrer une fonction personnalisée4nekomaths.nekarin.enregistrerFonction("double",(x)=> x *2,"Multiplie par 2");5nekomaths.nekarin.enregistrerFonction("carre",(x)=> x * x,"Met au carré");67// Exécuter les fonctions8console.log("Double de 5 :", nekomaths.nekarin.executer("double",5));// 109console.log("Carré de 4 :", nekomaths.nekarin.executer("carre",4));// 161011// Combiner les fonctions (double + carré pour x=3)12const resultat = nekomaths.nekarin.combiner("double","carre","add",3);13console.log("Double(3) + Carré(3) =", resultat);// 6 + 9 = 151415// Lister toutes les fonctions16console.log("Fonctions enregistrées :", nekomaths.nekarin.listerFonctions());
15. Nouvelles Fonctionnalités v1.5.0
15.1 Tracé de Graphiques (nekgrap)
nekgrap.genererPoints(func, xMin, xMax, pas) : Génère des points pour tracer une fonction.
nekgrap.afficherConsole(points, largeur, hauteur) : Affiche un graphique ASCII dans la console.
nekgrap.tracer(func, options) : Trace et affiche une fonction directement.
javascript
1const nekomaths =require('nekomaths');23// Tracer une fonction quadratique4const points = nekomaths.nekgrap.tracer(x=> x * x,{5xMin:-5,6xMax:5,7pas:0.1,8largeur:60,9hauteur:1510});1112// Tracer une fonction sinus13nekomaths.nekgrap.tracer(Math.sin,{xMin:-Math.PI,xMax:Math.PI});
15.2 Progressions et Séries (nekoser)
nekoser.arithmetique(premier, raison, n) : Calcule une progression arithmétique.
nekoser.geometrique(premier, raison, n) : Calcule une progression géométrique.
nekonew.trouverRacine(func, derivee, x0, tolerance, maxIterations) : Trouve une racine par Newton-Raphson.
javascript
1const nekomaths =require('nekomaths');23// Trouver la racine de x² - 2 = 0 (√2)4constfunc=x=> x * x -2;5constderivee=x=>2* x;6const resultat = nekomaths.nekonew.trouverRacine(func, derivee,1);7console.log("Racine trouvée :", resultat.racine);// ≈ 1.4148console.log("Convergé :", resultat.converge);
15.7 Méthode de Monte Carlo (nekcarlo)
nekcarlo.estimerPi(nombrePoints) : Estime π par simulation Monte Carlo.
nekcarlo.integrer(func, a, b, nombrePoints) : Calcule une intégrale par Monte Carlo.
javascript
1const nekomaths =require('nekomaths');23// Estimer π4const estimationPi = nekomaths.nekcarlo.estimerPi(1000000);5console.log("Estimation de π :", estimationPi.estimation);6console.log("Erreur :", estimationPi.erreur);78// Intégrer x² de 0 à 19const integrale = nekomaths.nekcarlo.integrer(x=> x * x,0,1,100000);10console.log("Intégrale de x² :", integrale.estimation);// ≈ 0.333
15.8 Interface Interactive (nekinterac)
nekinterac.creerMenu(options) : Crée un menu interactif.
nekinterac.calculateur(operation) : Affiche un calculateur interactif.
javascript
1const nekomaths =require('nekomaths');23// Créer un menu4const menu = nekomaths.nekinterac.creerMenu({5titre:"Calculatrice",6choix:[7{nom:"Addition"},8{nom:"Multiplication"},9{nom:"Graphiques"}10]11});12console.log(menu);1314// Interface de calculateur15const calc = nekomaths.nekinterac.calculateur('addition');16console.log(calc);
15.9 Conversions Avancées (nekconvert)
nekconvert.convertir(valeur, uniteSource, uniteCible, type) : Convertit entre différentes unités.
nekconvert.convertirTemperature(valeur, uniteSource, uniteCible) : Conversions de température.
javascript
1const nekomaths =require('nekomaths');23// Conversion de longueur4const metres = nekomaths.nekconvert.convertir(100,'metre','pied','longueur');5console.log("100 mètres =", metres,"pieds");67// Conversion de température8const fahrenheit = nekomaths.nekconvert.convertirTemperature(0,'celsius','fahrenheit');9console.log("0°C =", fahrenheit,"°F");// 32°F1011// Conversion de poids12const livres = nekomaths.nekconvert.convertir(10,'kilogramme','livre','poids');13console.log("10 kg =", livres,"livres");
15.10 Historique des Calculs (nekohis)
nekohis.ajouter(operation, resultat, parametres) : Ajoute un calcul à l'historique.
nekohis.reutiliser(id) : Réutilise un calcul précédent.
javascript
1const nekomaths =require('nekomaths');23// Ajouter des calculs à l'historique4nekomaths.nekohis.ajouter("Addition",15,[10,5]);5nekomaths.nekohis.ajouter("Multiplication",50,[10,5]);67// Voir l'historique8const historique = nekomaths.nekohis.obtenirHistorique();9console.log("Historique :", historique);1011// Réutiliser un résultat12const ancienResultat = nekomaths.nekohis.reutiliser(1);13console.log("Ancien résultat :", ancienResultat);
15.11 Algorithmes d'Optimisation (nekalgo)
nekalgo.descenteGradient(func, gradient, x0, tauxApprentissage, maxIterations) : Optimisation par descente de gradient.
nekalgo.rechercheBruteForce(func, a, b, pas) : Recherche par force brute.
javascript
1const nekomaths =require('nekomaths');23// Minimiser f(x) = x² - 4x + 34constfunc=x=> x * x -4* x +3;5constgradient=x=>2* x -4;6const resultat = nekomaths.nekalgo.descenteGradient(func, gradient,0,0.1);7console.log("Minimum trouvé en x =", resultat.minimum);// ≈ 28console.log("Valeur minimum =", resultat.valeurMinimum);// ≈ -1910// Recherche par force brute11const brutForce = nekomaths.nekalgo.rechercheBruteForce(func,0,5,0.01);12console.log("Minimum par force brute :", brutForce);
15.12 Algorithmes Personnalisés (nekeit)
nekeit.creer(nom, algorithme, description) : Crée un algorithme personnalisé.
nekeit.executer(nom, ...args) : Exécute un algorithme.
nekeit.lister() : Liste tous les algorithmes.
javascript
1const nekomaths =require('nekomaths');23// Créer un algorithme personnalisé4nekomaths.nekeit.creer("fibonacci",function(n){5if(n <=1)return n;6returnthis.executer("fibonacci", n-1)+this.executer("fibonacci", n-2);7},"Calcule le n-ième nombre de Fibonacci");89// Créer un algorithme de tri10nekomaths.nekeit.creer("triRapide",function(arr){11if(arr.length<=1)return arr;12const pivot = arr[Math.floor(arr.length/2)];13const left = arr.filter(x=> x < pivot);14const middle = arr.filter(x=> x === pivot);15const right = arr.filter(x=> x > pivot);16return[...this.executer("triRapide", left),...middle,...this.executer("triRapide", right)];17},"Tri rapide (quicksort)");1819// Exécuter les algorithmes20console.log("Fibonacci(10) :", nekomaths.nekeit.executer("fibonacci",10));21console.log("Tri [3,1,4,1,5] :", nekomaths.nekeit.executer("triRapide",[3,1,4,1,5]));2223// Lister les algorithmes24console.log("Algorithmes :", nekomaths.nekeit.lister());
15.13 Coûts de Distribution (neksrar)
neksrar.coutTransport(distance, coutParKm, poids) : Calcule le coût de transport.
neksrar.coutStockage(volume, duree, coutParM3Jour) : Calcule le coût de stockage.
javascript
1const nekomaths =require('nekomaths');23// Coût de transport4const transport = nekomaths.neksrar.coutTransport(150,1.2,25);5console.log("Coût de transport :", transport);6// { distance: 150, coutParKm: 1.2, poids: 25, coutTotal: 198 }78// Coût de stockage9const stockage = nekomaths.neksrar.coutStockage(10,30,2.5);10console.log("Coût de stockage :", stockage);11// { volume: 10, duree: 30, coutTotal: 750 }
15.14 Gestion Financière d'Entreprise (nekgef)
nekgef.calculerBFR(stocks, creancesClients, dettesFournisseurs) : Calcule le BFR.
nekgef.calculerFRNG(capitauxPermanents, immobilisations) : Calcule le FRNG.
nekgef.calculerTresorerieNette(frng, bfr) : Calcule la trésorerie nette.
Les contributions sont les bienvenues ! Si vous avez des idées de nouvelles fonctions, des améliorations ou des corrections de bugs, n'hésitez pas à ouvrir une issue ou à soumettre une pull request sur le dépôt GitHub.