Определения
Квадратичные остатки
Целое число называется квадратичным вычетом по модулю если существует такое целое число , что:
Последовательность вызова
Мы определяем как минимальное количество вхождений одного и того же значения для всех пар квадратичных вычетов по модулю .
Первые 30 терминов:
Это A316975 (представленный мной).
Пример:
Квадратичные вычеты по модулю равны , , , , и .
Для каждой пары этих квадратичных вычетов мы вычисляем , что приводит к следующей таблице (где слева, а сверху):
Минимальное количество вхождений одного и того же значения в приведенной выше таблице равно (для , , и ). Следовательно, .
Твое задание
Вы можете либо:
- возьмите целое число и напечатайте или верните (0-индексированный или 1-индексированный)
- взять целое число и вывести или вернуть первых членов последовательности
- не вводите и печатайте последовательность навсегда
- Ваш код должен быть в состоянии обработать любое из 50 первых значений последовательности менее чем за 1 минуту.
- Если у вас достаточно времени и памяти, ваш код теоретически должен работать для любого натурального числа, поддерживаемого вашим языком.
- Это код-гольф .
code-golf
sequence
number-theory
Arnauld
источник
источник
+n
внутри(...)mod n
не имеет никакого эффекта? Если так, то это очень странно, это часть определения.(some_potentially_negative_value + n) mod n
.) Я думаю, что лучше иметь это в программировании, хотя, так как знак результата зависит от языка .a_p = round(p/4)
, что дает нам значения для всех квадратичных чисел. Но ситуация кажется сложной по степеням простых чисел, и случаи 3 mod 4 и 1 mod 4 необходимо обрабатывать отдельно.Ответы:
MATL , 14 байтов
Попробуйте онлайн! Или проверьте первые 30 значений .
объяснение
источник
Japt
-g
,2220 байтПотратил слишком много времени на то, чтобы понять, в чем дело, и не хватило времени на дальнейшую игру в гольф: \
Выводит
n
th член в последовательности. Начинает бороться при вводе>900
.Попробуйте или проверьте результаты на 0-50
объяснение
источник
Желе ,
1310 байт-1 благодаря Деннису (форсировать двоичную интерпретацию с ведущим
ð
)-2 больше также благодаря Деннису (так как пары могут быть дублированы, мы можем избежать
R
и a2
)Монадическая ссылка, принимающая положительное целое число, которое дает неотрицательное целое число.
Попробуйте онлайн! Или посмотрите первые 50 терминов .
Как?
источник
05AB1E ,
22201513 байт-2 байта благодаря @Mr. Xcoder .
Попробуйте онлайн или проверьте первые 99 тестовых случаев (примерно за 3 секунды) . (ПРИМЕЧАНИЕ. Унаследованная версия Python используется в TIO вместо новой перезаписи Elixir. Она примерно в 10 раз быстрее, но требует трейлинг
¬
(head), потому что.m
возвращает список вместо одного элемента, который я добавил в нижний колонтитул.)Объяснение:
источник
Ýns%ÙãÆI%D.m¢
, (не в наследство, в новой версии)Dâ
вместоã
..>.> И не знал, что.m
действовало по-другому в переписывании Эликсира. У меня изначально была новая версия, но я переключился на прежнюю версию после того, как заметил, что¥
она не работает (что вы исправили с помощьюÆ
). Я все еще использую наследие на TIO, потому что это намного быстрее для этой задачи.C (gcc) ,
202200190188187186 байтдвадвенадцатичетырнадцатипятнадцати байтов благодаря потолку catcat .Попробуйте онлайн!
источник
Python 2 , 97 байт
Попробуйте онлайн!
источник
К (нгн / к) , 29 байт
Попробуйте онлайн!
{
}
функция с аргументомx
!x
целые числа от0
доx-1
i:
назначить вi
x!
модификацияx
?
уникальныйr:
назначить вr
-\:
вычитать из каждого левогоr-\:r
матрица всех различийx!
модификацияx
,/
объединить строки матрицы=
group, возвращает словарь из уникальных значений в списки индексов появления#:'
длина каждого значения в словаре&/
минимальныйисточник
Wolfram Language (Mathematica) , 64 байта
Попробуйте онлайн!
источник
Рубин , 88 байт
Попробуйте онлайн!
источник
APL (Dyalog Unicode) ,
2824 байтаПопробуйте онлайн!
Префикс прямой функции. Использует
⎕IO←0
.Спасибо Корове кряка за 4 байта!
Как:
источник
2*⍨
→×⍨
,r←¨⊂r
→∘.-⍨
,{≢⍵}
→⊢∘≢