Voilà, il y a quelques temps, j'avais posté une source avec un ensemble de fonctions mathématiques pour les calculs sur de très grands nombre:
http://www.vbfrance.com/article.aspx?ID=9115
J'avais dit que j'ajouterais des fonctions, c'est chose faite avec celles-ci.
POUR FONCTIONNER, ELLES NECESSITES LES AUTRES FONCTIONS (voir l'autre source).
Source / Exemple :
Public Function racine(nombre As String, reste As Boolean)
If Len(nombre) Mod 2 = 1 Then nombre = "0" & nombre
tmp3 = "0"
For i = 1 To Len(nombre) Step 2
tmp1 = tmp3 & Mid$(nombre, i, 2)
tmp2 = "0"
tmp5 = multi(Mid$(racine, 1), "2")
If i = 1 Then tmp4 = 0: tmp2 = Int(Sqr(tmp1)) ^ 2: a = Int(Sqr(tmp1)): tmp0 = tmp2: GoTo nott
For a = 0 To 10
tmp0 = tmp2
If a < 10 Then tmp2 = multi(tmp5 & Mid$(a, 1), Mid$(a, 1))
If a = 10 Then tmp2 = multi(addition(multi(Mid$(tmp5, 1), "10"), Mid$(a, 1)), Mid$(a, 1))
tmp4 = pgdd(Mid$(tmp2, 1), Mid$(tmp1, 1))
If tmp4 = 0 Then Exit For
If tmp4 = 1 Then Exit For
Next a
nott:
tmp3 = soustraction(Mid$(tmp1, 1), Mid$(tmp0, 1))
racine = racine & Mid(a - tmp4, 1)
Next i
If reste = True Then racine = racine & "r" & tmp3
End Function
Function addit(nombre As String)
For i = 1 To Len(nombre)
addit = addition(Mid$(addit, 1), Mid$(nombre, i, 1))
Next i
End Function
Public Function DecToBin(nombre As String)
Do While nombre <> "0"
bini = Val(Right(nombre, 1)) Mod 2
biny = bini & biny
nombre = divis2(nombre)
Loop
DecToBin = biny
End Function
Public Function divis2(ByVal nombre As String)
suiv = 0: div2 = ""
For i = 1 To Len(nombre)
div2 = div2 & Val(Mid(nombre, i, 1)) \ 2 + suiv
suiv = (Val(Mid(nombre, i, 1)) Mod 2) * 5
Next i
divis2 = zero(Mid$(div2, 1))
End Function
Conclusion :
::RACINE CARREE::
----------------------
racine(nombre, reste)
renvoie la racine entière de nombre, si reste vaut TRUE, renvoie la racine de nombre entière suivit de 'r' et du reste.
:: Decimal en Binaire :: || MàJ ||
--------------------------
DecToBin(nombre)
renvoie la valeur binaire (1 et 0) de nombre, je l'ai améliorée de facon à la rendre plus rapide (beaucoup plus rapide).
:: Division par 2 ::
---------------------
C'est grace à cette fonction que DecToBin est plus rapide, elle peut être utilisée de préférence à la fonction Division, mais n'a été créer que pour la fonction DecToBin
:: Addition des chiffres du nombre ::
-----------------------------------------
Addit(nombre)
Renvoie la somme des chiffres composants le nombre.
EXEMPLE: addit ("223") renvoie 2+2+3, soit 7.
RAPPEL: NECESSITE LES AUTRES FONCTIONS:
http://www.vbfrance.com/article.aspx?ID=9115