Nekomaths / README.md
Clemylia's picture
Rename README-6.md to README.md
a4f26fe verified
---
license: mit
---
**Nekomaths**
![🍭💖nekomaths💖🍭](http://www.image-heberg.fr/files/17506757603536301054.webp)
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
const nekomaths = require('nekomaths');
// Addition
console.log("4 + 5 =", nekomaths.nekadd(4, 5)); // Renvoie 9
// Soustraction
console.log("10 - 3 =", nekomaths.neksub(10, 3)); // Renvoie 7
// Multiplication
console.log("6 * 7 =", nekomaths.nekmult(6, 7)); // Renvoie 42
// Division
console.log("20 / 4 =", nekomaths.nekdiv(20, 4)); // Renvoie 5
// Gestion de la division par zéro
try {
nekomaths.nekdiv(10, 0);
} catch (error) {
console.error(error.message); // Affiche : nekdiv: Division par zéro impossible.
}
// Doubler un nombre
console.log("Le double de 7 est :", nekomaths.nekodouble(7)); // Renvoie 14
// Moitié d'un nombre
console.log("La moitié de 15 est :", nekomaths.nekomoitie(15)); // Renvoie 7.5
// Racine carrée
console.log("La racine carrée de 25 est :", nekomaths.nekracine(25)); // Renvoie 5
// Puissance
console.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
const nekomaths = require('nekomaths');
// Détection de Nombre Pair ou Impair
console.log(nekomaths.nekIsPairOuImpair(7)); // Renvoie "Le nombre 7 est impair."
console.log(nekomaths.nekIsPairOuImpair(12)); // Renvoie "Le nombre 12 est pair."
// Calcul du nombre de Fibonacci
console.log("Le 10ème nombre de Fibonacci est :", nekomaths.nekofibona(10)); // Renvoie 55
// Vérification de Nombre Premier
console.log("17 est premier ?", nekomaths.nekpremier(17)); // Renvoie true
console.log("18 est premier ?", nekomaths.nekpremier(18)); // Renvoie false
// Facteurs premiers
console.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.
```javascript
const nekomaths = require('nekomaths');
const nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// Médiane
console.log("Médiane :", nekomaths.nekmed(nombres)); // Renvoie 5.5
// Moyenne
console.log("Moyenne :", nekomaths.nekmoy(nombres)); // Renvoie 5.5
```
## 4. Génération de Nombre Aléatoire
* `nekorandom(min, max)` : Génère un nombre entier aléatoire entre min et max (inclus).
```javascript
const nekomaths = require('nekomaths');
// Générer un nombre aléatoire entre 5 et 10 (inclus)
const randomNumber = nekomaths.nekorandom(5, 10);
console.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
const nekomaths = require('nekomaths');
console.log("La valeur de Pi est :", nekomaths.nekopi.valeur); // Affiche Math.PI
// Calculs de cercle
console.log("Circonférence d'un cercle de rayon 5 :", nekomaths.nekopi.circonference(5));
console.log("Aire d'un cercle de rayon 5 :", nekomaths.nekopi.aireCercle(5));
// Conversions d'angles
console.log("90 degrés en radians :", nekomaths.nekopi.degresEnRadians(90)); // Renvoie 1.57... (Pi/2)
console.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
const nekomaths = require('nekomaths');
// Conversions
console.log("Pi/2 radians en degrés :", nekomaths.nekdegres.enDegres(Math.PI / 2)); // Renvoie 90
console.log("45 degrés en radians :", nekomaths.nekdegres.enRadians(45)); // Renvoie 0.785... (Pi/4)
// Fonctions trigonométriques
console.log("Sinus de 90 degrés :", nekomaths.nekdegres.sinus(90)); // Renvoie 1
console.log("Cosinus de 0 degré :", nekomaths.nekdegres.cosinus(0)); // Renvoie 1
console.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.
```javascript
const nekomaths = require('nekomaths');
console.log("1000 mètres =", nekomaths.neky.metersToKilometers(1000), "kilomètres"); // Renvoie 1
console.log("2.5 kilomètres =", nekomaths.neky.kilometersToMeters(2.5), "mètres"); // Renvoie 2500
```
### 7.2 Conversions de Poids (neklet)
* `neklet.kilosToTonnes(kilos)` : Convertit des kilos en tonnes.
* `neklet.tonnesToKilos(tonnes)` : Convertit des tonnes en kilos.
* `neklet.gramsToKilograms(grams)` : Convertit des grammes en kilogrammes.
* `neklet.kilogramsToGrams(kilograms)` : Convertit des kilogrammes en grammes.
```javascript
const nekomaths = require('nekomaths');
console.log("1500 kilos =", nekomaths.neklet.kilosToTonnes(1500), "tonnes"); // Renvoie 1.5
console.log("2.5 tonnes =", nekomaths.neklet.tonnesToKilos(2.5), "kilos"); // Renvoie 2500
console.log("1500 grammes =", nekomaths.neklet.gramsToKilograms(1500), "kg"); // Renvoie 1.5
```
## 8. Calculs de Pourcentage
* `nekpourcentage(total, pourcentage)` : Calcule le pourcentage d'un nombre.
```javascript
const nekomaths = require('nekomaths');
console.log("20% de 150 =", nekomaths.nekpourcentage(150, 20)); // Renvoie 30
```
## 9. Théorèmes Géométriques
### 9.1 Théorème de Pythagore (nektalor)
* `nektalor.hypotenuse(a, b)` : Calcule l'hypoténuse d'un triangle rectangle.
* `nektalor.coteAdjacent(hypotenuse, cote)` : Calcule un côté adjacent.
```javascript
const nekomaths = require('nekomaths');
console.log("Hypoténuse d'un triangle 3-4 :", nekomaths.nektalor.hypotenuse(3, 4)); // Renvoie 5
console.log("Côté adjacent (hyp=5, côté=3) :", nekomaths.nektalor.coteAdjacent(5, 3)); // Renvoie 4
```
### 9.2 Théorème de Thalès (nektales)
* `nektales.proportionnalite(a, b, c)` : Calcule la quatrième proportionnelle selon Thalès.
* `nektales.verifierProportionnalite(a, b, c, d)` : Vérifie si quatre segments sont proportionnels.
```javascript
const nekomaths = require('nekomaths');
console.log("Quatrième proportionnelle (2,3,4) :", nekomaths.nektales.proportionnalite(2, 3, 4)); // Renvoie 6
console.log("Proportionnalité (2,3,4,6) :", nekomaths.nektales.verifierProportionnalite(2, 3, 4, 6)); // Renvoie true
```
## 10. Calculs de Probabilité (nekproba)
* `nekproba.probabiliteSimple(evenementsFavorables, evenementsPossibles)` : Calcule une probabilité simple.
* `nekproba.probabiliteInverse(probabilite)` : Calcule la probabilité inverse.
* `nekproba.probabiliteUnion(probA, probB, probIntersection)` : Calcule P(A ∪ B).
```javascript
const nekomaths = require('nekomaths');
console.log("Probabilité (2 sur 6) :", nekomaths.nekproba.probabiliteSimple(2, 6)); // Renvoie 0.333...
console.log("Probabilité inverse (0.25) :", nekomaths.nekproba.probabiliteInverse(0.25)); // Renvoie 0.75
console.log("Probabilité union :", nekomaths.nekproba.probabiliteUnion(0.3, 0.4, 0.1)); // Renvoie 0.6
```
## 11. Fonctionnalités Créatives et Personnalisation
### 11.1 Messages Personnalisés (nekbel)
* `nekbel.message(contenu, type, options)` : Affiche des messages personnalisés.
* `nekbel.executer(nom, fonction, ...args)` : Exécute des fonctions avec gestion d'erreurs.
```javascript
const nekomaths = require('nekomaths');
// Message personnalisé
nekomaths.nekbel.message("Calcul terminé avec succès!", "success", {prefix: "🎉"});
// Exécution sécurisée
const resultat = nekomaths.nekbel.executer("addition", nekomaths.nekadd, 5, 3);
console.log(resultat);
```
### 11.2 Outils Créatifs (nekcreative)
* `nekcreative.generateId(prefix)` : Génère des identifiants uniques.
* `nekcreative.chronometer(func, nom)` : Mesure le temps d'exécution des fonctions.
* `nekcreative.memoize(func)` : Met en cache les résultats des fonctions.
* `nekcreative.couleurAleatoire(format)` : Génère des couleurs aléatoires.
```javascript
const nekomaths = require('nekomaths');
// Génération d'ID
console.log(nekomaths.nekcreative.generateId("projet")); // "projet_abc123_xyz789"
// Couleur aléatoire
console.log(nekomaths.nekcreative.couleurAleatoire("hex")); // "#a1b2c3"
console.log(nekomaths.nekcreative.couleurAleatoire("rgb")); // "rgb(123, 45, 67)"
```
### 11.3 Gestion d'Erreurs Personnalisée (nekorror)
* `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
const nekomaths = require('nekomaths');
// Définir un message d'erreur personnalisé
nekomaths.nekorror.definirMessage("DIVISION_ZERO", "Impossible de diviser par zéro !");
// Logger des informations
nekomaths.nekorror.log("info", "Calcul en cours...");
nekomaths.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
const nekomaths = require('nekomaths');
// Dessiner un rectangle
const rect = nekomaths.nekdraw.rectangle(5, 3, '#');
nekomaths.nekdraw.afficher(rect);
// Affiche:
// #####
// #####
// #####
// Dessiner un triangle
const triangle = nekomaths.nekdraw.triangle(4, '*');
nekomaths.nekdraw.afficher(triangle);
// Affiche:
// *
// ***
// *****
// *******
```
### 12.2 Arrondi Personnalisé (nekril)
* `nekril(nombre, decimales)` : Arrondit un nombre décimal au nombre de décimales spécifié.
```javascript
const nekomaths = require('nekomaths');
console.log(nekomaths.nekril(3.14159, 2)); // Renvoie 3.14
console.log(nekomaths.nekril(2.7777777, 4)); // Renvoie 2.7778
console.log(nekomaths.nekril(10.555, 1)); // Renvoie 10.6
```
### 12.3 Calculs avec Mots Anglais (nekocust)
* `nekocust.motEnNombre(mot)` : Convertit un mot anglais en nombre.
* `nekocust.additionMots(mot1, mot2)` : Additionne deux nombres écrits en lettres.
* `nekocust.soustractionMots(mot1, mot2)` : Soustrait deux nombres écrits en lettres.
```javascript
const nekomaths = require('nekomaths');
console.log(nekomaths.nekocust.motEnNombre("four")); // Renvoie 4
console.log(nekomaths.nekocust.additionMots("three", "seven")); // Renvoie 10
console.log(nekomaths.nekocust.soustractionMots("ten", "four")); // Renvoie 6
```
### 12.4 Addition d'Objets Créatifs (nekrect)
* `nekrect.additionObjets(objet1, objet2, propriete)` : Additionne deux objets selon une propriété.
* `nekrect.decrireOperation(objet1, objet2, propriete)` : Décrit l'opération effectuée.
```javascript
const nekomaths = require('nekomaths');
// Addition d'aires
console.log(nekomaths.nekrect.additionObjets("rectangle", "carre", "aire")); // Renvoie 16
console.log(nekomaths.nekrect.additionObjets("poule", "poire", "valeur")); // Renvoie 20
// Description de l'opération
console.log(nekomaths.nekrect.decrireOperation("rectangle", "carre", "aire"));
// Renvoie: "Addition de rectangle + carre (aire) = 16"
```
## 13. Théorèmes Géométriques Avancés
### 13.1 Théorème de Pappus (nekpap)
* `nekpap.volumePappus(aire, distanceCentroide)` : Calcule le volume selon Pappus-Guldinus.
* `nekpap.airePappus(longueur, distanceCentroide)` : Calcule l'aire selon Pappus-Guldinus.
* `nekpap.centroideVolume(volume, aire)` : Calcule la distance du centroïde.
```javascript
const nekomaths = require('nekomaths');
console.log("Volume Pappus :", nekomaths.nekpap.volumePappus(10, 5)); // Volume généré
console.log("Aire Pappus :", nekomaths.nekpap.airePappus(8, 3)); // Aire générée
console.log("Centroïde :", nekomaths.nekpap.centroideVolume(100, 4)); // Distance centroïde
```
### 13.2 Théorème de Desargues (nekdesar)
* `nekdesar.pointsAlignes(point1, point2, point3)` : Vérifie si trois points sont alignés.
* `nekdesar.intersectionDroites(p1, p2, p3, p4)` : Calcule l'intersection de deux droites.
* `nekdesar.verifierDesargues(triangle1, triangle2)` : Vérifie la configuration de Desargues.
```javascript
const nekomaths = require('nekomaths');
// Vérifier l'alignement
const p1 = {x: 0, y: 0};
const p2 = {x: 1, y: 1};
const p3 = {x: 2, y: 2};
console.log(nekomaths.nekdesar.pointsAlignes(p1, p2, p3)); // Renvoie true
// Intersection de droites
const intersection = nekomaths.nekdesar.intersectionDroites(
{x: 0, y: 0}, {x: 2, y: 2},
{x: 0, y: 2}, {x: 2, y: 0}
);
console.log(intersection); // {x: 1, y: 1}
// Configuration de Desargues
const triangle1 = [{x: 0, y: 0}, {x: 2, y: 0}, {x: 1, y: 2}];
const triangle2 = [{x: 1, y: 1}, {x: 3, y: 1}, {x: 2, y: 3}];
console.log(nekomaths.nekdesar.verifierDesargues(triangle1, triangle2));
```
## 14. Nouvelles Fonctionnalités v1.4.0
### 14.1 Résolution d'Équations avec Variable (nekident)
* `nekident.resoudreLineaire(a, b, resultat)` : Résout ax + b = resultat pour trouver x.
* `nekident.verifierSolution(x, operation, operande, resultatAttendu)` : Vérifie une solution.
* `nekident.trouverX(operation, operande, resultatAttendu)` : Trouve x pour une opération donnée.
```javascript
const nekomaths = require('nekomaths');
// Résoudre 2x + 5 = 15 (x = 5)
console.log("Solution de 2x + 5 = 15 :", nekomaths.nekident.resoudreLineaire(2, 5, 15)); // Renvoie 5
// Vérifier si x = 4 est solution de x + 3 = 7
console.log("Vérification :", nekomaths.nekident.verifierSolution(4, 'add', 3, 7)); // Renvoie true
// Trouver x pour x * 3 = 12
console.log("x pour x * 3 = 12 :", nekomaths.nekident.trouverX('mult', 3, 12)); // Renvoie 4
```
### 14.2 Équations Complexes (nekaqua)
* `nekaqua.quadratique(a, b, c)` : Résout ax² + bx + c = 0.
* `nekaqua.systeme2x2(a1, b1, c1, a2, b2, c2)` : Résout un système 2x2.
* `nekaqua.evaluerPolynome(coefficients, x)` : Évalue un polynôme.
```javascript
const nekomaths = require('nekomaths');
// Résoudre x² - 5x + 6 = 0
const equation = nekomaths.nekaqua.quadratique(1, -5, 6);
console.log("Solutions quadratique :", equation); // x1 = 3, x2 = 2
// Système d'équations 2x + 3y = 7, x - y = 1
const systeme = nekomaths.nekaqua.systeme2x2(2, 3, 7, 1, -1, 1);
console.log("Solution système :", systeme); // x = 2, y = 1
// Évaluer P(x) = 2x² + 3x + 1 pour x = 2
console.log("P(2) =", nekomaths.nekaqua.evaluerPolynome([2, 3, 1], 2)); // Renvoie 15
```
### 14.3 Calculs de Fractions (nekfrac)
* `nekfrac.simplifier(numerateur, denominateur)` : Simplifie une fraction.
* `nekfrac.additionner(num1, den1, num2, den2)` : Additionne deux fractions.
* `nekfrac.multiplier(num1, den1, num2, den2)` : Multiplie deux fractions.
* `nekfrac.pgcd(a, b)` : Calcule le PGCD.
```javascript
const nekomaths = require('nekomaths');
// Simplifier 12/18
console.log("12/18 simplifié :", nekomaths.nekfrac.simplifier(12, 18)); // 2/3
// Additionner 1/3 + 1/4
const addition = nekomaths.nekfrac.additionner(1, 3, 1, 4);
console.log("1/3 + 1/4 =", addition); // 7/12
// Multiplier 2/3 * 3/4
const multiplication = nekomaths.nekfrac.multiplier(2, 3, 3, 4);
console.log("2/3 * 3/4 =", multiplication); // 1/2
```
### 14.4 Calculs avec Puissances (nektin)
* `nektin.resoudreCarree(a, b)` : Résout ax² = b.
* `nektin.resoudreCube(a, b)` : Résout ax³ = b.
* `nektin.fractionPuissance(num, den, exposant)` : Calcule (num/den)^exposant.
```javascript
const nekomaths = require('nekomaths');
// Résoudre 2x² = 8 (x = ±2)
console.log("Solutions de 2x² = 8 :", nekomaths.nektin.resoudreCarree(2, 8));
// Résoudre x³ = 27 (x = 3)
console.log("Solution de x³ = 27 :", nekomaths.nektin.resoudreCube(1, 27));
// Calculer (3/4)²
console.log("(3/4)² =", nekomaths.nektin.fractionPuissance(3, 4, 2));
```
### 14.5 Nombre Alpha (nekalpha)
* `nekalpha.valeur` : Constante alpha de Feigenbaum.
* `nekalpha.serie(n)` : Calcule une série basée sur alpha.
* `nekalpha.transformation(x)` : Transformation alpha.
```javascript
const nekomaths = require('nekomaths');
console.log("Constante alpha :", nekomaths.nekalpha.valeur);
console.log("Série alpha (10 termes) :", nekomaths.nekalpha.serie(10));
console.log("Transformation alpha(0.5) :", nekomaths.nekalpha.transformation(0.5));
```
### 14.6 Nombre Beta (nekbeta)
* `nekbeta.fonction(a, b)` : Fonction beta d'Euler.
* `nekbeta.gamma(x)` : Approximation de la fonction gamma.
* `nekbeta.distribution(x, alpha, beta)` : Distribution beta.
```javascript
const nekomaths = require('nekomaths');
console.log("Beta(2, 3) :", nekomaths.nekbeta.fonction(2, 3));
console.log("Gamma(4) :", nekomaths.nekbeta.gamma(4));
console.log("Distribution beta :", nekomaths.nekbeta.distribution(0.5, 2, 3));
```
### 14.7 Nombre Omega (nekomega)
* `nekomega.spirale(t)` : Calcule la spirale d'or.
* `nekomega.fibonacciOmega(n)` : Fibonacci modifié avec omega.
* `nekomega.convergence(iterations)` : Calcul de convergence.
```javascript
const nekomaths = require('nekomaths');
console.log("Spirale omega :", nekomaths.nekomega.spirale(1));
console.log("Fibonacci omega(10) :", nekomaths.nekomega.fibonacciOmega(10));
console.log("Convergence omega :", nekomega.convergence(5));
```
### 14.8 Comparaison de Nombres (nekcopare)
* `nekcopare.comparer(a, b)` : Compare deux nombres.
* `nekcopare.maximum(nombres)` : Trouve le maximum dans un tableau.
* `nekcopare.minimum(nombres)` : Trouve le minimum dans un tableau.
```javascript
const nekomaths = require('nekomaths');
// Comparer 5 et 8
const comparaison = nekomaths.nekcopare.comparer(5, 8);
console.log("Comparaison :", comparaison); // 5 < 8
// Trouver le maximum
const nombres = [3, 7, 2, 9, 1];
console.log("Maximum :", nekomaths.nekcopare.maximum(nombres)); // 9
// Trouver le minimum
console.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
const nekomaths = require('nekomaths');
// Créer une base de données
nekomaths.nekdone.creerBase("ventes", ["produit", "prix", "quantite"]);
// Ajouter des données
nekomaths.nekdone.ajouterDonnee("ventes", {produit: "ordinateur", prix: 800, quantite: 2});
nekomaths.nekdone.ajouterDonnee("ventes", {produit: "souris", prix: 25, quantite: 5});
// Calculer la somme des prix
const sommePrix = nekomaths.nekdone.calculer("ventes", "prix", "somme");
console.log("Somme des prix :", sommePrix);
// Obtenir toute la base
const base = nekomaths.nekdone.obtenirBase("ventes");
console.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
const nekomaths = require('nekomaths');
// Enregistrer une fonction personnalisée
nekomaths.nekarin.enregistrerFonction("double", (x) => x * 2, "Multiplie par 2");
nekomaths.nekarin.enregistrerFonction("carre", (x) => x * x, "Met au carré");
// Exécuter les fonctions
console.log("Double de 5 :", nekomaths.nekarin.executer("double", 5)); // 10
console.log("Carré de 4 :", nekomaths.nekarin.executer("carre", 4)); // 16
// Combiner les fonctions (double + carré pour x=3)
const resultat = nekomaths.nekarin.combiner("double", "carre", "add", 3);
console.log("Double(3) + Carré(3) =", resultat); // 6 + 9 = 15
// Lister toutes les fonctions
console.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
const nekomaths = require('nekomaths');
// Tracer une fonction quadratique
const points = nekomaths.nekgrap.tracer(x => x * x, {
xMin: -5,
xMax: 5,
pas: 0.1,
largeur: 60,
hauteur: 15
});
// Tracer une fonction sinus
nekomaths.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.
```javascript
const nekomaths = require('nekomaths');
// Progression arithmétique : 2, 5, 8, 11, 14
const arith = nekomaths.nekoser.arithmetique(2, 3, 5);
console.log("Termes :", arith.termes); // [2, 5, 8, 11, 14]
console.log("Somme :", arith.somme); // 40
// Progression géométrique : 1, 2, 4, 8, 16
const geom = nekomaths.nekoser.geometrique(1, 2, 5);
console.log("Termes :", geom.termes); // [1, 2, 4, 8, 16]
console.log("Somme :", geom.somme); // 31
```
### 15.3 Séries Infinies (neka)
* `neka.serieGeometriqueInfinie(premier, raison)` : Calcule la somme d'une série géométrique infinie.
* `neka.approximerSerie(termFunction, maxTermes, precision)` : Approxime une série par calcul de termes.
```javascript
const nekomaths = require('nekomaths');
// Série géométrique infinie 1 + 1/2 + 1/4 + 1/8 + ... = 2
const sommeInfinie = nekomaths.neka.serieGeometriqueInfinie(1, 0.5);
console.log("Somme infinie :", sommeInfinie); // 2
// Approximer la série harmonique
const harmonique = nekomaths.neka.approximerSerie(n => 1/n, 1000);
console.log("Approximation :", harmonique);
```
### 15.4 Matrices et Inversions (nekoma)
* `nekoma.creer(donnees)` : Crée une matrice à partir d'un tableau 2D.
* `nekoma.inverser2x2(matrice)` : Calcule l'inverse d'une matrice 2x2.
* `nekoma.multiplier(matrice1, matrice2)` : Multiplie deux matrices.
```javascript
const nekomaths = require('nekomaths');
// Créer et inverser une matrice 2x2
const matrice = nekomaths.nekoma.creer([[2, 1], [1, 1]]);
const inverse = nekomaths.nekoma.inverser2x2(matrice);
console.log("Matrice inverse :", inverse.donnees);
// Multiplication de matrices
const produit = nekomaths.nekoma.multiplier(matrice, inverse);
console.log("Produit (devrait être identité) :", produit.donnees);
```
### 15.5 Déterminants (nekyu)
* `nekyu.determinant2x2(matrice)` : Calcule le déterminant d'une matrice 2x2.
* `nekyu.determinant3x3(matrice)` : Calcule le déterminant d'une matrice 3x3.
* `nekyu.identite(taille)` : Crée une matrice identité.
```javascript
const nekomaths = require('nekomaths');
// Déterminant 2x2
const matrice2x2 = nekomaths.nekoma.creer([[3, 2], [1, 4]]);
const det2x2 = nekomaths.nekyu.determinant2x2(matrice2x2);
console.log("Déterminant 2x2 :", det2x2); // 10
// Créer une matrice identité 3x3
const identite = nekomaths.nekyu.identite(3);
console.log("Matrice identité :", identite.donnees);
```
### 15.6 Méthode de Newton-Raphson (nekonew)
* `nekonew.trouverRacine(func, derivee, x0, tolerance, maxIterations)` : Trouve une racine par Newton-Raphson.
```javascript
const nekomaths = require('nekomaths');
// Trouver la racine de x² - 2 = 0 (√2)
const func = x => x * x - 2;
const derivee = x => 2 * x;
const resultat = nekomaths.nekonew.trouverRacine(func, derivee, 1);
console.log("Racine trouvée :", resultat.racine); // ≈ 1.414
console.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
const nekomaths = require('nekomaths');
// Estimer π
const estimationPi = nekomaths.nekcarlo.estimerPi(1000000);
console.log("Estimation de π :", estimationPi.estimation);
console.log("Erreur :", estimationPi.erreur);
// Intégrer x² de 0 à 1
const integrale = nekomaths.nekcarlo.integrer(x => x * x, 0, 1, 100000);
console.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
const nekomaths = require('nekomaths');
// Créer un menu
const menu = nekomaths.nekinterac.creerMenu({
titre: "Calculatrice",
choix: [
{ nom: "Addition" },
{ nom: "Multiplication" },
{ nom: "Graphiques" }
]
});
console.log(menu);
// Interface de calculateur
const calc = nekomaths.nekinterac.calculateur('addition');
console.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
const nekomaths = require('nekomaths');
// Conversion de longueur
const metres = nekomaths.nekconvert.convertir(100, 'metre', 'pied', 'longueur');
console.log("100 mètres =", metres, "pieds");
// Conversion de température
const fahrenheit = nekomaths.nekconvert.convertirTemperature(0, 'celsius', 'fahrenheit');
console.log("0°C =", fahrenheit, "°F"); // 32°F
// Conversion de poids
const livres = nekomaths.nekconvert.convertir(10, 'kilogramme', 'livre', 'poids');
console.log("10 kg =", livres, "livres");
```
### 15.10 Historique des Calculs (nekohis)
* `nekohis.ajouter(operation, resultat, parametres)` : Ajoute un calcul à l'historique.
* `nekohis.obtenirHistorique()` : Récupère l'historique complet.
* `nekohis.reutiliser(id)` : Réutilise un calcul précédent.
```javascript
const nekomaths = require('nekomaths');
// Ajouter des calculs à l'historique
nekomaths.nekohis.ajouter("Addition", 15, [10, 5]);
nekomaths.nekohis.ajouter("Multiplication", 50, [10, 5]);
// Voir l'historique
const historique = nekomaths.nekohis.obtenirHistorique();
console.log("Historique :", historique);
// Réutiliser un résultat
const ancienResultat = nekomaths.nekohis.reutiliser(1);
console.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
const nekomaths = require('nekomaths');
// Minimiser f(x) = x² - 4x + 3
const func = x => x * x - 4 * x + 3;
const gradient = x => 2 * x - 4;
const resultat = nekomaths.nekalgo.descenteGradient(func, gradient, 0, 0.1);
console.log("Minimum trouvé en x =", resultat.minimum); // ≈ 2
console.log("Valeur minimum =", resultat.valeurMinimum); // ≈ -1
// Recherche par force brute
const brutForce = nekomaths.nekalgo.rechercheBruteForce(func, 0, 5, 0.01);
console.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
const nekomaths = require('nekomaths');
// Créer un algorithme personnalisé
nekomaths.nekeit.creer("fibonacci", function(n) {
if (n <= 1) return n;
return this.executer("fibonacci", n-1) + this.executer("fibonacci", n-2);
}, "Calcule le n-ième nombre de Fibonacci");
// Créer un algorithme de tri
nekomaths.nekeit.creer("triRapide", function(arr) {
if (arr.length <= 1) return arr;
const pivot = arr[Math.floor(arr.length / 2)];
const left = arr.filter(x => x < pivot);
const middle = arr.filter(x => x === pivot);
const right = arr.filter(x => x > pivot);
return [...this.executer("triRapide", left), ...middle, ...this.executer("triRapide", right)];
}, "Tri rapide (quicksort)");
// Exécuter les algorithmes
console.log("Fibonacci(10) :", nekomaths.nekeit.executer("fibonacci", 10));
console.log("Tri [3,1,4,1,5] :", nekomaths.nekeit.executer("triRapide", [3,1,4,1,5]));
// Lister les algorithmes
console.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
const nekomaths = require('nekomaths');
// Coût de transport
const transport = nekomaths.neksrar.coutTransport(150, 1.2, 25);
console.log("Coût de transport :", transport);
// { distance: 150, coutParKm: 1.2, poids: 25, coutTotal: 198 }
// Coût de stockage
const stockage = nekomaths.neksrar.coutStockage(10, 30, 2.5);
console.log("Coût de stockage :", stockage);
// { 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.
```javascript
const nekomaths = require('nekomaths');
// Calcul du BFR
const bfr = nekomaths.nekgef.calculerBFR(50000, 30000, 20000);
console.log("BFR :", bfr);
// { bfr: 60000, interpretation: "Besoin de financement" }
// Calcul du FRNG
const frng = nekomaths.nekgef.calculerFRNG(200000, 150000);
console.log("FRNG :", frng);
// { frng: 50000, interpretation: "Équilibre financier" }
// Trésorerie nette
const tresorerie = nekomaths.nekgef.calculerTresorerieNette(50000, 60000);
console.log("Trésorerie :", tresorerie);
// { tresorerieNette: -10000, interpretation: "Trésorerie négative" }
```
### 15.15 Calculs d'Immobilisations (nekpo)
* `nekpo.amortissementLineaire(valeurInitiale, dureeVie, valeurResiduelle)` : Calcule l'amortissement linéaire.
* `nekpo.plusMoinsValue(prixCession, valeurComptable)` : Calcule la plus ou moins-value de cession.
```javascript
const nekomaths = require('nekomaths');
// Amortissement linéaire d'un équipement
const amortissement = nekomaths.nekpo.amortissementLineaire(100000, 5, 10000);
console.log("Plan d'amortissement :", amortissement);
// Annuité : 18000 par an pendant 5 ans
// Plus ou moins-value de cession
const cession = nekomaths.nekpo.plusMoinsValue(45000, 40000);
console.log("Plus-value :", cession);
// { plusMoinsValue: 5000, type: "Plus-value" }
```
### 15.16 TVA et Inflation (nekia)
* `nekia.calculerTVA(montantHT, tauxTVA)` : Calcule la TVA.
* `nekia.calculerHT(montantTTC, tauxTVA)` : Calcule le montant HT à partir du TTC.
* `nekia.calculerInflation(valeurInitiale, valeurFinale, annees)` : Calcule le taux d'inflation.
```javascript
const nekomaths = require('nekomaths');
// Calcul de TVA
const tva = nekomaths.nekia.calculerTVA(1000, 20);
console.log("Calcul TVA :", tva);
// { montantHT: 1000, montantTVA: 200, montantTTC: 1200 }
// Calcul HT à partir du TTC
const ht = nekomaths.nekia.calculerHT(1200, 20);
console.log("Calcul HT :", ht);
// { montantTTC: 1200, montantHT: 1000, montantTVA: 200 }
// Calcul d'inflation
const inflation = nekomaths.nekia.calculerInflation(100, 105, 1);
console.log("Inflation :", inflation);
// { tauxPourcentage: 5, interpretation: "5% d'inflation par an" }
```
**Contribution**
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.
**Lien de notre documentation officielle**
https://nekocute-math-tools.lovable.app
**Pour télécharger la dernière version complète** : https://www.npmjs.com/package/nekomaths?activeTab=readme