Eu implementei uma classificação topológica com base no artigo da Wikipedia que estou usando para resolução de dependências, mas ele retorna uma lista linear. Que tipo de algoritmo posso usar para encontrar os caminhos
Eu implementei uma classificação topológica com base no artigo da Wikipedia que estou usando para resolução de dependências, mas ele retorna uma lista linear. Que tipo de algoritmo posso usar para encontrar os caminhos
Acredito que isso seja verdade, mas também não consegui uma prova formal. Mas é verdade que qualquer árvore de abrangência mínima é alcançável aplicando o algoritmo de Kruskal? Da mesma forma, isso é verdade para o algoritmo de Prim? EDIT: Para ser mais preciso, quero saber se é fornecido um MST...
Por favor, considere o seguinte loop aninhado triplo: for (int i = 1; i <= n; ++i) for (int j = i; j <= n; ++j) for (int k = j; k <= n; ++k) // statement A instrução aqui é executada exatamente vezes. Alguém poderia explicar como essa fórmula foi obtida?
Usando o seguinte algoritmo recursivo de Fibonacci: def fib(n): if n==0: return 0 elif n==1 return 1 return (fib(n-1)+fib(n-2)) Se eu inserir o número 5 para encontrar fib (5), sei que isso produzirá 5, mas como examino a complexidade desse algoritmo? Como calculo as etapas...
Parece que eu encontrei uma maneira genérica de converter qualquer procedimento recursivo em recursão de cauda: Defina um subprocedimento auxiliar com um parâmetro "resultado" extra. Aplique o que seria aplicado ao valor de retorno do procedimento a esse parâmetro. Ligue para este procedimento...
Bruinier e Ono descobriram uma fórmula algébrica para a função de partição , que foi amplamente divulgada como um avanço. Não consigo entender o documento, mas isso tem consequências algorítmicas para o cálculo rápido da função de
Portanto, a classificação por mesclagem é um algoritmo de divisão e conquista. Enquanto eu observava o diagrama acima, estava pensando se era possível ignorar basicamente todas as etapas de divisão. Se você iterou sobre a matriz original enquanto pulava duas vezes, poderia obter os elementos no...
Eu estou procurando o algoritmo O (V + E) para encontrar a redução transitiva dado um DAG. Isso remove o maior número possível de arestas, para que, se você puder alcançar v de u, para v e u arbitrários, ainda possa alcançá-lo após a remoção das arestas. Se este for um problema padrão, indique-me...
Dadas duas strings, como você pode verificar se elas são permutadas uma da outra usando o espaço O (1)? Modificar as strings não é permitido de forma alguma. Nota: O (1) espaço em relação ao comprimento da string E ao tamanho do
fundo \newcommand\ms[1]{\mathsf #1}\def\msD{\ms D}\def\msS{\ms S}\def\mfS{\mathfrak S}\newcommand\mfm[1]{#1}\def\po{\color{#f63}{\mfm{1}}}\def\pc{\color{#6c0}{\mfm{c}}}\def\pt{\color{#08d}{\mfm{2}}}\def\pth{\color{#6c0}{\mfm{3}}}\def\pf{4}\def\pv{\color{#999}5}\def\gr{\color{#ccc}}\let\ss\gr...
Ao fazer cálculo mental, pode-se fazer: Dado um número inteiro k, some todos os dígitos (na base 10) e, se o resultado for múltiplo de 3, k será múltiplo de 3. Você conhece algum algoritmo funcionando de maneira semelhante, mas operando com dígitos de números binários (bits)? No começo, eu...
Existem caixotes, o i th bin conter um i bolas. As bolas tem n cores, há um i bolas de cor i . Deixe m = Σ n i = 1 um i .nnnEuEuiumaEuumaEua_innnumaEuumaEua_iEuEuim = ∑ni = 1umaEum=∑Eu=1numaEum=\sum_{i=1}^n a_i Uma troca é pegar uma bola de uma caixa e trocar com uma bola de outra caixa. Queremos...
A página da Wikipedia sobre algoritmos de multiplicação menciona uma página interessante de Donald Knuth . Basicamente, envolve combinar a multiplicação por transformada de fourier com uma tabela pré-computada de multiplicações de tamanho logaritmicamente. É executado em tempo linear. O artigo age...
Suponha que eu tenho um gráfico com M ( L ) do (desconhecido) conjunto de matchings perfeitos de G . Suponha que este conjunto não esteja vazio; então, como é difícil amostrar uniformemente aleatoriamente a partir de M ( G ) ? E se eu estiver bem com uma distribuição que seja quase uniforme, mas...
Acabei de encontrar esta frase na página 6 de "Computers and Intratability" de Garey and Johnson. Qualquer algoritmo cuja função de complexidade de tempo não possa ser tão limitada é chamado de algoritmo de tempo exponencial (embora se deva observar que essa definição inclui certas funções de...
Eu recebi o seguinte problema em uma entrevista (que eu já não consegui resolver, sem tentar me enganar): O jogo começa com um número inteiro positivo . (Por exemplo, A 0 = 1234. ) Esse número é convertido em representação binária e N é o número de bits definido como 1 . (Por exemplo, A 0 = b 100...
A distância de edição Levenshtein-Distance entre listas é um problema bem estudado. Mas não consigo encontrar muitas melhorias possíveis, se soubermos que nenhum elemento ocorre mais de uma vez em cada lista . Vamos supor também que os elementos são comparáveis / classificáveis (mas as...
Ouvi muito essa pergunta da entrevista e esperava obter algumas opiniões sobre quais seriam as boas respostas: você tem um arquivo grande com mais de 10 GB e deseja descobrir qual elemento ocorre mais, qual é uma boa maneira para fazer isso? Iterar e acompanhar um mapa provavelmente não é uma boa...
Considere uma sequência de nnn lançamentos de uma moeda imparcial. Deixe HEuHEuH_i denotar o valor absoluto do excesso do número de cabeças sobre caudas vistas nos primeiros EuEui flips. Defina H= maxEuHEuH=maxEuHEuH=\text{max}_i H_i . Mostre que E[ HEu] = Θ ( i√)E[HEu]=Θ(Eu)E[H_i]=\Theta (...
Estou tentando resolver um problema de SAT de 5k de cláusulas de 25k. Como está em funcionamento há uma hora (precosat) e gostaria de resolver os maiores depois, estou procurando um SAT-Solver com vários núcleos. Como parece haver muitos SAT-Solvers, estou bastante perdido. Alguém poderia me...