Perguntas com a marcação «correctness-proof»

Perguntas que pedem ou sobre provas de correção de algoritmos.

105
Como enganar a heurística “experimente alguns casos de teste”: algoritmos que parecem corretos, mas na verdade estão incorretos

Para tentar testar se um algoritmo para algum problema está correto, o ponto de partida usual é tentar executar o algoritmo manualmente em vários casos de teste simples - tente em alguns exemplos de instâncias de problemas, incluindo alguns casos de canto "simples" " Essa é uma ótima heurística: é...

14
Encontrando o XOR máximo de dois números em um intervalo: podemos fazer melhor que quadrático?

Suponha que nós estamos dando dois números e e que queremos encontrar para l \ le i, \, j \ le r .lllrrr l ≤ i ,max(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r O algoritmo ingênuo simplesmente verifica todos os pares possíveis; por exemplo, em ruby, teríamos: def max_xor(l, r) max...

9
Expressividade de expressões regulares modernas

Recentemente, conversei com um amigo sobre um site que propunha desafios regex, combinando principalmente um grupo de palavras com uma propriedade especial. Ele estava procurando por um regex que corresponda a cadeias de caracteres como ||||||||onde o número de |é primo. Eu imediatamente disse a...

7
Invariante para loop aninhado no programa de multiplicação de matrizes

Estou fazendo uma tese de pós-graduação sobre a comprovação da correção do programa para multiplicar 2 matrizes usando a lógica Hoare. Para fazer isso, preciso gerar o loop invariável para aninhado para este programa: for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end...