Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ответ 009 на задачу N 19
 
 автор: SoftTime   (13.08.2006 в 20:03)   письмо автору
 
 

Ответ 009 на задачу N 19.
С условиями задачи можно ознакомится по ссылке.
<?php
//сортировка 3 цифр и запись их в строку
 
function arrstr($x$y$z){
  
$ar[]=$x;
  
$ar[]=$y;
  
$ar[]=$z;
  
sort($ar);
  return(
$ar[0].$ar[1].$ar[2]);
 }

//поиск комбинаций для представления числа, образующего сумму X+Y+Z
 
function search($x,$y,$z, &$arr){
  
$arr[]= arrstr($x$y$z);

  while (
$x and $z 9){
   
$arr[]= arrstr($x$y$z);

   
$a=$x;
   
$b=$y;
   
$c=$z;

   while (
$a and $b 9){
    
$arr[]= arrstr(--$a, ++$b$c);
   }

   
$a=$x;
   
$b=$y;
   
$c=$z;

   while (
$b and $c 9){
    
$arr[]= arrstr($a, --$b, ++$c);
   }
   --
$x;
   ++
$z;
  }
 }

//разбивка числа M на комбинацию в виде X Y Z
 
function start($m, &$x, &$y, &$z){
  if (
$m 9){
   if (
$m-9){
    
$x9;
    
$y9;
    
$z$m-18;
   }
   else{
    
$x9;
    
$y$m-9;
    
$z0;
   }
  }
  else{
   
$x$m;
   
$y0;
   
$z0;
  }
 }

//подсчет кол-ва цифр в числе
 
function numcount($str){
  for (
$i=0$i<=2$i++){
   
$a[$i]=substr($str$i1);
  }

  
$a=array_unique($a);

  return(
count($a));
 }

//Сумма цифр в последовательности 000..999 равна 0..27.
//Если вычислить количество уникальных последовательностей
//которыми можно представить конкретное m, то в зависимости от количества
//уникальных цифр в одной последовательности (n) можно сказать:
//при n=1 к-во комбинаций = 1
//при n=2 к-во комбинаций = 3
//при n=3 к-во комбинаций = 6
//От сюда, к-во щасливых = сумме всех комбинаций в квадрате минус к-во симметрич.,
//к-во симметричных равно к-ву комбинаций.
 
for ($m=0$m<=27$m++){
  
start($m$x$y$z);

  
$a= array();

  
search($x,$y,$z$a);
  
search($x,$z,$y$a);

  
search($y,$x,$z$a);
  
search($y,$z,$x$a);

  
search($z,$x,$y$a);
  
search($z,$y,$x$a);

  
$a=array_unique($a);

  
$lucky=0;
  
$simm=0;

  foreach (
$a as $str){
   
$n numcount($str);

   if (
$n == 1)
     
$simm += 1;

   if (
$n == 2)
    
$simm += 3;

   if (
$n == 3)
    
$simm += 6;
  }

  
$lucky pow($simm,2) - $simm;

  
$coast += $lucky*$simm*10;

  echo 
'm='.$m.' count='.count($a).' ';
  echo 
' lucky= '.$lucky;
  echo 
' simm= '.$simm;
  echo 
' coast= '.$coast.'<br />';
 }

 echo 
"общая сумма от продажи = ".$coast;

//Сумма от продажи всех билетов составила 172756. Время на продажу
//999 999 билетов составит 10 мес При продаже 100 000 билетов в мес.
//Соответственно фирма понесет убытки (при затратах 20000 в мес) или я че-то не понял :-))))

//P.S. в условии сказано: "Доход с одного счастливого билета..", т.е. бизнес заведемо
//доходный?? Я считал 3 и 10 руб как цена билетов, а не доход. Если это
//доход, то 172756 это доход, а не сумма от продажи.
?>


http://www.softtime.ru/info/task.php?id_article=101

   
 
 автор: buka   (14.08.2006 в 15:47)   письмо автору
 
   для: SoftTime   (13.08.2006 в 20:03)
 

Не пойму зачем такие сложности

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования