Anagrama usando Perl
Publicado por Jonatan Gomes (última atualização em 01/10/2010)
[ Hits: 7.649 ]
Homepage: Em construção xD
Bom, para quem não sabe o que é um anagrama ou para quem se esqueceu, vou tentar dar uma simples resumida. Anagrama é quando você quer saber as possibilidades de uma palavra ter diferentes resultados, exemplo:
Com a palavra "One" podemos fazer 6 combinações distintas. Como assim distintas? Simples, quando especificamos distintas quer dizer que não podemos repetir a mesma letra mais de uma vez, as combinações ficarão assim:
One
Oen
Neo
Noe
Eno
Eon
Caso não seja distinta o resultado será de 27 combinações (pois as letras poderão se repetir). Anagrama é muito usado em simbologia e em outras áreas, essa é a versão 1.0, na próxima que mandarei eu vou fazer com que apareça também as palavras (só que não tenho a mínima noção de como fazer isso =]). Bom, aí está o código, se puderem dar uma melhorada nele eu agradeço...
#!/usr/bin/perl
print "\n+---------------[R4ST4 4N4GR4M4]---------------+\n";
print "|-------------------------------1.0-----|\n";
print "| |\n";
print "| Gerador de Anagramas Versao 1.0 |\n";
print "| |\n";
print "| Coded By R4\$T4 |\n";
print "+---------------------------------------+\n\n";
sleep 3;
print "\n\nPor favor Insira Uma Palavra\t";
chomp($palavra= <STDIN>);
print "\n\nVoce quer resultado com numeros destintos? (S/N)\t";
chomp ($destinto= <STDIN>);
@lista= split(//,$palavra);
if (($destinto =~ /[Ss]/) || ($destinto =~ /[Ss]ao/))
{
$vezes= @lista."";
$vezes2= @lista."";
$vezes3= @lista."";
for ($i= 1; $i = $vezes; $vezes--)
{
push (@aff, $vezes);
}
for ($vezes2= @lista.""; $vezes2 < 29; $vezes2++)
{
$h=1;
push (@aff,$h); #aqui preenchemos todos os espaços que sobrarem da matriz por 1
}
$conta= $aff[0] * $aff[1] * $aff[2]* $aff[3] * $aff[4]* $aff[5]*$aff[6]*$aff[7]*$aff[8]*$aff[9]*$aff[10]*$aff[11]*$aff[12]*$aff[13]*$aff[14]*$aff[15]*$aff[16]*$aff[17]*$aff[18]*$aff[19]; #aqui é o número maximo de letras
print "\n\n O total de resultados possiveis: $conta\n";
}
if (($destinto =~ /[Nn]/) || ($destinto =~ /[Nn]ao/))
{
$vezes3= @lista."";
$conta2= $vezes3 ** $vezes3;
print "\n\n O total de resultados possiveis: \t $conta2";
}
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









