Générateur de mot de passe

goldenboy

XLDnaute Occasionnel
Bonjour à tous,

J'ai créé une routine pour générer des mots passe, mais j'ai l'impression que cette routine ressort régulièrement les même mots de passe.

Sur 13817 générations, je ressors 2225 mots de passe différents (uniques). (tri sur doublons)

Qu'en pensez-vous ? Est-ce normal? Puis-je avoir plus de probabilité de générer des mots de passe différents ?

Les mots de passe générés sont volontairement composés de 6 lettres minuscules et 2 chiffres.

Code:
Dim TabCarNum, TabCarMin, mdp, Lettre As String
Dim NbAleat, NbAleat2, i, NbChoix, Passage_En_Chiffre, Passage_En_Lettre As Integer

TabCarNum = "1234567890"
TabCarMin = "abcdefghijklmnopqrstuvwxyz"

mdp = ""
Passage_En_Chiffre = 0
Passage_En_Lettre = 0


Do While Len(mdp) < 8
    Randomize
    NbChoix = Int(2 * Rnd) + 1
     If NbChoix = 1 Then 'lettre
      If Passage_En_Lettre < 6 Then
       Passage_En_Lettre = Passage_En_Lettre + 1
       Randomize
       NbAleat = Int(26 * Rnd) + 1
       Lettre = Mid(TabCarMin, NbAleat, 1)
       mdp = mdp & Lettre
      Else
       Passage_En_Chiffre = Passage_En_Chiffre + 1
       Randomize
       NbAleat = Int(9 * Rnd) + 1
       mdp = mdp & NbAleat
      End If
     ElseIf NbChoix = 2 Then 'chiffre
       If Passage_En_Chiffre < 2 Then
        Passage_En_Chiffre = Passage_En_Chiffre + 1
        Randomize
        NbAleat = Int(9 * Rnd) + 1
        mdp = mdp & NbAleat
       Else
        Passage_En_Lettre = Passage_En_Lettre + 1
        Randomize
        NbAleat = Int(26 * Rnd) + 1
        Lettre = Mid(TabCarMin, NbAleat, 1)
        mdp = mdp & Lettre
       End If
     End If
Loop

debug.print mdp

Par avance, je vous remercie.
 

goldenboy

XLDnaute Occasionnel
Re : Générateur de mot de passe

Bonjour pierrejean

Ton test est bluffant. Merci
Je ne vais pas donner le résultat pour laisser tout le suspens aux autres forumeurs, mais je te confirme avoir bien vu ce que tu souhaitais me montrer. :)

Là on voit véritablement l'action de "Randomize".
 

ROGER2327

XLDnaute Barbatruc
Re : Générateur de mot de passe

Bonjour à tous.


Quelques autres tests édifiants.​


Bonne soirée.


ℝOGER2327
#7213


Vendredi 27 Pédale 141 (Saint Valens, frère onirique - fête Suprême Tierce)
1[SUP]er[/SUP] Germinal An CCXXII, 6,7288h - primevère
2014-W12-5T16:08:57Z
 

Pièces jointes

  • Randomize.xlsm
    31.8 KB · Affichages: 71
  • Randomize.xlsm
    31.8 KB · Affichages: 72
  • Randomize.xlsm
    31.8 KB · Affichages: 74

ROGER2327

XLDnaute Barbatruc
Re : Générateur de mot de passe

Re...


Re

Bravo a ROGER (je vais tenter de comprendre !!)

(...)
Bonjour pierrejean.
Pas de mystère, mais c'est probablement plus clair avec quelques commentaires[SUP](*)[/SUP] :​
Code:
Function MotDePasse$(l_Lettres%, c_Chiffres%)
Dim j%, k%, s$ ' j, k = pointeurs
Dim s$  ' s = chaîne de caractères initialisée à la valeur "" (chaîne vide)

'1. Création d'une chaîne de 'l_Lettres' caractères tirées aléatoirement :

  For j = 1 To l_Lettres

'   Adjonction d'une lettre minuscule à la chaîne de caractères ;
'   si on préfère une lettre majuscule, remplacer 97 par 65.

    s = s & Chr(97 + Int(26 * Rnd))

  Next

'2. Insertion de 'c_Chiffres' chiffres dans des positions aléatoires :

  For j = j To l_Lettres + c_Chiffres

'   Position de l'insertion :

    k = Int(j * Rnd)

'   Si k=0, placement d'un chiffre aléatoire devant la chaîne de caractères ;
'   si k=j-1, placement d'un chiffre aléatoire derrière la chaîne ;
'   sinon, insertion d'un chiffre aléatoire entre le kième et le k+unième caractère.

    s = Mid$(s, 1, k) & CStr(Int(10 * Rnd)) & Mid$(s, 1 + k, j - 1 - k)

  Next

  MotDePasse = s

End Function

Merci pour votre classeur de démonstration qui éclairera sûrement ceux qui ont des problèmes avec Randomize. Cette instruction semble souvent mystérieuse...


Bonne soirée.


ℝOGER2327
#7214


Vendredi 27 Pédale 141 (Saint Valens, frère onirique - fête Suprême Tierce)
1[SUP]er[/SUP] Germinal An CCXXII, 6,9836h - primevère
2014-W12-5T16:45:39Z


[SUP](*)[/SUP] Comme il arrive souvent que les demandeurs ne regardent pas les solutions proposées, je ne commente plus mes codes que rarement car c'est un travail long (souvent plus long que la conception du code !).
Mais je ne rechigne pas à le faire dès lors que je sais que ce n'est pas du temps perdu.
 

goldenboy

XLDnaute Occasionnel
Re : Générateur de mot de passe

Bonsoir ROGER, merci d'avoir commenté votre code.

Ceci permet effectivement de bien comprendre le fonctionnement de la fonction.

Dans votre classeur, est ce que le test 3 (qui ressort des doublons à partir du 129ème tirage) a un rapport avec une capacité mémoire de 128 bits?

Aussi, vous déclarez vos variables avec des "%" et des "$". Quelles sont les significations de ces déclarations.
Personnellement, je n'utilise que des classiques tels que Integer, Long, Byte, String, Date et depuis peu Currency...
Et quand je ne sais pas de quel type sera ma variable, je la déclare sans type. (Dim mavariable)

Merci d'avance de vos précisions et de tout l'éclairage que vous nous apportez.

Bien cordialement.
 

ROGER2327

XLDnaute Barbatruc
Re : Générateur de mot de passe

Re...


(...)

Dans votre classeur, est ce que le test 3 (qui ressort des doublons à partir du 129ème tirage) a un rapport avec une capacité mémoire de 128 bits?

(...)
Je ne crois pas. Du reste, en répétant le test, je constate que l'apparition d'un doublon ne se produit pas systématiquement au 129[SUP]ème[/SUP] tirage. J'ai constaté (par exemple) l'apparition du premier doublon au 171[SUP]ème[/SUP] ou 220[SUP]ème[/SUP] ou 145[SUP]ème[/SUP] tirage.

Un variante amusante de ce test consiste à relever (avec quelque incertitude) la valeur de la variable Timer à l'instant de l'exécution de l'instruction Randomize. On voit certaines petites choses qui sont plus que des coïncidences... Je vous laisse découvrir cela dans le classeur joint.


(...)

Aussi, vous déclarez vos variables avec des "%" et des "$". Quelles sont les significations de ces déclarations.
Personnellement, je n'utilise que des classiques tels que Integer, Long, Byte, String, Date et depuis peu Currency...
Et quand je ne sais pas de quel type sera ma variable, je la déclare sans type. (Dim mavariable)

(...)
Comme je suis une grosse feignasse, j'utilise les notations abrégées :
a# pour a As Double ;
b& pour b As Long ;
c! pour c As Single ;
d$ pour d As String ;
e% pour e As Integer.

Une remarque : un variable sans type n'existe pas. Si on ne déclare pas de type, VBA considère que le type est Variant.
Dim x
équivaut à
Dim x As Variant


Il faut vraiment que vous trouviez un moyen d'accéder à l'aide de VBA. Vous gagnerez beaucoup de temps.​


Bonne nuit.


ℝOGER2327
#7217


Samedi 28 Pédale 141 (Dédicace du Tripode - Vacuation)
2 Germinal An CCXXII, 0,7624h - platane
2014-W12-6T01:49:47Z
 

Pièces jointes

  • Randomize (2).xlsm
    43.9 KB · Affichages: 50
  • Randomize (2).xlsm
    43.9 KB · Affichages: 52
  • Randomize (2).xlsm
    43.9 KB · Affichages: 60

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Générateur de mot de passe

Bonjour à tous,

Pour le fun, un autre essai avec possibilité d'inclure des majuscules. Pour le confort de l'usager, des caractères pouvant être confondus dans certaines polices sont évités (0, 1 , i, I, l, L, o, O). Le nombre de lettres et du chiffres est variables. On pourrait y ajouter les 5 et S. L'exécution est assez rapide.

Edit: v2 avec paramétrage du nombre de chiffres dans chaque mot de passe.
 

Pièces jointes

  • goldenboy-MdP v1.xlsm
    23.1 KB · Affichages: 48
  • goldenboy-MdP v2.xlsm
    25.2 KB · Affichages: 39
Dernière édition:

goldenboy

XLDnaute Occasionnel
Re : Générateur de mot de passe

Bonjour à tous !

Merci ROGER pour ces explications.
Je crois que je suis autant une feignasse que vous, je n'apprendrais certainement pas la correspondance des variables "longues" et "abrégées" :)

Par contre je reviens sur votre dernier test (Timer).
Si je comprend bien, une série de tirage unique arrive lorsque le Timer change.
Et après analyse, je confirme qu'à partir du deuxième Timer, la série se compose de 128 tirages uniques, puis d'un nombre non régulier de tirage doublons. et ainsi de suite.

Intéressant non?

J'ai enregistré le tableau avec le tirage que j'ai obtenu pour que vous puissiez voir.

Edit : A noter également, que les doublons se font sur une serie de 128 également.
Par exemple, sur le deuxième TIMER, les 128 premiers doublons sont égaux à la premiere serie unique, puis on recommence jusqu'au 182 ème doublon
 

Pièces jointes

  • Randomize (2).xlsm
    123.1 KB · Affichages: 36
  • Randomize (2).xlsm
    123.1 KB · Affichages: 38
  • Randomize (2).xlsm
    123.1 KB · Affichages: 37
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Générateur de mot de passe

Bonsour®
il me semble ici qu'il y ait une mauvaise utilisation/interprétation de la fonction Randomize ...

cette instruction est utilisée pour modifier le "germe"(Seed) de la fonction RAND (Alea())

sans cette instruction à chaque fois que l'on ouvre Excel, la fonction RAND génère toujours la même suite de nombres aléatoires
INFO : comment Visual Basic génère les nombres pseudo-aléatoires pour la fonction RND
Notez que, par défaut, la fonction Rnd() retourne la même séquence de nombres pseudo-aléatoires chaque fois que le programme est exécuté. Dans certains cas (par exemple, des études de nature statistiques où la répétabilité est requise), cela peut être approprié. Pour les autres types d'applications, tels que des jeux, cela peut ne pas convenir. Si une séquence différente est requise, utilisez l'instruction Randomize avant le premier appel à Rnd(). Le Générateur de nombre aléatoire sera initialisé à l'aide de l'horloge système. Si une séquence différente est nécessaire mais doit être reproductible à l'avenir, utilisez la syntaxe Randomize X où X est une valeur numérique spécifique
.


par construction cette suite (10^13 nombres) est garantie sans doublons (au moins depuis EXCEL 2003)
Ce lien n'existe plus
Étant donné que RAND produit des nombres pseudo-aléatoires, si une longue séquence de ceux-ci est produite, il est possible qu'elle se répète elle-même. La combinaison de nombres telle qu'elle est effectuée dans la procédure Wichman-Hill garantit que plus 10^13 nombres vont être générés avant le début de la répétition. Plusieurs des tests Diehard ont produit des résultats non satisfaisants avec d'anciennes versions de RAND car le cycle précédant le début de la répétition des nombres était trop court.

lorsque l'on utilise Randomize une fois : on change le "germe"(seed) pour cette nouvelle suite.
RND et RANDOMIZE Options de génération de nombres aléatoires

il devient alors indubitable que si l'on utilise plusieurs fois l'instruction Randomize au sein d'une même boucle, on utilisera alors autant de liste différentes... avec comme conséquence la possibilité de doublons entre listes

en reprenant le classeur (#22) et en n'exécutant Randomize qu'une fois par test et cela pour 25000 lignes
aucun moment il n'est apparu de doublons (MEFC)
Randomize
For i = 1 To n
v(i, 0) = Mdp(l, c)
Next

With [A1].Resize(n, 2)
.Value = v
End With

timer n'a rien à voir là-dedans...

nb :
cela nonobstant l'éventualité que la fonction personnalisée Mdp(l,c) ne génère elle-même ces doublons. :rolleyes:
 

Pièces jointes

  • randomize-3-.xlsm
    458.6 KB · Affichages: 35
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Générateur de mot de passe

Re...

Bonsour®
il me semble ici qu'il y ait une mauvaise utilisation/interprétation de la fonction Randomize ...
(...)
Etc.

On sait ça au moins depuis le message #13...
Code:
Sub TestMdp()
Dim i&, v$()
Const l% = 6, c% = 2, n& = 20000
  ReDim v(1 To n, 0)
  Randomize
  For i = 1 To n: v$(i, 0) = Mdp(l, c): Next
  [A1].Resize(n).Value = v
End Sub
Mal placé, le Randomize ?
P.s. : À propos de "Randomize". Très utile. Il suffit de le placer là où il doit être : voir l'aide de VBA en utilisant la magique touche (je parle de la touche F1).

Notre petit jeu est justement de voir ce qui se passe lorsqu'on utilise mal l'instruction Randomize (qui n'est pas une fonction).

Continuons de jouer, ça ne mange pas de pain...​


Bonne soirée.


ℝOGER2327
#7218


Samedi 28 Pédale 141 (Dédicace du Tripode - Vacuation)
2 Germinal An CCXXII, 6,9201h - platane
2014-W12-6T16:36:29Z
 

ROGER2327

XLDnaute Barbatruc
Re : Générateur de mot de passe

Re...

(...)

Par contre je reviens sur votre dernier test (Timer).
Si je comprend bien, une série de tirage unique arrive lorsque le Timer change.
Et après analyse, je confirme qu'à partir du deuxième Timer, la série se compose de 128 tirages uniques, puis d'un nombre non régulier de tirage doublons. et ainsi de suite.

Intéressant non?

(...)
Amusant, en tout cas.
Je n'ai aucune certitude sur cette question. J'expérimente et j'observe.​


(...)

J'ai enregistré le tableau avec le tirage que j'ai obtenu pour que vous puissiez voir.

Edit : A noter également, que les doublons se font sur une serie de 128 également.
Par exemple, sur le deuxième TIMER, les 128 premiers doublons sont égaux à la premiere serie unique, puis on recommence jusqu'au 182 ème doublon
Pas plus de certitude sur la généralité de cette observation. En modifiant la ligne
Code:
Const l% = 6, c% = 2
en
Code:
Const l% = 1, c% = 7
j'obtiens d'autres résultats. Voir le classeur joint, ou j'ai ajouté quelques formules pour analyser les résultats.

Je me suis amusé à introduire une ligne genre
Code:
    j = 500: Do: j = j - 1: Loop While j
dans la boucle du test. J'obtiens encore d'autres résultats, très-variables selon la valeur initiale donnée à j.
Avec j=5000, il n'y a en général plus de doublon.

Bref, c'est rigolo...​


Bon amusement !



ℝOGER2327
#7219


Samedi 28 Pédale 141 (Dédicace du Tripode - Vacuation)
2 Germinal An CCXXII, 7,0307h - platane
2014-W12-6T16:52:25Z
 

Pièces jointes

  • Randomize (3).xlsm
    145.1 KB · Affichages: 41

Modeste geedee

XLDnaute Barbatruc
Re : Générateur de mot de passe

Bonsour®
TIMER : Renvoie une valeur de type Single représentant le nombre de secondes écoulées depuis minuit(*).
Avec Microsoft Windows, la fonction Timer renvoie une valeur avec une précision de l'ordre de la fraction de seconde.

For i = 1 To n
t0 = Timer
Randomize
t1 = Timer

:rolleyes:
T1 -T0 représente donc le temps d'exécution de l' instruction Randomize !!!
chez moi : 0,0078125s
:cool:

je ne saisi donc pas l'intérêt de cette ligne :
v(i, 2) = (t0 + t1) / 2
puisque (*) cette valeur calculée va en augmentant...régulièrement ?


je dirai donc de même :
Bref, c'est rigolo...
Bon amusement !
:rolleyes:
 

ROGER2327

XLDnaute Barbatruc
Re : Générateur de mot de passe

Re...


Bonsour®

TIMER : Renvoie une valeur de type Single représentant le nombre de secondes écoulées depuis minuit(*).
Avec Microsoft Windows, la fonction Timer renvoie une valeur avec une précision de l'ordre de la fraction de seconde.

For i = 1 To n
t0 = Timer
Randomize
t1 = Timer

:rolleyes:
T1 -T0 représente donc le temps d'exécution de l' instruction Randomize !!!
chez moi : 0,0078125s
:cool:

(...)

J'aime beaucoup la provocation : je suis servi.

Mais ne poussez-vous pas le bouchon un peu loin ?
Sincèrement, je le pense. J'ai lu beaucoup de vos contributions, j'ai quelquefois profité de vos suggestions et je ne néglige généralement pas vos remarques.

Par conséquent, vous ne me ferez pas croire que vous pensez qu'on peut estimer à près de 8 ms le temps nécessaire à l'exécution de l'instruction Randomize. Vous savez, j'en jurerais, que, s'il en était ainsi, la moindre procédure de test qu'on trouve dans cette discussion prendrait des heures à s'exécuter. Je suis tout aussi sûr que, sauf erreur ou provocation délibérée, vous ne proposeriez pas le code ci-dessus pour évaluer la durée d'exécution d'une seule instruction.
Personnellement, j'estime que la durée d'exécution de l'instruction Randomize est de l'ordre de 160 ns[SUP](**)[/SUP]. Je dis bien "ns" et non "ms". Aurais-je la chance d'avoir une machine 50 000 fois plus rapide que la vôtre ?

D'autre part, je ne comprends pas ce que vient faire ici votre remarque puisque personne dans cette discussion ne s'est aventuré à utiliser un tel code.​



(...)

je ne saisi donc pas l'intérêt de cette ligne :
v(i, 2) = (t0 + t1) / 2
puisque (*) cette valeur calculée va en augmentant...régulièrement ?

(...)
Compte tenu de votre remarque précédente, je comprends votre scepticisme à l'égard de cette pauvre ligne. Elle est jolie, je trouve. Explication :


  • Je relève la valeur t0 (respectivement t1) de la fonction Timer[SUP](***)[/SUP] avant (resp. après) l'exécution de l'instruction Randomize.
  • Je me garde bien de calculer leur différence ! (On est là pour s'amuser, mais s'amuser sérieusement...)
  • Ces deux valeurs sont le plus souvent égales (avec ma machine ultra-rapide). Elles diffèrent en quelques rares occasions. (Voir le classeur Randomize (3) au message #26.)
  • Pour détecter ces cas, je ne gaspille pas d'espace en notant systématiquement t0 et t1. Je relève la moyenne de ces deux valeurs, ce qui me suffit pour savoir quand la valeur de la fonction Timer a été modifiée pendant l'exécution de l'instruction Randomize.

On peut évidemment se demander pourquoi je procède ainsi et pas autrement.
  1. - Parce que ça me plait.
  2. - Parce que dans une procédure expérimentale, on cherche des choses... À tort ou à raison...
    Ce n'est qu'en essayant qu'on sait si c'est une bonne ou une mauvaise idée de chercher ces choses.
  3. - Parce que !

Autre question possible : À quoi ça sert ?
Je n'en sais rien a priori. C'est d'ailleurs une question que je ne me pose pas : si l'on s'était toujours posé cette question pour ne faire que des choses dont on sait à quoi elles servent, on n'aurait jamais atteint l'Âge de pierre...
Lors-qu'après Cauchy et Gauss, Riemann développe sa théorie des surfaces, généralisée abstraitement à n dimensions, il ne se dit que ça ne sert à rien. Il le fait. Moyennant quoi, cinquante ans plus tard, Einstein et Minkowski trouvèrent tout-prêt l'outil mathématique de leur théorie, et tout le monde comprit à quoi à ça servait... (Et ce fut parfois douloureux.)

Je ne suis ni Cauchy, ni Gauss, ni Riemann, ni Einstein, ni Minkowski, mais je m'amuse bien avec des bricoles.



Approuvé ! roule-yeux.​


Bonne nuit.


ℝOGER2327
#7220


Dimanche 1[SUP]er[/SUP] Clinamen 141 (Saint Ablou, page et Saint Haldern, duc - fête Suprême Tierce)
3 Germinal An CCXXII, 0,6460h - asperge
2014-W12-7T01:33:01Z


[SUP](**)[/SUP] Pour obtenir cette valeur approximative :
VB:
Sub toto()
Dim i&, t0!, t1!
Const n& = 10000000
  t0 = Timer
  For i = 1 To n: Randomize: Next
  t1 = Timer
  MsgBox Format(1000000000# * (t1 - t0 - 86400 * (t1 < t0)) / n, "# ##0.0") & " ns"
End Sub
mais certainement pas :
VB:
Sub tata()
Dim t0!, t1!
  t0 = Timer
  Randomize
  t1 = Timer
  MsgBox 1000000000# * (t1 - t0) & " ns"
End Sub


[SUP](***)[/SUP] La fonction Timer n'est pas croissante car, comme vous le signalez plus haut [SUP](*)[/SUP], c'est une fonction périodique (de période 86 400 s).
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Générateur de mot de passe

Bonsour®
Re...
J'aime beaucoup la provocation : je suis servi.
Mais ne poussez-vous pas le bouchon un peu loin ?
Sincèrement, je le pense.
humblement j'acquiesce :D
c'est ma face mouche du côche ...:rolleyes:

On peut évidemment se demander pourquoi je procède ainsi et pas autrement.
  1. - Parce que ça me plait.
  2. - Parce que dans une procédure expérimentale, on cherche des choses... À tort ou à raison...
    Ce n'est qu'en essayant qu'on sait si c'est une bonne ou une mauvaise idée de chercher ces choses.
  3. - Parce que !
Autre question possible : À quoi ça sert ?
mais je m'amuse bien avec des bricoles.
Approuvé ! roule-yeux.​
:D je partage...

Personnellement, j'estime que la durée d'exécution de l'instruction Randomize est de l'ordre de 160 ns(**). Je dis bien "ns" et non "ms".
j'admet ne pas avoir confronté la dite assertion à un test spécifique. :(
:cool: en effet selon ma machine : 0,00000021 sec


[SUP](***)[/SUP] La fonction Timer n'est pas croissante car, comme vous le signalez plus haut [SUP](*)[/SUP], c'est une fonction périodique (de période 86 400 s).
donc croissante sur la période !
n'est-ce pas ce qui est dit ici :
TIMER : Renvoie une valeur de type Single représentant le nombre de secondes écoulées depuis minuit(*).

:) :) :)
@+
 

ROGER2327

XLDnaute Barbatruc
Re : Générateur de mot de passe

Re...


[SUP](***)[/SUP] La fonction Timer n'est pas croissante car, comme vous le signalez plus haut [SUP](*)[/SUP], c'est une fonction périodique (de période T = 86 400 s).

donc croissante sur la période !
n'est-ce pas ce qui est dit ici :

TIMER : Renvoie une valeur de type Single représentant le nombre de secondes écoulées depuis minuit[SUP](*)[/SUP].

:) :) :)
@+
Décidément, vous ne lâchez rien, vous !
Ca tombe bien : j'aime beaucoup qu'on ne lâche rien.

Préambule :

Jusqu'à nouvel ordre, une fonction numérique x |—> f(x) est :


  • croissante si pour tout x[SUB]0[/SUB] < x[SUB]1[/SUB] on a f(x[SUB]0[/SUB]) <= f(x[SUB]1[/SUB])
  • périodique s'il existe T > 0 tel que pour tout x on a f(x+T) = f(x)

(Je me demande si une fonction dont on saurait qu'elle est croissante et périodique ne serait pas constante, par hasard. Mais on ne va pas se lancer là-dedans, n'est-ce pas ?)


Peut-être avez-vous une autre définition de la croissance ou (et ?) de la périodicité d'une fonction numérique ?
Si la réponse est oui, ne lisez pas la suite et publiez rapidement vos travaux : ça fera du bruit dans le monde des Mathématiques.
Une petite médaille Fields, Docteur ?

Sinon, poursuivons.

Qu'en est-il de la fonction Timer ?


  • Elle est effectivement périodique de période 86400s.


  • Est-elle croissante ?

Dans l'échelle de temps d'Excel (mode "calendrier 1900") :

Prenons x[SUB]0[/SUB]=3 604 838 400 s (= 41 722,6... jours = "24/3/2014 16:00")
Timer(x[SUB]0[/SUB]) = 57 600 s
Prenons x[SUB]1[/SUB]=3 604 896 000 s (= 41 723,3... jours = "25/3/2014 08:00")
Timer(x[SUB]1[/SUB]) = 28 800 s

x[SUB]0[/SUB] et x[SUB]1[/SUB] appartiennent à une même période car x[SUB]1[/SUB] - x[SUB]0[/SUB] < T

x[SUB]0[/SUB] < x[SUB]1[/SUB]
Timer(x[SUB]0[/SUB]) > Timer(x[SUB]1[/SUB])

  • Dur pour une fonction croissante !

Nous ne dirons donc pas que la fonction Timer est croissante sur une période, mais qu'elle est croissante dans tout intervalle [86400*n ; 86400*(n+1)[ avec n entier.

TIMER.JPG

Roule-yeux et tout le toutim.


Bonne soirée.


ℝOGER2327
#7224


Lundi 2 Clinamen 141 (Saints Hiboux, maîtres-chanteurs - fête Suprême Quarte)
4 Germinal An CCXXII, 7,6710h - tulipe
2014-W13-1T18:24:38Z
 

Pièces jointes

  • TIMER.JPG
    TIMER.JPG
    28.8 KB · Affichages: 32
  • TIMER.JPG
    TIMER.JPG
    28.8 KB · Affichages: 36

Discussions similaires

Statistiques des forums

Discussions
312 395
Messages
2 088 037
Membres
103 705
dernier inscrit
mytek