Articles of agnóstico de linguagem

O sono é mal?

Em primeiro lugar, há muitos casos em que Sleep() é mal utilizado , por exemplo, para “sincronizar” threads ou para pesquisar regularmente um valor em que uma function de notificação faria (no Win32 WaitForSingleObject por exemplo) Mas e os outros casos de uso? O Sleep é sempre maligno? Se não, quais são os bons casos […]

Devemos comparar números de ponto flutuante para igualdade com um erro * relativo *?

Até agora eu vi muitos posts lidando com igualdade de números de ponto flutuante. A resposta padrão para uma pergunta como “como devemos decidir se x e y são iguais?” é abs(x – y) < epsilon onde epsilon é uma constante pequena e fixa . Isso ocorre porque os “operandos” x e y são frequentemente […]

Calculando o Produto Cruzado de um Vetor 2D

Da wikipedia: o produto vetorial é uma operação binária em dois vetores em um espaço euclidiano tridimensional que resulta em outro vetor que é perpendicular ao plano contendo os dois vetores de input. Dado que a definição é definida apenas em três ( ou sete, um e zero ) dimensões, como calcular o produto cruzado […]

Como construir eficientemente uma tree a partir de uma estrutura plana?

Eu tenho um monte de objects em uma estrutura plana. Esses objects têm um ID e uma propriedade ParentID para que possam ser organizados em trees. Eles não estão em nenhuma ordem particular. Cada propriedade ParentID não corresponde necessariamente a um ID na estrutura. Portanto, pode haver várias trees emergindo desses objects. Como você processaria […]

A Sobrecarga de Método é considerada polymorphism?

A Sobrecarga de Método é considerada parte do polymorphism?

Por que usar inheritance em tudo?

Sei que a questão já foi discutida antes , mas parece sempre pressupor que a inheritance é pelo menos às vezes preferível à composição. Eu gostaria de desafiar essa suposição na esperança de ganhar algum entendimento. Minha pergunta é a seguinte: como você pode realizar qualquer coisa com a composição de objects com inheritance clássica […]

Como emparelhar meias de uma pilha de forma eficiente?

Ontem eu estava emparelhando as meias da lavanderia limpa e descobri o modo que eu estava fazendo isto não é muito eficiente. Eu estava fazendo uma pesquisa ingênua – escolhendo uma meia e “iterando” a pilha para encontrar seu par. Isso requer iteração sobre n / 2 * n / 4 = n 2/8 meias […]

Algoritmo para converter um IEEE 754 duplo em uma string?

Muitas linguagens de programação que usam doações IEEE 754 fornecem uma function de biblioteca para converter essas duplas em strings. Por exemplo, C tem sprintf , C ++ tem stringstream , Java tem Double.toString , etc. Internamente, como essas funções são implementadas? Ou seja, que algoritmo (s) eles estão usando para converter o duplo em […]

Como arredondar floats para inteiros, preservando sua sum?

Digamos que eu tenha uma matriz de números de ponto flutuante, na ordem classificada (digamos crescente), cuja sum é conhecida como um inteiro N Eu quero “arredondar” esses números para números inteiros, deixando sua sum inalterada. Em outras palavras, estou procurando um algoritmo que converta a matriz de números de ponto flutuante (chame-o de fn […]

“É” caro?

Eu não posso, pela minha vida, lembrar o que exatamente nossa professora disse naquele dia e espero que você provavelmente saiba. O módulo é “Estruturas de Dados e Algoritmos” e ele nos disse algo ao longo das linhas: A declaração if é a mais cara [alguma coisa]. [algo] registra [algo]. Sim, eu tenho uma memory […]