Ciência da Computação

Perguntas e respostas para estudantes, pesquisadores e profissionais de ciência da computação

130
Por que existem tantas linguagens de programação?

Sou bastante fluente em C / C ++ e posso me orientar nas várias linguagens de script (awk / sed / perl). Comecei a usar muito mais o python porque combina alguns dos aspectos bacanas do C ++ com os recursos de script do awk / sed / perl. Mas por que existem tantas linguagens de programação...

130
Como é possível decidir se

Foi-nos dado o seguinte exercício. Deixei f( n ) = { 10 00 0n ocorre na representação decimal de  πoutrof(n)={10n occurs in the decimal representation of π0else\qquad \displaystyle f(n) = \begin{cases} 1 & 0^n \text{ occurs in the decimal representation of } \pi \\ 0 & \text{else}\end{cases}...

122
Por que posso olhar para um gráfico e encontrar imediatamente o ponto mais próximo de outro ponto, mas levo tempo O (n) através da programação?

Deixe-me esclarecer: Dado um gráfico de dispersão de um determinado número de pontos n, se eu quiser encontrar o ponto mais próximo de qualquer ponto do gráfico mentalmente, posso imediatamente ignorar a maioria dos pontos no gráfico, restringindo minhas escolhas a um número pequeno e constante de...

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: é...

83
Particionamento Quicksort: Hoare vs. Lomuto

Existem dois métodos de partição quicksort mencionados em Cormen: Hoare-Partition(A, p, r) x = A[p] i = p - 1 j = r + 1 while true repeat j = j - 1 until A[j] <= x repeat i = i + 1 until A[i] >= x if i < j swap( A[i], A[j] ) else return j e: Lomuto-Partition(A, p, r) x =...