Ir ao conteúdo
  • Cadastre-se

guileoline

Membro Pleno
  • Posts

    128
  • Cadastrado em

  • Última visita

Reputação

2
  1. Pessoal, bom dia. Não estou conseguindo implementar busca bidirecional na seguinte classe. Este algoritmo esta funcionando para matrizes até 3x7. Mas quando tento uma 8x8 que é O(n^64) fica inviavel... Alguem consegue me ajudar? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using PasseioCavalo.DataStructure; namespace PasseioCavalo { public class PCAgente : Graph { private int[] estadoInicial; private int lin; private int col; public int iteracoes = 0; public PCAgente(int[] EstadoInicial, int l, int c) { estadoInicial = EstadoInicial; lin = l; col = c; } public int[] ObterSolucao() { if(ObterPosicaoAtual(estadoInicial) < 0) { for (int i = 0; i < estadoInicial.Length; i++) { int[] estado = estadoInicial.Clone() as int[]; estado = 2; Node inicial = new Node(CriarNome(estado), estado); int[] solucao = BuscaSolucao(inicial); if (solucao != null) return solucao; } return null; } else{ return BuscaSolucao(new Node(CriarNome(estadoInicial), estadoInicial)); } } private int[] BuscaSolucao(Node inicial) { Queue<Node> queue = new Queue<Node>(); queue.Enqueue(inicial); this.AddNode(inicial); while (queue.Count > 0) { iteracoes++; Node node = queue.Dequeue(); if (AchouObjetivo(node)) { return GeraSolucao(node); } List<Node> estadosSucessores = FuncaoSucessor(node); foreach (Node n in estadosSucessores) { if (Find(n.Name) == null) { this.AddNode(n); this.AddEdge(n.Name, node.Name, 0); queue.Enqueue(n); } } } return null; } private List<Node> FuncaoSucessor(Node node) { List<Node> result = new List<Node>(); int[] estadoAtual = (int[])node.Info; int valor = ObterPosicaoAtual(estadoAtual); int l = valor / col; int c = valor % col; int lmax = lin - 1; int cmax = col - 1; if ((l + 2) <= lmax && (c + 1) <= cmax) { int pos = ((l + 2) * col) + (c + 1); int[] estado = estadoAtual.Clone() as int[]; if (estado[pos] != 1) { estado[valor] = 1; estado[pos] = 2; result.Add(new Node(CriarNome(estado), estado)); } } if ((l + 2) <= lmax && (c - 1) >= 0) { int pos = ((l + 2) * col) + (c - 1); int[] estado = estadoAtual.Clone() as int[]; if (estado[pos] != 1) { estado[valor] = 1; estado[pos] = 2; result.Add(new Node(CriarNome(estado), estado)); } } if ((l - 2) >= 0 && (c + 1) <= cmax) { int pos = ((l - 2) * col) + (c + 1); int[] estado = estadoAtual.Clone() as int[]; if (estado[pos] != 1) { estado[valor] = 1; estado[pos] = 2; result.Add(new Node(CriarNome(estado), estado)); } } if ((l - 2) >= 0 && (c - 1) >= 0) { int pos = ((l - 2) * col) + (c - 1); int[] estado = estadoAtual.Clone() as int[]; if (estado[pos] != 1) { estado[valor] = 1; estado[pos] = 2; result.Add(new Node(CriarNome(estado), estado)); } } if ((c + 2) <= cmax && (l + 1) <= lmax) { int pos = ((l + 1) * col) + (c + 2); int[] estado = estadoAtual.Clone() as int[]; if (estado[pos] != 1) { estado[valor] = 1; estado[pos] = 2; result.Add(new Node(CriarNome(estado), estado)); } } if ((c + 2) <= cmax && (l - 1) >= 0) { int pos = ((l - 1) * col) + (c + 2); int[] estado = estadoAtual.Clone() as int[]; if (estado[pos] != 1) { estado[valor] = 1; estado[pos] = 2; result.Add(new Node(CriarNome(estado), estado)); } } if ((c - 2) >= 0 && (l + 1) <= lmax) { int pos = ((l + 1) * col) + (c - 2); int[] estado = estadoAtual.Clone() as int[]; if (estado[pos] != 1) { estado[valor] = 1; estado[pos] = 2; result.Add(new Node(CriarNome(estado), estado)); } } if ((c - 2) >= 0 && (l - 1) >= 0) { int pos = ((l - 1) * col) + (c - 2); int[] estado = estadoAtual.Clone() as int[]; if (estado[pos] != 1) { estado[valor] = 1; estado[pos] = 2; result.Add(new Node(CriarNome(estado), estado)); } } return result; } private int ObterPosicaoAtual(int[] estado) { for (int i = 0; i < estado.Length; i++) if(estado==2) return i; return -1; } private int[] GeraSolucao(Node node) { List<Node> lista = this.DepthFirstSearch(node.Name); List<int> result = new List<int>(); for (int i = 0; i < lista.Count; i++) { Node n = lista; int[] estado = (int[])n.Info; for (int j = 0; j < estado.Length; j++) if (estado[j] == 2) { result.Add(j); break; } } result.Reverse(); return result.ToArray(); } private bool AchouObjetivo(Node node) { int[] estado = (int[])node.Info; int qtdeZero = 0; foreach (int i in estado) if (i == 0) qtdeZero++; return qtdeZero == 0 ? true : false; } private string CriarNome(int[] valor) { string nome = ""; foreach (int i in valor) nome += i.ToString(); return nome; } } }
  2. Boa tarde pessoa, Estou precisando desenvolver um script que permita inserir numero de patrimonio na bios e obter informações sobre hardware (processador, memoria) Estava fazendo com as classes WMI do windows, porém como faço no caso de linux?
  3. Todos os jogos. Não importa se for CS 1.6, com 999 FPS fica a imagem tremida. Ja tentei atualizar todo tipo de driver, bios, limpeza... Só nao tenho como testar com outro proc e placa-mãe
  4. Galera, Tenho: - Proc i3 2100 - placa mãe IPHM61R1 - 6gb memoria ddr3 (2+4) - Hd 6950 2gb OC - HD sata 2 500gb - Fonte sasonic s12 520W Jogo em full HD. O desempenho do conjunto não está satisfatório. Mesmo quando o fps fica por volta de 50, as imagens ficam ruins como se tivessem 20fps. Ja testei em outros monitores, e o problema persiste. Pode ser o proc gargalando? ou a placa-mãe ruim? pois conheco pessoas que tem muito mais fps com a HD6950 e i3
  5. Galera, Tenho: - Proc i3 2100 - placa mãe IPHM61R1 - 6gb memoria ddr3 (2+4) - Hd 6950 2gb OC - HD sata 2 500gb - Fonte sasonic s12 520W O desempenho do conjunto não está satisfatório. Mesmo quando o fps fica por volta de 50, as imagens ficam ruins como se tivessem 20fps. Ja testei em outros monitores, e o problema persiste. Só não tenho como testar com outro processador ou placa mãe. Por isso preciso de recomendações para trocar essas peças
  6. O modelo da minha placa mãe eu coloquei errado, o correto é Processador: Intel Core i3 2100 Placa Mãe: PC Ware IPMH61R2 Memória: Kingston 8GB ddr3 HD: Samsung 1TB Placa de Video: HD 6950 2gb se eu mudar apenas de processador vou ter problemas com a placa-mãe?
  7. quero dar um up no meu pc para jogar bf4 Processador: Intel Core i3 2100 Placa Mãe: MSI H61M-P21 Memória: Kingston 8GB ddr3 HD: Samsung 1TB Placa de Video: HD 6950 2gb Preciso de recomendações de processadores e placa-mãe, o uso é especialmente jogos.
  8. Seasonic 430W ou XFX 450w ou sugestoes no valor proximo a R$186,00 para essa config Processador: Intel Core i3 2120 Placa Mãe: MSI H61M-P21 Memória: Kingston 4GB HD: Samsung 1TB Placa de Video: ECS GTX560ti DVD-r: __________________________________________________ _ aproveitando, alguem indique uma fonte mais barata possivel que aguente um phenom x3 845 2gb ram HD 320 e 9800gt Gabinete: CM Elite 335
  9. Pessoal, fiz um rascunho do q esse roteador precisa fazer. Meus parentes moram perto. Entre as casas nao existem outras barreiras, apenas as q estão no desenho. Qm souber me falar se esse router iria me ajudar eu agradeço. EDIT: Usaria somente nos churrascos mesmo rsrs. Nao precisa ter sinal 1000%, quero apenas q conecte a internet
  10. Comprei o meu, agora é esperar 12 dias =/
  11. Pessoal vocês acham q esse router consegue fazer o q eu qero? Tenho 2 notebooks, um é b/g o outro b/g/n e um desktop, Quero usar os 2 notebooks pelo wireless e o desk pelo cabo. Minha net é speedy 2mb. Um notebook fica na sala e o outro fica em um escritorio, entre eles tem 3 paredes, o sinal ficaria bom? qual a distancia maxima(indoor e outdoor)? Caso esse nao resolva minha situacao, me indiquem outro
  12. Mas o funcionario ja vai ter q passar o numero do meu CPF, cartao, sei lá mais u q....? E a NF fica no meu nome?
  13. Pra comprar com o desconto de funcionario é so pedir pra um conhecido funcionario me indicar, depois eles vão ligar pra mim pra passar os dados? ou eu tenho q pedir para essa pessoa ja comprar com o meu cartao, endereco, etc?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...