Articles of linguagem agnóstico

Algoritmo para gerar uma palavra cruzada

Dada uma lista de palavras, como você faria para organizá-las em uma grade de palavras cruzadas? Não teria que ser como um enigma de palavras cruzadas “adequado” que é simétrico ou qualquer coisa assim: basicamente, basta mostrar uma posição inicial e uma direção para cada palavra. Haveria algum exemplo de Java disponível?

Gere todas as substrings únicas para determinada string

Dada uma string s , qual é o método mais rápido para gerar um conjunto de todas as suas substrings únicas? Exemplo: para str = “aba” , substrs={“a”, “b”, “ab”, “ba”, “aba”} . O algoritmo ingênuo seria percorrer toda a string gerando substrings de comprimento 1..n em cada iteração, produzindo um limite superior O(n^2) . […]

Gerador de números pseudo-randoms – distribuição exponencial

Eu gostaria de gerar alguns números pseudo-randoms e até agora eu tenho estado muito contente com a function Random.Next(int min, int max) da biblioteca .Net. Os PRNGs dessa variedade devem estar usando uma distribuição uniforme , mas eu gostaria muito de gerar alguns números usando uma distribuição exponencial . Estou programando em C #, embora […]

Qual algoritmo dá sugestões em um verificador ortográfico?

Qual algoritmo é normalmente usado ao implementar um corretor ortográfico acompanhado de sugestões de palavras? No começo eu pensei que poderia fazer sentido checar cada nova palavra digitada (se não encontrada no dictionary) contra a distância de Levenshtein de todas as outras palavras no dictionary e retornar os melhores resultados. No entanto, isso parece ser […]

Padrões de design: Abstract Factory vs Factory Method

Nota: as perguntas estão no final do post. Eu li os outros threads de stackoverflow em relação ao Abstract Factory vs Factory Method . Eu entendo a intenção de cada padrão. No entanto, não estou claro na definição. O Factory Method define uma interface para criar um object, mas permite que as subclasss decidam quais […]

Algoritmo para gerar anagramas

Qual seria a melhor estratégia para gerar anagramas? An anagram is a type of word play, the result of rearranging the letters of a word or phrase to produce a new word or phrase, using all the original letters exactly once; ex. Onze mais dois é anagrama de Doze mais um Um ponto decimal é […]

Como posso medir a similaridade entre duas imagens?

Gostaria de comparar uma captura de canvas de um aplicativo (pode ser uma página da Web) com uma captura de canvas feita anteriormente para determinar se o aplicativo está sendo exibido corretamente. Eu não quero uma comparação de correspondência exata, porque o aspecto pode ser um pouco diferente (no caso de um aplicativo da Web, […]

Qual distribuição você obtém desse shuffle random quebrado?

O famoso algoritmo random Fisher-Yates pode ser usado para permutar aleatoriamente uma matriz A de comprimento N: For k = 1 to N Pick a random integer j from k to N Swap A[k] and A[j] Um erro comum que me disseram repetidamente para não fazer é isto: For k = 1 to N Pick […]

Code Golf: Number to Words

A série de golfe de código parece ser bastante popular. Eu encontrei um código que converte um número em sua representação de palavras. Alguns exemplos seriam (poderes de 2 para programar diversão): 2 -> dois 1024 -> Um Mil Vinte e Quatro 1048576 -> Um Milhão Quarenta E Oito Mil Quinhentos E Setenta E Seis […]

O que é boxe e unboxing e quais são os trade offs?

Estou à procura de uma resposta clara, concisa e precisa. Idealmente como a resposta real, embora os links para boas explicações sejam bem-vindos.