J'ai remarqué qu'il m'est beaucoup plus facile d'écrire des preuves mathématiques sans commettre d'erreur, que d'écrire un programme d'ordinateur sans bugs. Il semble que ce soit quelque chose de plus répandu que mon expérience. La plupart des gens font constamment des bogues logiciels dans leur programmation et ils ont le …
Pour essayer de vérifier si un algorithme est correct pour un problème donné, le point de départ habituel est d'essayer de l'exécuter à la main sur un certain nombre de cas de test simples. Essayez-le sur quelques exemples de problèmes, y compris quelques "cas simples". ". C'est une excellente heuristique: …
J'ai un algorithme gourmand que je soupçonne peut-être correct, mais je ne suis pas sûr. Comment vérifier si c'est correct? Quelles sont les techniques à utiliser pour prouver un algorithme gourmand correct? Existe-t-il des modèles ou des techniques communs? J'espère que cela deviendra une question de référence qui pourra être …
J'ai deux façons de produire une liste d'articles dans un ordre aléatoire et je voudrais déterminer s'ils sont également équitables (sans biais). La première méthode que j'utilise est de construire la liste complète des éléments puis de faire un shuffle dessus (disons un shuffle de Fisher-Yates). La deuxième méthode est …
Comme des trous noirs en informatique. Nous pouvons seulement savoir qu'ils existent, mais lorsque nous en aurons un, nous ne saurons jamais que c'est l'un d'eux.
Nous avons la logique Hoare. Pourquoi est-il toujours possible qu'un algorithme soit correct mais il n'y a aucune preuve qu'il est correct? Supposons que l'algorithme soit exprimé en C. Ensuite, nous pouvons affirmer étape par étape qu'il fait ce qu'il est censé faire. Ma question est donc: Donnez-moi un exemple …
Supposons que l'on nous donne deux nombres et et que nous voulons trouver pour l \ le i, \, j \ le r .lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r L'algorithme naïf vérifie simplement toutes les paires possibles; par exemple en rubis, nous aurions: def max_xor(l, r) max = 0 (l..r).each do |i| …
Cette preuve est une preuve par induction, et va comme suit: P (n) est l'affirmation selon laquelle "Tri rapide trie correctement chaque tableau d'entrée de longueur n". Cas de base: chaque tableau d'entrée de longueur 1 est déjà trié (P (1) tient) Étape inductive: fixer n => 2. Fixer un …
Sur Wikipedia , une implémentation du schéma de programmation dynamique ascendant pour la distance d'édition est donnée. Il ne suit pas complètement la définition; les cellules internes sont calculées ainsi: if s[i] = t[j] then d[i, j] := d[i-1, j-1] // no operation required else d[i, j] := minimum ( …
Initialement sur math.SE mais sans réponse là-bas. Considérez l'algorithme suivant. u := 0 v := n+1; while ( (u + 1) is not equal to v) do x := (u + v) / 2; if ( x * x <= n) u := x; else v := x; end_if end_while …
Concernant le bug Heartbleed, Bruce Schneier écrivait dans son Crypto-Gram du 15 avril: «Catastrophique» est le bon mot. Sur une échelle de 1 à 10, il s'agit d'un 11. » J'ai lu il y a plusieurs années qu'un noyau d'un certain système d'exploitation a été rigoureusement vérifié avec un système …
Étant donné un programme composé de variables et d'instructions qui modifient ces variables, et une primitive de synchronisation (un moniteur, un mutex, un java synchronisé ou un verrou C #), est-il possible de prouver qu'un tel programme est thread-safe? Existe-t-il même un modèle formel pour décrire des choses comme la …
J'ai récemment discuté avec un ami d'un site Web qui proposait des défis d'expression régulière, correspondant principalement à un groupe de mots avec une propriété spéciale. Il cherchait une expression régulière qui correspond à des chaînes comme ||||||||où le nombre de |est premier. Je lui ai immédiatement dit que ça …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.