Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Последовательности в Perl 6 / Rakudo

PerlПрограммирование
Перевод
В Perl 6 введён новый оператор… для задания последовательностей. Вот как это работает:

my @even-numbers  := 0, 2 ... *;    # арифметическая последовательность
my @odd-numbers   := 1, 3 ... *;
my @powers-of-two := 1, 2, 4 ... *; # геометрическая последовательность

Пример использования:

> my @powers-of-two := 1, 2, 4 ... *; 1;
1
> @powers-of-two[^10]
1 2 4 8 16 32 64 128 256 512

Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры7.4K
Комментарии 7

Случайности не случайны?

Блог компании Код БезопасностиКриптографияСистемное программированиеАлгоритмыФункциональное программирование
Аннотация
Статья посвящена систематизации основных положений о случайных и псевдослучайных последовательностях (СП и ПСП) чисел. Дан краткий обзор известных подходов к тестированию на случайность генерируемых последовательностей. Прикладное значение данной тематики определяется тем, что ПСП широко используются в криптографических системах защиты информации для выработки ключевой и вспомогательной информации (случайные числа, векторы инициализации и пр.).



Читать дальше →
Всего голосов 6: ↑3 и ↓3 0
Просмотры8.5K
Комментарии 13

Как посчитать перестановки. Лекция в Яндексе

Блог компании ЯндексНенормальное программированиеАлгоритмыМатематика
Некоторое время назад в московский офис Яндекса приезжал Игорь Пак — ученый с множеством научных работ, выпускник мехмата МГУ и аспирантуры Гарварда. Сейчас Игорь работает в Калифорнийском университете. Его лекция в Яндексе была посвящена различным классам последовательностей и перестановкам. В том числе прямо по ходу лекции он представил выкладки, опровергающие гипотезу Нунана и Зайлбергера — одну из ключевых в области перестановок.



Под катом — подробная текстовая расшифровка и большинство слайдов.
Читать дальше →
Всего голосов 57: ↑57 и ↓0 +57
Просмотры23K
Комментарии 12

Генерируем псевдослучайные ID а-ля Youtube

Блог компании Virgil Security, Inc.КриптографияАлгоритмыМатематика
Привет, %username%! Бывает необходимо генерировать ID не подряд, причем чтобы они гарантированно не повторялись. На youtube это используется для того, чтобы вы не могли брутфорсом получить все новые и старые видосики, так же это не редкость на разных файлообменниках и вообще везде где нужно предотвратить или хотя бы затруднить возможность прямого перебора значений.


К примеру, в системе moodle, которая использовалась у нас в универе для тестирования студентов, ID ответов были инкрементными и сквозными на всю базу. Логично предположить, что правильным ответом был тот, что с наименьшим ID в пределах вопроса. В общем, проблем с тестами у нас не было. Потом они перешли на GUID, но я к тому моменту уже выпустился, хехе.

Давайте рассмотрим несколько способов генерации таких ограниченных по длине последовательностей от самых простых до криптографически стойких.
Читать дальше →
Всего голосов 69: ↑63 и ↓6 +57
Просмотры21.5K
Комментарии 41

О формировании последовательностей в гипотезе Коллатца ( 3n+1 )

Занимательные задачкиАлгоритмыМатематика
Меня привлекают такие задачи, как проблема Коллатца. Они просты в формулировке и отлично тренируют голову, в особенности алгоритмического мышления, что очень полезно программисту.

Формулируется задача довольно просто:
Берём любое натуральное число n. Если оно чётное, то делим его на 2, а если нечётное, то умножаем на 3 и прибавляем 1 (получаем 3n + 1). Над полученным числом выполняем те же самые действия, и так далее.

Гипотеза Коллатца заключается в том, что какое бы начальное число n мы ни взяли, рано или поздно мы получим единицу.

Алгоритмически это выглядит так:

while (number > 1) {
	if (number % 2 === 0) number = number / 2;
	else number = 3 * number +1;
}
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры10.1K
Комментарии 10

DBA: перенос значений SEQUENCE между базами PostgreSQL

Блог компании ТензорPostgreSQLАдминистрирование баз данных
Как можно перенести в другую PostgreSQL-базу последнее назначавшееся значение «автоинкремент»-поля типа serial, если в таблице могли быть какие-то удаления, и «просто подставить max(pk)» уже не подходит?

Мало кто знает, что хоть PG и не предоставляет до версии 10 функций, чтобы узнать последнее значение последовательности для такого поля из другого сеанса, это все-таки можно сделать.


Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры4K
Комментарии 22

Выпуск#37: ITренировка — актуальные вопросы и задачи от ведущих компаний

Блог компании Spice IT RecruitmentБлог компании Леруа МерленЗанимательные задачкиПрограммированиеТестирование веб-сервисов
Привет! Принесли вам новую подборку задачек с собеседований.

Задачки — самые что ни на есть настоящие, любезно предоставленные Леруа Мерлен — крупнейшей в России компанией формата DIY.

Леруа Мерлен — компания с серьёзным ИТ, в том числе внутренней разработкой. Именно они создают самый современный и технологичный ритейл в России.



Если с лёгкостью решите все задачи из выпуска, советую тогда заодно ознакомиться со списком открытых вакансий в Леруа, мало ли, вдруг это судьба?

Для тех, у кого решение вызовет сложности, правильные ответы, как всегда, опубликуются через неделю. Кстати, ответы на задачи из предыдущего выпуска — здесь.
Читать дальше →
Рейтинг 0
Просмотры1.9K
Комментарии 7

Как я посчитал миллионное число Фибоначчи

Блог компании SkillFactoryЗанимательные задачкиPythonМатематика
Перевод

Все мы понимаем, что рекурсивное вычисление чисел Фибоначчи крайне неэффективно. Многим людям наверняка хотелось проверить, где пределы (не)эффективности, но не доходили руки, не хватало времени. Специально к старту нового потока курса Fullstack-разработчик на Python мы решили поделиться переводом статьи, автор которой шаг за шагом показывает возможности современного Python на примере разных подходов к вычислению чисел Фибоначчи. В статье вы найдёте проблемные значения n и сравнение производительности оптимального и неоптимального решений на графике.

Читать далее
Всего голосов 29: ↑15 и ↓14 +1
Просмотры6K
Комментарии 34