Определения
- Алгебраическое число - это число, которое является нулем ненулевого полинома с целыми коэффициентами. Например, квадратный корень из
2
алгебраический, потому что это нольx^2 - 2
. - Трансцендентное число - это действительное число, которое не является алгебраическим.
задача
Вы должны выбрать трансцендентное число.
Затем напишите программу / функцию, которая принимает положительное целое число n
и выводит n
десятую десятую цифру после десятичной запятой выбранного вами трансцендентного числа. Вы должны четко указать в своем представлении, какой трансцендентный номер используется.
Вы можете использовать 0-индексирование или 1-индексирование.
пример
e^2=7.389056098...
это трансцендентное число. Для этого номера:
n output
1 3
2 8
3 9
4 0
5 5
6 6
7 0
8 9
9 8
...
Обратите внимание, что начальное значение 7
игнорируется.
Как я уже упоминал выше, вы можете выбрать другие трансцендентные числа.
счет
Это код-гольф . Самый низкий результат в байтах побеждает.
Ответы:
Python , 3 байта
Попробуйте онлайн!
Принимает числовую строку, выводит ее наименьшую цифру как наименьший символ. Так , например,
254
дает2
. Десятичное число с этими цифрами начинаетсяЭто OEIS A054054 .
Заявить: это число
c
трансцендентноеДоказательство: обратите внимание, что
c
это очень разреженный: почти все его цифры равны нулю. Это связано с темn
, что большая вероятность тогоn
, что цифра равна нулю, равна нулю. Более того,c
имеет длинные пробеги последовательных нулей. Мы используем существующий результат, который утверждает, что это средствоc
трансцендентно.После этого вопроса по математике давайте
Z(k)
представим положениеk
й ненулевой цифрыc
, и пустьc_k
эта ненулевая цифра будет целым числом между1
и9
. Тогда мы выражаем разложение десятичного изc
, но только с ненулевыми цифрами, а также на сумму свышеk=1,2,3,...
изc_k/10^Z(k)
.Мы используем результат пункта 4 этого ответа Джорджа Лоутера: это
c
трансцендентно, если существует бесконечно много серий нулей, которые до сих пор составляют по крайней мере постоянную долю числа цифр. Формально должно бытьε>0
так, чтоZ(k+1)/Z(k) > 1+ε
для бесконечно многихk
. Мы будем использоватьε=1/9
Для любого количества цифр
d
, возьмитеk
сZ(k) = 99...99
сd
девятками. Такоеk
существует, потому что эта цифра вc
является9
, и поэтому ненулевой. Считая99...99
, что все эти числа содержат нулевую цифру, поэтому она отмечает начало длинного ряда нулей вc
. Следующая ненулевая цифра - толькоZ(k+1) = 1111...11
сd+1
единицами. СоотношениеZ(k+1)/Z(k)
немного превышает1+1/9
.Это удовлетворяет условию для каждого
d
, подразумевая результат.источник
min
сам по себе не принимает никакого ввода и не предоставляет никакого вывода, что, по-видимому, является требованием вопроса. Конечно, это ключевая функция в целом, но она ничего не делает без оператора генерации и печати, явного в «Попробуй онлайн».Pyth, 1 байт
Вход и выход являются строками. Функция берет первую цифру индекса. Полученное трансцендентное число выглядит так:
0.0123456789111111111122222222223 ...
Это трансцендентно, потому что это
1/9
плюс число, которое имеет отрезки нулей длины, по крайней мере, с постоянной долей числа. Основываясь на этом ответе math.stackexchange , это означает, что число трансцендентно.Есть отрезки нулей от цифры
100 ... 000
до199 ... 999
, поэтому отношениеZ(k+1)
кZ(k)
равно 2 бесконечно часто.Таким образом, указанное число минус
1/9
является трансцендентным, и поэтому указанное число является трансцендентным.источник
Python 2 , 19 байт
П - й цифра 1 , если п является степенью 2 и 0 в противном случае.
Попробуйте онлайн!
источник
n&~-n>0
короче кстати.брейкфук, 2 байта
Аналогично некоторым другим ответам, возвращает первую десятичную цифру и игнорирует остальные.
источник
Желе , 3 байта
Использует постоянную Лиувилля.
Попробуйте онлайн!
источник
Сетчатка, 4 байта
Возвращает первую цифру введенного номера. Поскольку этот порт был таким скучным, вот еще несколько портов:
(8 байт) Возвращает минимальную цифру введенного номера.
(25 байтов) Возвращает 1, если входное число является степенью 2.
(30 байт) константа Шампернаун.
источник
Brachylog 2, 7 байт
Попробуйте онлайн!
Вычисляет цифры константы Champernowne (возможно, умножить на десять из-за проблем с индексацией, которые здесь явно не имеют значения). По сути, это просто объединяет целые числа, а затем принимает n-ую цифру.
источник
⟦₁
?0123
это не число (оно имеет начальный ноль, что не вписывается в концепцию Брахилога о том, что такое число).Python 2, 13 байт
Вход и выход являются строками.
Цифра n числа является самой значимой цифрой n, когда она записана в десятичном виде.
источник
MATL , 7 байт
Здесь используется первое из двух приведенных здесь чисел, разделенных на 3 (что поддерживает трансцендентность ):
Вход основан на 1. Попробуйте онлайн! Или посмотрите первые 20 десятичных знаков .
объяснение
источник
JavaScript, 51 байт
Эта функция вычисляет
n
th цифру константы Champernowne. Добавитьf=
в начале и вызвать какf(arg)
. Обратите внимание, чтоn
1-индексированный.объяснение
Эта функция принимает один аргумент
n
. Затем он создаетn
строку -characters long из повторяющихся единиц. Затем он разбивает эту строку на массив единиц. После этого он перебирает каждый элемент массива и умножает их на их индекс в массиве, увеличенный на 1. Затем он объединяет массив""
(пустая строка) для формирования строки. Наконец, он возвращаетn
th-й элемент полученной String.Примечание . Тип возвращаемого значения всегда String .
Тестовый фрагмент
источник
Python 2, 43 байта
Константа чемпиона.
источник
n+1
?APL (Дьялог) , 3 байта
Попробуйте онлайн! (набор тестов генерирует диапазон чисел от
1
до10000
, преобразует их в строку, а затем применяет к2|⍴
ним последовательность ).Принимает входной номер в виде строки и возвращает его длину mod 2. Так
123
=>3 mod 2
=>1
.Последовательность начинается примерно так:
так что это можно обобщить так:
9 1s 90 0s 900 1s ...
Умножение этого числа на 9 дает нам число Лиувилля , которое, как доказывают, является трансцендентным.
источник
1 - 10^-9 + 10^-99 - 10^-999 + 10^-9999 - 10^-99999 + ...
, так что это число Лиувилля.Haskell,
25 байтов17 байтовКонстанта Champernowne может быть равна 0 или 1, поскольку C10 * .01 все еще трансцендентен.
Редактировать: согласно комментарию Nimis вы можете использовать монаду списка, чтобы уменьшить это до
источник
=<<
из списка монадыconcat.map
:(!!)$show=<<[1..]
.JavaScript, 73 байта
Это программа, которая вычисляет
n
десятую цифру константы Лиувилля, гдеn
это число ввода, заданное вызовом функцииg
какg(arg)
(иn
индексированное 1). Обратите внимание, что новая строка в коде необходима.объяснение
Программа состоит из двух функций,
f
иg
.f
является рекурсивной факториально-вычислительной функцией иg
является основной функцией программы.g
предполагает наличие единственного аргументаn
. Он определяет аргумент по умолчаниюr
со значением 0. Затем он перебирает все целые числа от 0 доn
и на каждой итерации проверяет, равна ли функция,f
примененная кi
(текущий индекс)n
, т. Е.n
Является ли она факториаломi
. Если это так,r
значение устанавливается равным 1. В конце функцииr
возвращается значение.Фрагмент для тестирования
Предупреждение: не помещайте очень большое значение в поле ввода Сниппета! В противном случае ваше устройство может зависнуть!
источник
Pyth,
754 байтаПопробуйте онлайн!
Использует константу Champernowne.
Сохранено
23 байта благодаря Leaky Nun.источник
jk
чтобы заменитьsm`d
, я считаю.S
вместоUh
?S
начинается с1
иU
начинается с0
.Java 8, 18 байт
То же, что ответ Денниса для Python 2 , число Фредгольма
источник
(n-1)
можно~-n
или--n
сохранить 2 байта. Или вы можете иметь точно такой же ответ Денниса :n->1>>(n&~-n)
или1>>(n&--n)
.Желе , 1 байт
Попробуйте онлайн!
1-я цифра цитируемого 0-индексированного входа. 1
1 См. Ответ Исаака для подтверждения действительности.
источник
Древесный уголь , 24 байта (неконкурентный)
Попробуйте онлайн!
Примечание: по состоянию на время поста, не работает,
n
гдеn
положительное значение, кратное 14.объяснение
источник
GetVariable(Pi)
? Итак, нетπ
предопределенной переменной?π
равняться пи, потому что это ASCII-ориентированный язык, а не математическийJapt ,
31 + 1 = 21 байтЕще один порт решения Feersum .
Принимает ввод в виде строки.
Попробуйте онлайн
объяснение
источник
g
для 1 байта :)TI-BASIC, 16 байтов
В основном проверяет, является ли вход
N
(1-индексированный) треугольным числом. Это то же самое, что возвращатьN
th-ю цифру 0.1010010001…, которая оказалась трансцендентной. Последовательность цифр OEIS A010054 .источник
Фурье, 16 байт
Попробуйте онлайн!
Как и другие ответы, выводит первую цифру ввода.
Объяснение кода:
источник
JavaScript (ES6)
Просто несколько портов некоторых других решений
Python-решение feersum , 12 байт
Показать фрагмент кода
Python-решение Дениса , 13 байт
Показать фрагмент кода
Python-решение xnor , 20 байт
источник
Brain-Flak , 6 + 3 (
-c
) = 9 байтПопробуйте онлайн!
1-я цифра ввода строки с 0 индексами (отсюда и
-c
флаг).источник
C #, 13 байт
Из решения Ферсума. Почти такое же решение, как порт js.
Попробуйте онлайн
источник
05AB1E ,
31 байтРЕДАКТИРОВАТЬ : Используя доказательство из других ответов, возвращает первую цифру ввода
1 индексируется для π (только до 100000 цифр)
Как это устроено
Или, если вы предпочитаете e (все еще с 1 индексом) (только до 10000 цифр)
Попробуйте онлайн!
источник
J, 2 байта
То же решение, которое используют все остальные:
Возвращает первую цифру n. IO на струнах
Константа Лиувилля, 9 байт
Возвращает,
1
если input является факториалом целого числа.Пи, 13 байт
Последняя не десятичная цифра пи умножается на 10 ^ n.
источник
Желе , 2 байта
Попробуйте онлайн!
Возьмите длину введенного числа по модулю 2. Эквивалентно этому ответу APL .
источник
Dreaderef , 5 байтов
Попробуйте онлайн!
Возвращает первую цифру ввода.
источник
Момема , 5 байт
Попробуйте онлайн!
Возвращает первую цифру ввода.
источник
Язык программирования Шекспира , 76 байт
Попробуйте онлайн!
источник