Занимательные задачи PHP
340 subscribers
1 photo
15 links
Ваша цель: решить задачу максимально изящно и просто. Предлагайте свои варианты решения в комментариях. Задачи выходят по будням в 14.00.
Download Telegram
Конкурс CSS картинок. Тема: Новый Год.
Подведение итогов: 31 декабря. Приглашаются все желающие:)

Подробности тут:
https://vk.com/topic-42967112_50416136

P.S.
На прикрепленном фото скрин работы победителя предыдущего конкурса - Сергея Лазарева. Она анимированная) подробнее рассмотреть работу можно в ветке конкурса (ссылка выше)!
Задача 7
Случайная картинка из папки

В папке лежат файлы картинок. При заходе пользователя на сайт покажите ему случайную картинку из этой папки. Если он обновит страницу или зайдет через некоторое - картинка, показываемая ему, не должна поменяться.
Задача 8
Нарастающее разбиение строки

Дана строка с любыми символами. Для примера пусть будет такая:
'1234567890'

Нужно разбить строку в массив таким образом:
['1', '23', '456', '7890']

И так далее, пока символы в строке не закончатся.
Задача 9
Заглавные буквы в начале предложения

Дан текст. Сделайте заглавной первую букву каждого предложения в этом тексте.
Задача 10
Пересечение строк

Даны две строки. Выведите на экран только те слова, которые содержатся в обеих строках.
Задача 11
Разделение числа на случайную сумму

Дано целое число. Разбейте его на случайное количество целых чисел так, чтобы в сумме они давали это число. Пример: 100 можно разбить на 50+50, или 51+49, или 20+30+50. Количество фрагментов должно быть любым, случайным, сами фрагменты тоже должны быть случайными.
Задача 12
Случайная уникальная строка

Посмотрите на сайт jsfiddle.net и похожие на него. Там при сохранении странице присваивается адрес, состоящий из больших и маленьких букв. При этом адреса не должны повторяться, иначе будет конфликт.

Придумайте идею, как это сделать, и реализуйте функцию, который будет генерировать случайную строку, которая не встречалась ранее.
Задача 13
Календарь текущего месяца

Напишите скрипт, который выводит календирик текущего месяца (квадратный, с днями недели).
Задача 14
Противоположность array_unique

Реализуйте функцию-противоположность array_unique. Наша функция должна оставлять элементы, имеющие дубли.
Задача 15
Корректность времени

Дано время в формате часы:секунды. Проверьте то, что время является корректным: часы от 00 до 23, а минуты от 00 до 59.
Задача 16
Счастливые билеты

Выведите на экран все счастливые билеты. Счастливый билет - это когда сумма первых трех цифр в номере билета равна сумме второй тройки цифр (номер шестизначный). Подсчитайте сколько счастливых билетов существует и какой % они составляют от общего числа билетов.
Задача 17
Половина заглавных букв

Дана строка с маленькими буквами. Сделайте заглавными половину случайных букв этой строки, игнорируя пробелы.
Задача 18
Следующий элемент ряда

Дан ряд: a, b, c ,d ... x, y, z , aa, ab, ac, ... ay, az, ba, bb, ... bz, ... aaz.. Напишите функцию, которая получит следующий элемент по предыдущему.
Задача 19
N-ный знак после запятой

Поделите число 10 на число 7. Найдите 1000-ный знак после запятой у полученной дроби.
Задача 20
Перестановка пар символов

Дана строка '12345678'. Сделайте из нее '21436587'. Строка, конечно же, может быть любой.
Занимательные задачи уходят на каникулы на две недели:)
Всем хорошего нового года!
Задача 21
Самое популярное слово

Дан текст. Найдите самое часто встречающееся слово в этом тексте.
Задача 22
Число прописью

Дано некоторое число:
$num = 1234567890;

Выведите это число прописью:
'
один миллиард двести тридцать четыре миллиона
пятьсот шестьдесят семь тысяч восемсот девяносто
'

Ваш код, конечно же, должен быть универсальным и работать для любых чисел в пределах миллиардов.
Задача 23
Группировка массива по первым буквам

Дан произвольный массив со словами, начинающимися на различные буквы, например, вот такой:
$arr = [
'axx', 'bxx', 'cxx',
'ayy', 'byy', 'cyy',
'azz', 'bzz', 'czz',
];

Преобразуйте этот массив в двухмерный, в котором ключами будут первые буквы слов, а значениями массивы слов, начинающихся на эти буквы:
[
'a' => [
'axx', 'ayy', 'azz',
],
'b' => [
'bxx', 'byy', 'bzz',
],
'c' => [
'cxx', 'cyy', 'czz',
],
]
Задача 24
Сортировка двухмерного массива

Дан двухмерный массив:
[
[
'name' => 'user3',
'age' => 31,
'salary' => 100,
],
[
'name' => 'user1',
'age' => 32,
'salary' => 300,
],
[
'name' => 'user2',
'age' => 33,
'salary' => 200,
],
]

Выполните сортировку этого массива по заданному полю (по имени, возрасту или зарплате).
Задача 25
Заданный знак числа Пи

Сделайте функцию, которая будет возвращать заданный знак числа Пи (например, тысячный знак). Номер знака передается параметром функции.