Счастливые билеты или _==wolf==_а мучает ностальгия

Discussion in 'PHP' started by _==wolf==_, 3 May 2009.

  1. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    Все мы знаем что раньше в автобусе использовались бумажные билетики, которые надо было дырявить в специальном компостере и тогда он считался погашенным. Серийный номер таких билетов состоял из 6 цифр. Также появилась примета что если сумма первых трех цифр серийного номера равна сумме последних трёх цифр этот билет - счастливый, и несёт он деньги и удачу. ) Собственно к делу: сегодня 2 часа пытался реализовать генератор "счастливых" серийников на PHP, никак не получилось. Кто поможет сотворить сиё чудо? ;)
     
    1 person likes this.
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Ну например так, хотя наверняка не самый оптимальный вариант (генерим и выводим на экран 10 таких "счастливых" серийников):

    PHP:
    <pre>
    <?
    $i
    =0;
    while (
    $i<=10) {
     
    $a rand(1,9);
     
    $b rand(1,9);
     
    $c rand(1,9);
     
    $d $a+$b+$c;
     
     
    $e rand(1,9);
     
    $f rand(1,9);
     
    $g rand(1,9);
     
    $k $e+$f+$g
     
     if (
    $d==$k) {
       echo 
    $a.$b.$c.$e.$f.$g."\n";
       
    $i++;
     }
    }
    ?>
    </pre>   
     
    1 person likes this.
  3. wildshaman

    wildshaman Elder - Старейшина

    Joined:
    16 Apr 2008
    Messages:
    478
    Likes Received:
    483
    Reputations:
    99
    Code:
    <?
    for ($i=100000; $i<=999999; $i++)
    {
    	settype($i, "string"); 
    	if (($i[0]+$i[1]+$i[2])==($i[3]+$i[4]+$i[5]))
    	{
    		echo "{$i}<br>";
    		$sch++;
    	}
    }
    echo "Всего билетов счастиливых: {$sch}";
    ?>
    
    
    выводит счастливые билетики а в конце - сколько их всего.
     
    5 people like this.
  4. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    абсолютно все?? аа спс большое вам! ) + +
     
  5. wildshaman

    wildshaman Elder - Старейшина

    Joined:
    16 Apr 2008
    Messages:
    478
    Likes Received:
    483
    Reputations:
    99
    ну я точно не помню с какого номера билеты идут, напсиал с 111111, исправь на 100000 если что :)
    А так да, если сумма первых трех числе равна сумме последих трех, то билет считается счаслтивым :)
     
    3 people like this.
  6. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    спс огромное. кстати вот результат это не скрипт а готовый список, поэтому загрузит быстро не волнуйтесь ) 50412 всего билетов в одной серии.. а серий хз скока...
     
  7. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Более интересное решение, отсюда:
    Code:
    #!/usr/bin/perl -w
    
    use strict;
    
    my %summa = ();
    
    for my $i ( 0 .. 999 ) {
    	push @{ $summa{summa($i)} }, $i;
    }
    
    for my $x ( sort { $a <=> $b } keys %summa ) {
    	my @x = @{ $summa{$x} };
    	for my $i ( @x ) {
    		for my $j ( @x ) {
    			printf "%03d%03d\n", $i, $j;
    		}
    	}
    }
    
    sub summa
    {
    	my $x = shift;
    
    	my $s = 0;
    
    	while ( $x ) {
    		$s += $x % 10;
    		$x = int($x / 10);
    	}
    
    	return $s;
    }
     
  8. wildshaman

    wildshaman Elder - Старейшина

    Joined:
    16 Apr 2008
    Messages:
    478
    Likes Received:
    483
    Reputations:
    99
    Это перл, а ТСу надо на пыхе :)
     
  9. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    линк не появился... ну да ладно)
     
  10. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    ты еще сделай проверку счастливых IP адресов ))) "поздравляем ваш IP счастливый!!!"
     
    _________________________
  11. Dumi

    Dumi Banned

    Joined:
    20 Jan 2009
    Messages:
    5
    Likes Received:
    95
    Reputations:
    -5

    :D реально