Algorithm 生成所有可能的16位数字,需要更少的存储位置
我正在尝试生成所有可能的16位十进制数 我知道这需要大量的存储空间,所以我尝试通过删除所有第6位不等于第3位的数字-1来减少数字。我还确保没有四个连续数字相等 当我试图删除所有生成的包含八个以上零的数字时,问题就出现了。例如,我不想打印以下Algorithm 生成所有可能的16位数字,需要更少的存储位置,algorithm,perl,Algorithm,Perl,我正在尝试生成所有可能的16位十进制数 我知道这需要大量的存储空间,所以我尝试通过删除所有第6位不等于第3位的数字-1来减少数字。我还确保没有四个连续数字相等 当我试图删除所有生成的包含八个以上零的数字时,问题就出现了。例如,我不想打印以下000015000001010或0001000200343 下面是我的Perl代码。我声明了一个全局变量$a,该变量在16位中的任何一位为零时递增,然后在$a大于8时不打印数字。但它不起作用,请帮忙 #!/usr/bin/perl $A=0; for($a=0
000015000001010
或0001000200343
下面是我的Perl代码。我声明了一个全局变量$a
,该变量在16位中的任何一位为零时递增,然后在$a
大于8时不打印数字。但它不起作用,请帮忙
#!/usr/bin/perl
$A=0;
for($a=0){
if($a==0){$A++;if($A>16){$A=0;}}
for($b=0;$b<6;$b++){
if($b==0){$A++;if($A>16){$A=0;}}
for($c=0;$c<6;$c++){
if($c==0){$A++;if($A>16){$A=0;}}
for($d=0;$d<6;$d++){
if($d==0){$A++;if($A>16){$A=0;}}
for($e=0;$e<6;$e++){
if($e==0){$A++;if($A>16){$A=0;}}
for($f=0;$f<6;$f++){
#check if all Numbers a-i are equal
#No 8 numbers can be the same in the same order
$Fc=$c-1;
if($Fc==-1){$Fc=5;}
#print "F==$Fc\n";
if($a==0&&$b==0&&$c==0&&$d==0&&$e==0&&$f==0||$a==0&&$b==0&&$c==0&&$d==0&&$e==0||$a==1&&$b==1&&$c==1&&$d==0&&$e==1&&f==1||$a==1&&$b==1&&$c==1&&$d==1&&$e==1||$a==2&&$b==2&&$c==2&&$d==2&&$e==2||$a==2&&$b==2&&$c==2&&$d==2&&$e==2
&&$f==2||$a==3&&$b==3&&$c==3&&$d==3&&$e==3||$a==3&&$b==3&&$c==3&&$d==3&&$e==3&&$f==3||$a==4&&$b==4&&$c==4&&$d==4&&$e==4||$a==4&&$b==4&&$c==4&&$d==4&&$e==4&&$f==4||$a==5&&$b==5&&$c==5&&$d==5&&$e==5||$a==5&&$b==5&&$c==5&&$d==5&&$e==5&&$f==5
){}
else{
if($f==0){$A++;if($A>16){$A=0;}}
#print "$a$b$c$d$e$Fc\n"
for($g=0;$g<6;$g++){
if($g==0){$A++;if($A>16){$A=0;}}
for($h=0;$h<6;$h++){
if($h==0){$A++;if($A>16){$A=0;}}
for($i=0;$i<6;$i++){
if($i==0){$A++;if($A>16){$A=0;}}
for($j=0;$j<6;$j++){
if($j==0){$A++;if($A>16){$A=0;}}
for($k=0;$k<6;$k++){
if($k==0){$A++;if($A>16){$A=0;}}
for($l=0;$l<6;$l++){
if($g==0&&$h==0&&$i==0&&$j==0&&$k==0&&$l==0||$g==0&&$h==0&&$i==0&&$j==0&&$k==0||$g==1&&$h==1&&$i==1&&$j==0&&$k==1&&$l==1||$g==1&&$h==1&&$i==1&&$j==1&&$k==1||$g==2&&$h==2&&$i==2&&$j==2&&$k==2
&&$l==2||$g==2&&$h==2&&$i==2&&$j==2&&$k==2||$g==3&&$h==3&&$i==3&&$j==3&&$k==3&&$l==3||$g==3&&$h==3&&$i==3&&$j==3&&$k==3||$g==4&&$h==4&&$i==4&&$j==4&&$k==4&&$l==4||$g==4&&$h==4&&$i==4&&$j==4&&$k==4||$g==5&&$h==5&&$i==5&&$j==5&&$k==5&&$l==5||$g==5&&$h==5&&$i==5&&$j==5&&$k==5
){}
else{
if($l==0){$A++;if($A>16){$A=0;}}
for($m=0;$m<6;$m++){
if($m==0){$A++;if($A>16){$A=0;}}
for($n=0;$n<6;$n++){
if($n==0){$A++;if($A>16){$A=0;}}
for($o=0;$o<6;$o++){
if($o==0){$A++;if($A>16){$A=0;}}
for($p=0;$p<6;$p++){
if($p==0){$A++;if($A>16){$A=0;}}
if($l==0&&$m==0&&$n==0&&$o==0&&$p==0||$l==0&&$m==0&&$n==0&&$o==0||$l==1&&$m==1&&$n==1&&$o==1&&$p==1||$l==1&&$m==1&&$n==1&&$o==1||$l==2&&$m==2&&$n==2&&$o==2&&$p==2||$l==2&&$m==2&&$n==2&&$o==2||$l==3&&$m==3&&$n==3&&$o==3&&$p==3||$l==3&&$m==3&&$n==3&&$o==3||$l==4&&$m==4&&$n==4&&$o==4&&$p==4||$l==4&&$m==4&&$n==4&&$o==4||$l==5&&$m==5&&$n==5&&$o==5&&$p==5||$l==5&&$m==5&&$n==5&&$o==5){}else{
#print "$A\n";
if($A>8){}
else{
print "$a$b$c$d$e$Fc$g$h$i$j$k$l$m$n$o$p\n"#Print The Generated Numbers
}
}}}}}}}}}}}}}}}}}}}
#/usr/bin/perl
$A=0;
对于($a=0){
如果($a==0){$a++;如果($a>16){$a=0;}
对于($b=0;$b16){$A=0;}
对于($c=0;$c16){$A=0;}
对于($d=0;$d16){$A=0;}
对于($e=0;$e16){$A=0;}
对于($f=0;$f16){$A=0;}
#打印“$a$b$c$d$e$Fc\n”
对于($g=0;$g16){$A=0;}
对于($h=0;$h16){$A=0;}
对于($i=0;$i16){$A=0;}
对于($j=0;$j16){$A=0;}
对于($k=0;$k16){$A=0;}
对于($l=0;$l16){$A=0;}
对于($m=0;$m16){$A=0;}
对于($n=0;$n16){$A=0;}
对于($o=0;$o16){$A=0;}
对于($p=0;$p16){$A=0;}
如果0 0 0 | 40((=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0$n==5&&$o==5&&$p==5||$l==5&&$m==5&&$n==5&&$o==5){}else{
#打印“$A\n”;
如果($A>8){}
否则{
打印“$a$b$c$d$e$Fc$g$h$i$j$k$l$m$n$o$p\n”#打印生成的数字
}
}}}}}}}}}}}}}}}}}}}
更新以显示程序结构
!/usr/bin/perl
$A=0;
对于($a=0){
如果($a==0){
$A++;
如果($A>16){
$A=0;
}
}
对于($b=0;$b<6;$b++){
如果($b==0){
$A++;
如果($A>16){
$A=0;
}
}
对于($c=0;$c<6;$c++){
如果($c==0){
$A++;
如果($A>16){
$A=0;
}
}
对于($d=0;$d<6;$d++){
如果($d==0){
$A++;
如果($A>16){
$A=0;
}
}
对于($e=0;$e<6;$e++){
如果($e==0){
$A++;
如果($A>16){
$A=0;
}
}
对于($f=0;$f<6;$f++){
#检查所有数字a-i是否相等
#没有8个数字可以在同一顺序中相同
$Fc=$c-1;
如果($Fc==-1){
$Fc=5;
}
#打印“F==$Fc\n”;
如果($a==0&&$b==0&&$c==0&&&$d==0&&$e==0&&$f==0
||$a==0&&$b==0&&$c==0&&$d==0&&$e==0
||$a==1&&$b==1&&$c==1&&$d==0&&$e==1&&f==1
||$a==1&&$b==1&&$c==1&&$d==1&&$e==1
||$a==2&&$b==2&&$c==2&&$d==2&&$e==2
||$a==2&&$b==2&&$c==2&&$d==2&&$e==2&&$f==2
||$a==3&&$b==3&&$c==3&&$d==3&&$e==3
||$a==3&&$b==3&&$c==3&&$d==3&&$e==3&&$f==3
||$a==4&&$b==4&&$c==4&&$d==4&&$e==4
||$a==4&&$b==4&&$c==4&&$d==4&&$e==4&&$f==4
||$a==5&&$b==5&&$c==5&&$d==5&&$e==5
||$a==5&&$b==5&&$c==5&&$d==5&&$e==5&&$f==5){
}
否则{
如果($f==0){
$A++;
如果($A>16){
$A=0;
}
}
#打印“$a$b$c$d$e$Fc\n”
对于($g=0;$g<6;$g++){
如果($g==0){
$A++;
如果($A>16){$A=0;}
}
对于($h=0;$h<6;$h++){
如果($h==0){
$A++;
如果($A>16){
$A=0;
}
}
对于($i=0;$i<6;$i++){
如果($i==0){
$A++;
如果($A>16){
$A=0;
}
}
对于($j=0;$j<6;$j++){
如果($j==0){
$A++;
如果($A>16){
$A=0;
}
#!/usr/bin/perl
$A = 0;
for ( $a = 0 ) {
if ( $a == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $b = 0 ; $b < 6 ; $b++ ) {
if ( $b == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $c = 0 ; $c < 6 ; $c++ ) {
if ( $c == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $d = 0 ; $d < 6 ; $d++ ) {
if ( $d == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $e = 0 ; $e < 6 ; $e++ ) {
if ( $e == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $f = 0 ; $f < 6 ; $f++ ) {
#check if all Numbers a-i are equal
#No 8 numbers can be the same in the same order
$Fc = $c - 1;
if ( $Fc == -1 ) {
$Fc = 5;
}
#print "F==$Fc\n";
if ( $a == 0 && $b == 0 && $c == 0 && $d == 0 && $e == 0 && $f == 0
|| $a == 0 && $b == 0 && $c == 0 && $d == 0 && $e == 0
|| $a == 1 && $b == 1 && $c == 1 && $d == 0 && $e == 1 && f == 1
|| $a == 1 && $b == 1 && $c == 1 && $d == 1 && $e == 1
|| $a == 2 && $b == 2 && $c == 2 && $d == 2 && $e == 2
|| $a == 2 && $b == 2 && $c == 2 && $d == 2 && $e == 2 && $f == 2
|| $a == 3 && $b == 3 && $c == 3 && $d == 3 && $e == 3
|| $a == 3 && $b == 3 && $c == 3 && $d == 3 && $e == 3 && $f == 3
|| $a == 4 && $b == 4 && $c == 4 && $d == 4 && $e == 4
|| $a == 4 && $b == 4 && $c == 4 && $d == 4 && $e == 4 && $f == 4
|| $a == 5 && $b == 5 && $c == 5 && $d == 5 && $e == 5
|| $a == 5 && $b == 5 && $c == 5 && $d == 5 && $e == 5 && $f == 5 ) {
}
else {
if ( $f == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
#print "$a$b$c$d$e$Fc\n"
for ( $g = 0 ; $g < 6 ; $g++ ) {
if ( $g == 0 ) {
$A++;
if ( $A > 16 ) { $A = 0; }
}
for ( $h = 0 ; $h < 6 ; $h++ ) {
if ( $h == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $i = 0 ; $i < 6 ; $i++ ) {
if ( $i == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $j = 0 ; $j < 6 ; $j++ ) {
if ( $j == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $k = 0 ; $k < 6 ; $k++ ) {
if ( $k == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $l = 0 ; $l < 6 ; $l++ ) {
if ( $g == 0 && $h == 0 && $i == 0 && $j == 0 && $k == 0 && $l == 0
|| $g == 0 && $h == 0 && $i == 0 && $j == 0 && $k == 0
|| $g == 1 && $h == 1 && $i == 1 && $j == 0 && $k == 1 && $l == 1
|| $g == 1 && $h == 1 && $i == 1 && $j == 1 && $k == 1
|| $g == 2 && $h == 2 && $i == 2 && $j == 2 && $k == 2 && $l == 2
|| $g == 2 && $h == 2 && $i == 2 && $j == 2 && $k == 2
|| $g == 3 && $h == 3 && $i == 3 && $j == 3 && $k == 3 && $l == 3
|| $g == 3 && $h == 3 && $i == 3 && $j == 3 && $k == 3
|| $g == 4 && $h == 4 && $i == 4 && $j == 4 && $k == 4 && $l == 4
|| $g == 4 && $h == 4 && $i == 4 && $j == 4 && $k == 4
|| $g == 5 && $h == 5 && $i == 5 && $j == 5 && $k == 5 && $l == 5
|| $g == 5 && $h == 5 && $i == 5 && $j == 5 && $k == 5 ) {
}
else {
if ( $l == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $m = 0 ; $m < 6 ; $m++ ) {
if ( $m == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $n = 0 ; $n < 6 ; $n++ ) {
if ( $n == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $o = 0 ; $o < 6 ; $o++ ) {
if ( $o == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
for ( $p = 0 ; $p < 6 ; $p++ ) {
if ( $p == 0 ) {
$A++;
if ( $A > 16 ) {
$A = 0;
}
}
if ( $l == 0 && $m == 0 && $n == 0 && $o == 0 && $p == 0
|| $l == 0 && $m == 0 && $n == 0 && $o == 0
|| $l == 1 && $m == 1 && $n == 1 && $o == 1 && $p == 1
|| $l == 1 && $m == 1 && $n == 1 && $o == 1
|| $l == 2 && $m == 2 && $n == 2 && $o == 2 && $p == 2
|| $l == 2 && $m == 2 && $n == 2 && $o == 2
|| $l == 3 && $m == 3 && $n == 3 && $o == 3 && $p == 3
|| $l == 3 && $m == 3 && $n == 3 && $o == 3
|| $l == 4 && $m == 4 && $n == 4 && $o == 4 && $p == 4
|| $l == 4 && $m == 4 && $n == 4 && $o == 4
|| $l == 5 && $m == 5 && $n == 5 && $o == 5 && $p == 5
|| $l == 5 && $m == 5 && $n == 5 && $o == 5 ) {
}
else {
#print "$A\n";
if ( $A > 8 ) {
}
else {
print "$a$b$c$d$e$Fc$g$h$i$j$k$l$m$n$o$p\n" #Print The Generated Numbers
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
my $credit_card_number = "$a$b$c$d$e$Fc$g$h$i$j$k$l$m$n$o$p";
print $credit_card_number, "\n" unless $credit_card_number =~ tr/0// > 8;