vlw…
mas agora o espírito de porco fez pela mente…
mas o desafio continua…
não é só achar a frase, mas sim bolar um algorítimo…
Quando ao dicionário em extenção .txt tem vários, é só baixar!
Não, eu quis dizer um dicionario de palavras para procurar as palavras e classificar pelas mais provaveis.
Há só… heheheh
De qualquer maneira eu tava só zuando um tikim… vlw
Hmm… interessante… segunda feira eu desenvolvo um algoritmo que adivinhe de acordo com um dicionario.
Só tem um pequeno problema, se X é qualquer vogal então a letra X é o que?
Para meu algoritmo vou considerar x minusculo a consoante X e maisculo sendo qualquer vogal.
[quote=Mark_Ameba]Hmm… interessante… segunda feira eu desenvolvo um algoritmo que adivinhe de acordo com um dicionario.
Só tem um pequeno problema, se X é qualquer vogal então a letra X é o que?
Para meu algoritmo vou considerar x minusculo a consoante X e maisculo sendo qualquer vogal.[/quote]
Opa ameba… nao tinha penssado nisso! kkkk
Então eu editei o primeiro post, trocando por *
[quote=pedroroxd][quote=Mark_Ameba]Hmm… interessante… segunda feira eu desenvolvo um algoritmo que adivinhe de acordo com um dicionario.
Só tem um pequeno problema, se X é qualquer vogal então a letra X é o que?
Para meu algoritmo vou considerar x minusculo a consoante X e maisculo sendo qualquer vogal.[/quote]
Opa ameba… nao tinha penssado nisso! kkkk
Então eu editei o primeiro post, trocando por *[/quote]
Hmm… agora faz mais sentido.
De qualquer modo, apenas segundo desenvolvo algo.
E plz… me chame de Marky ^^
hihi
ok…
É pq tem outro mark tb =D
pra mim isso não ta tão basico assim rsrs =(
mas vou tentar alguma coisa, bom q vcs sabem alguns métodos interessantes ae ^^
Ichi… é amigo do cara do static[/quote]
kkkkkkk amigo do cara do static eh foda hashuhua
eu então nem falo nada… cara esse foi o post do ano… mto bom…
Ichi… é amigo do cara do static[/quote]
huAHAuhAUHUAhuaHUHAuaHAUhAUAHuAHUAhaUHauhaUAhuaHUAhaUAhuaHAUhaUAhuaHAUhAUahuAHUAhaUHAuaHUAhaUHAuhaUAhauHAuhaUAhuaHauhuaHUahUAHauAHUahAUHauhAUahuAHauhAUahuahauhaUHAuaHUahAUHauAHuahaUHAuaHUAhauHAuhaUahuAHUAhaUHauaHUAhaUHAuaH… AFF… alguém me dá um copo de agua…
Meu desafio ta virando chat -.-
Solução… ficou grandinho… mas tá bem eficiente… é na força bruta ele… são no total 4635 possibilidades:
[code]package snippet;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TrocaVogais {
static String frase = "D*S*F** P*R* *S G*J**N*S. T*NT*M D*SC*BR*R * S*GN*F*C*D* R**L D*SS* FR*S*.";
public static void main(String[] args) {
new TrocaVogais().doit();
}
private void doit() {
String[] palavras = extrairPalavras(frase);
int possibilidadeCounter = 0;
for (int i = 0; i < palavras.length; i++) {
String palavra = palavras[i];
int[] posicoes = contarCaracteres('*', palavra);
if(posicoes.length > 0){
possibilidadeCounter += mostrarPossibilidades(palavra, posicoes);
}
}
System.out.println(possibilidadeCounter);
}
private int mostrarPossibilidades(String palavra, int[] posicoes) {
int possibilidadeCounter = 0;
System.out.println("Possibilidades para "+palavra);
CombinacoesIterator combinacoesIterator = new CombinacoesIterator(posicoes.length, new char[]{'A','E', 'I', 'O', 'U'});
while(combinacoesIterator.hasNext()){
char[] charsPossibilidade = combinacoesIterator.next();
String possibilidade = merge(palavra, charsPossibilidade, posicoes);
System.out.println(" >> "+possibilidade);
possibilidadeCounter++;
}
return possibilidadeCounter;
}
private String merge(String palavra, char[] charsPossibilidade, int[] posicoes) {
char[] charArray = palavra.toCharArray();
for (int i = 0; i < posicoes.length; i++) {
charArray[posicoes[i]] = charsPossibilidade[i];
}
return String.valueOf(charArray);
}
private int[] contarCaracteres(char c, String palavra) {
List<Integer> counter = new ArrayList<Integer>();
for (int i = 0; i < palavra.length(); i++) {
char letra = palavra.charAt(i);
if(letra == c){
counter.add(i);
}
}
return toIntArray(counter);
}
private int[] toIntArray(List<Integer> counter) {
int[] resultado = new int[counter.size()];
for (int i = 0; i < resultado.length; i++) {
resultado[i] = counter.get(i);
}
return resultado;
}
public String[] extrairPalavras(String frase){
return frase.split("\s+");
}
}
class CombinacoesIterator implements Iterator<char[]>{
int[] posicoes;
char[] valores;
int posicaoTrocaAtual = 0;
double iteracoes;
public CombinacoesIterator(int numeroPosicoes, char[] valores){
this.valores = valores;
posicoes = new int[numeroPosicoes];
posicoes[0] = -1;
iteracoes = Math.pow(valores.length, numeroPosicoes);
}
@Override
public boolean hasNext() {
return iteracoes > 0;
}
@Override
public char[] next() {
iteracoes -= 1;
posicoes[posicaoTrocaAtual]++;
boolean reset = false;
while(posicoes[posicaoTrocaAtual] == valores.length){
posicoes[posicaoTrocaAtual] = 0;
posicaoTrocaAtual++;
posicoes[posicaoTrocaAtual]++;
reset = true;
}
if(reset){
posicaoTrocaAtual = 0;
}
char[] result = new char[posicoes.length];
for (int i = 0; i < result.length; i++) {
result[i] = valores[posicoes[i]];
}
return result;
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}[/code]
Legal…
O meu fico +/- assim também…
Mas axo que dá pra dar uma enxugada legal
Não rodei a solução do cara ai por que to sem compilador, ams a resposta é uma frase com sentido ou apenas todas as possibilidades?
Todas as possibilidades
Rlx… segunda meu algoritmo mostra uma possibilidade que existe.
Blza…
Dei uma enxugada no meu aki, e to diminuindo 1 poko +
Alguém tem uma wordlist em portugues?
To procurando na internet e não acho, e o speedy também não ajuda.
Se alguém tiver uma e me passar já é um bom adianto.
To sem aki…
Faz tempo que não uso… A minha tava desatualizada (reforma ortográfica) e deletei…
Agora ta foda de achar