За последние 24 часа нас посетили 14933 программиста и 1730 роботов. Сейчас ищут 555 программистов ...

Необычное решение . Массивы PHP

Тема в разделе "Решения, алгоритмы", создана пользователем RomanVitte, 14 май 2019.

  1. RomanVitte

    RomanVitte Новичок

    С нами с:
    14 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Доброго времени суток, друзья !

    Столкнулся с необычной проблемой, которую не понимаю как решить. Хочу спросить у вас совета или решения.

    1) Например, генерируем число от 5 до 30 .
    Возьмем 7

    2) Представьте, что вы кидаете 3 кубика.
    В первом случае выпало - 1, втором 2, 3 - 3 и т.д.


    Задача в том, чтобы представить это число в 3 кубиках через цикл.
    Нужно распределить числа в 3-ех блоках, чтобы в сумме получилось 7 .

    Например, в первый кубик положить цифру 1, во второй - 5 и в третий 1 ( В сумме 7 как раз )
    и каждый раз, когда человек кидает кости, то цифры будут расположены по-разному в разных блоках.


    Если есть вопросы, то пишите .

    Небольшой пример кода

    PHP:
    1. $rand  = '10';
    2.  
    3. $cubs = array(
    4.    '1' => '2',
    5.    '2' => '5',
    6.    '3' => '3'
    7. );
    8.  
    9. // кинули 3 кубика, запихиваем разные цифры
    10. // кидаем ещё раз и располагаем по-другому
    11.  
    12. $cubs = array(
    13.    '1' => '1',
    14.    '2' => '1',
    15.    '3' => '8'
    16. );
     
  2. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.793
    Симпатии:
    1.330
    Адрес:
    Лень
    Спрашивай
    PHP:
    1. <?php
    2.  
    3. echo 'Hello';
     
  4. RomanVitte

    RomanVitte Новичок

    С нами с:
    14 май 2019
    Сообщения:
    5
    Симпатии:
    0

    Вопрос в том, что нужно сгенерировать числа, чтобы они были не более "суммы всех чисел"
     
  5. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
  6. RomanVitte

    RomanVitte Новичок

    С нами с:
    14 май 2019
    Сообщения:
    5
    Симпатии:
    0
    вопрос в том, как это на php написать
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.793
    Симпатии:
    1.330
    Адрес:
    Лень
    нанять программиста за пиццу
     
  8. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
  9. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    @RomanVitte получилась классная игра кстати, надо словить трипер =)
    PHP:
    1. <?php
    2. $rand = rand ( 5 , 30);
    3. $rand_1 = rand ( 1 , $rand - 2);
    4. $rand_2 = rand ( 1 , ($rand - $rand_1) - 1);
    5. $rand_3 = $rand - ($rand_2 + $rand_1);
    6. $array = [];
    7. $array[1] = $rand_1;
    8. $array[2] = $rand_2;
    9. $array[3] = $rand_3;
    10.  
    11. echo 'Цифра '.$rand.' на барабане, критути велосипед  ...играет звук барабана из что где когда...<br>';
    12.  
    13. echo 'Первый кубик выкинул '.$rand_1.'<br>';
    14.  
    15. echo 'Второй кубик выкинул '.$rand_2.'<br>';
    16.  
    17. echo 'Третий кубик выкинул '.$rand_3.'<br><br>';
    18.  
    19. $i = 0;
    20. $k = -1;
    21. foreach($array as $key){
    22.     if($k === $key){
    23.         $i++;
    24.     }
    25.     $k = $key;
    26.  
    27. }
    28.  
    29. if($i === 1){
    30.     echo '<b>У вас Две пары (допер) </b>';
    31. }
    32.  
    33. if($i === 2){
    34.     echo '<b>Бинго-бонго Бинго-бонго Тройка (у вас трипер...) </b>';
    35. }
    --- Добавлено ---
    @MouseZver Кстати как правильно сравнить если все значения в массиве равны между собой?

    p.s. блин я создал однорукого бандита, чертовы автоматы.

    @RomanVitte колись ты это и хотел создать да, а не какие то кубики???
     
    #9 Artur_hopf, 20 май 2019
    Последнее редактирование: 20 май 2019
    сельский житель нравится это.
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.793
    Симпатии:
    1.330
    Адрес:
    Лень
    @Artur_hopf
    PHP:
    1. <?php
    2.  
    3. $a = 18;
    4. $b = 20;
    5. $c = 16;
    6.  
    7. if ( min ( $a, $b, $c ) === ( $a + $b + $c ) / 3 )
    8. {
    9.     echo '!!!!';
    10. }
     
    Artur_hopf нравится это.
  11. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.107
    Симпатии:
    1.243
    Адрес:
    там-сям
    min($array) == max($array)
    --- Добавлено ---
    Хотя если сравнивать надо всегда три числа, я бы сделал буквально сравнение трёх чисел :) потому что это выглядит более понятно .
     
    Artur_hopf нравится это.
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.557
    Симпатии:
    631
    Первый кубик должен быть rand(1, 4).
    Второй должен быть rand(1, 7 минус первый и минус 1)
    Третий должен быть = 7 - (первый + второй).
    Выводить на экран в случайном порядке.
     
    сельский житель и Taktreba нравится это.