Anagrama usando Perl
Publicado por Jonatan Gomes (última atualização em 01/10/2010)
[ Hits: 7.521 ]
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";
}
Scalar - Alguns dos usos mais comuns deste tipo de variável do Perl
Escrevendo varias linhas em um arquivo qualquer
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)









