За последние 24 часа нас посетили 54344 программиста и 1659 роботов. Сейчас ищут 1059 программистов ...

Ищу задания для опыта

Тема в разделе "PHP для новичков", создана пользователем AnonimS, 1 июн 2017.

Метки:
  1. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Всем доброго времени суток! Ищу интересные задачки на PHP, пока не занят надо мозг нагружать. Заметил, если какое-то время не пишешь код, то потом, чтобы вспомнить что-либо надо повторять. Стараюсь каждый день хоть по чуть-чуть что-то писать.
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Abyss нравится это.
  3. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Спасибо. Интересный проект
     
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Числа фибоначи
     
  5. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Можно поподробнее суть задачи. Про числа фибоначи слышал.
     
  6. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    F(0) = 0, F(1) = 1, F(N) = F(n - 1) + F(n - 2)
    Сделай функцию, которая будет считать любой член этой последовательности. Классический пример на рекурсию, и также классический пример, когда рекурсия вредна. Так что рекомендую написать два варианта, с рекурсией и без.
    --- Добавлено ---
    Потом можешь трибонначи тоже сделать, хорошее упражнение:
    upload_2017-6-1_22-59-30.png
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    http://govnokod.ru/ вот еще))
    --- Добавлено ---
    Хотя, это не одно и то же))
     
  8. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Интересно, но есть готовые формулы для этой задачки, задача состоит в том, чтобы вывести свой алгоритм?

    PHP:
    1. function fibonacci_bine($n)
    2. {
    3.     $sq5 = sqrt(5);
    4.     $a = (1 + $sq5) / 2;
    5.     $b = (1 - $sq5) / 2;
    6.     return (pow($a, $n) - pow($b, $n)) / $sq5;
    7. }
    8. function fibonacci_recurs($n)
    9. {
    10.     if ($n < 3) {
    11.         return 1;
    12.     }
    13.     else {
    14.         return fibonacci_recurs($n-1) + fibonacci_recurs($n-2);
    15.     }
    16. }
    17. function fibonacci_mas($n)
    18. {
    19.     echo '...,';
    20.     $result = [1, 1];
    21.  
    22.     for($i = 2; $i <= $n; $i++ ) {
    23.         $result[] = $result[$i-1] + $result[$i-2];
    24.     }
    25.     $result = implode(", ", $result);
    26.     $result .= ', ...<br><br>';
    27.     return $result;
    28. }
    29.  
    30. function zic($a, $b, $c)
    31. {
    32.     echo '...,';
    33.     for ($n = $a; $n < $b; $n++) {
    34.         if ($c == 1) {
    35.             echo(fibonacci_bine($n) . ", ");
    36.         } elseif ($c == 2) {
    37.             echo(fibonacci_recurs($n) . ", ");
    38.         } else echo "Ошибка передачи";
    39.     }
    40.     echo '...<br><br>';
    41. }
    42.  
    43. echo "По форумуле Бине:<br>";
    44. zic(1, 22, 1);
    45.  
    46. echo "Рекурсивным методом:<br>";
    47. zic(1, 22, 2);
    48.  
    49. echo "Рекурсивным методом 2:<br>";
    50. echo fibonacci_mas(20);
    --- Добавлено ---
    Заметил, что при рекурсии не получается вычислить отрицательные числа последовательности.
    --- Добавлено ---
    Это больше для примеров, но все равно спасибо.
    После фибоначчи, трибоначчи легко, просто надо добавить 1 элемент.

    PHP:
    1. function tribonacci($n)
    2. {
    3.     echo '...,';
    4.     $result = [0, 0, 1];
    5.  
    6.     for($i = 2; $i <= $n; $i++ ) {
    7.         $result[] = $result[$i] + $result[$i-1] + $result[$i-2];
    8.     }
    9.     $result = implode(", ", $result);
    10.     $result .= ', ...<br><br>';
    11.     return $result;
    12. }
    13. echo "Трибоначчи:<br>";
    14. echo tribonacci(20);
     
    #8 AnonimS, 5 июн 2017
    Последнее редактирование: 5 июн 2017
    Dimon2x нравится это.
  9. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    помню в институте что то учили)) и с тех пор в жизни ни разу ни пригодилось))
     
  10. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Я тоже сейчас читал и понял, что раньше это знал и комбинаторику и последовательности. Если что-то не используешь на практике, то это забывается..
     
  11. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    я даже уже и не помню что это)) хоть по вышке была вроде четверка))
     
  12. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
  13. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    За пару дней поднял 313 очков и как-то вяло стало, таски однотипные, или дичь или уже было.
     
  14. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    я поднял там 315)да,однотипные задачи бывают,но есть и довольно интересные,типа реализации шифра Цезаря или декодирование Морзе.
     
  15. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Я или так и не понял или эта каточка на пыхе была поломана.
     
  16. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Рекурсия не поэтому не лучшее решение для Фибоначчи.