Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Счастливые билеты или _==wolf==_а мучает ностальгия |

03.05.2009, 12:30
|
|
Участник форума
Регистрация: 29.05.2008
Сообщений: 181
Провел на форуме: 979048
Репутация:
101
|
|
Счастливые билеты или _==wolf==_а мучает ностальгия
Все мы знаем что раньше в автобусе использовались бумажные билетики, которые надо было дырявить в специальном компостере и тогда он считался погашенным. Серийный номер таких билетов состоял из 6 цифр. Также появилась примета что если сумма первых трех цифр серийного номера равна сумме последних трёх цифр этот билет - счастливый, и несёт он деньги и удачу. ) Собственно к делу: сегодня 2 часа пытался реализовать генератор "счастливых" серийников на PHP, никак не получилось. Кто поможет сотворить сиё чудо? 
|
|
|

03.05.2009, 13:01
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Ну например так, хотя наверняка не самый оптимальный вариант (генерим и выводим на экран 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>
|
|
|

03.05.2009, 13:04
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Код:
<?
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}";
?>
выводит счастливые билетики а в конце - сколько их всего.
|
|
|

03.05.2009, 13:05
|
|
Участник форума
Регистрация: 29.05.2008
Сообщений: 181
Провел на форуме: 979048
Репутация:
101
|
|
абсолютно все?? аа спс большое вам! ) + +
|
|
|

03.05.2009, 13:09
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Сообщение от _==wolf==_
абсолютно все?? аа спс большое вам! ) + +
ну я точно не помню с какого номера билеты идут, напсиал с 111111, исправь на 100000 если что 
А так да, если сумма первых трех числе равна сумме последих трех, то билет считается счаслтивым 
|
|
|

03.05.2009, 13:39
|
|
Участник форума
Регистрация: 29.05.2008
Сообщений: 181
Провел на форуме: 979048
Репутация:
101
|
|
спс огромное. кстати вот результат это не скрипт а готовый список, поэтому загрузит быстро не волнуйтесь ) 50412 всего билетов в одной серии.. а серий хз скока...
|
|
|

03.05.2009, 13:45
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Более интересное решение, отсюда:
Код:
#!/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;
}
|
|
|

03.05.2009, 13:49
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Сообщение от astrologer
Более интересное решение,
Это перл, а ТСу надо на пыхе 
|
|
|

03.05.2009, 13:58
|
|
Участник форума
Регистрация: 29.05.2008
Сообщений: 181
Провел на форуме: 979048
Репутация:
101
|
|
линк не появился... ну да ладно)
|
|
|

03.05.2009, 14:06
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
ты еще сделай проверку счастливых IP адресов ))) "поздравляем ваш IP счастливый!!!"
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|