Учитывая дробь в формате m/n
(где m и n - простые целые числа), выведите соответствующую дробь Unicode. От вашей программы / функции не ожидается ввода данных, которые не соответствуют символу Unicode. Массивы, например, [2, 3]
в отличие от 2/3
, принимаются. m / n
в отличие от m/n
это тоже хорошо. Два отдельных входа m
и n
также действительны.
Фрагменты Unicode, которые должны быть обработаны, следующие:
½, ⅓, ⅔, ¼, ¾, ⅕, ⅖, ⅗, ⅘, ⅙, ⅚, ⅐, ⅛, ⅜, ⅝, ⅞, ⅑, ⅒
Таким образом, возможные входные данные являются следующими:
1/2, 1/3, 2/3, 1/4, 3/4, 1/5, 2/5, 3/5, 4/5, 1/6, 5/6, 1/7, 1/8, 3/8, 5/8, 7/8, 1/9, 1/10
Коды Unicode для символов следующие:
188 ¼
189 ½
190 ¾
8528 ⅐
8529 ⅑
8530 ⅒
8531 ⅓
8532 ⅔
8533 ⅕
8534 ⅖
8535 ⅗
8536 ⅘
8537 ⅙
8538 ⅚
8539 ⅛
8540 ⅜
8541 ⅝
8542 ⅞
Тестовые случаи
1/2 -> ½
1/3 -> ⅓
2/3 -> ⅔
1/4 -> ¼
3/4 -> ¾
3/8 -> ⅜
1/10 -> ⅒
Сделайте ваш код как можно короче; это код гольф.
code-golf
kolmogorov-complexity
unicode
0WJYxW9FMN
источник
источник
188 ¼, 189 ½, 190 ¾, 8528 ⅐, 8529 ⅑, 8530 ⅒, 8531 ⅓, 8532 ⅔, 8533 ⅕, 8534 ⅖, 8535 ⅗, 8536 ⅘, 8537 ⅙, 8538 ⅚, 8539 ⅛, 8540 ⅜, 8541 ⅝, 8542 ⅞
Ответы:
JavaScript (Node.js) ,
7877 байтСохранено 1 байт благодаря @HermanLauenstein
Принимает ввод в синтаксис карри
(m)(n)
.Попробуйте онлайн!
источник
String.fromCharCode()
, но я бы ожидал такого же количества байтов.Perl 6 ,
4843 байтаПопытайся
Попытайся
Expanded:
Обратите внимание, что поиск должен быть разделен так, чтобы он не возвращал другие символы Unicode, которые имеют одинаковые унивалы. (иначе было бы
(1..*)
)источник
UnicodeData.txt
. Например, U + 109BCMEROITIC CURSIVE FRACTION ELEVEN TWELFTHS
имеет свойство символовnv=11/12
. Существует около 1500 кодовых точек с непустыми числовыми значениями - гораздо больше, чем требуется для решения этой небольшой задачи. Это целые числа или рациональные числа.JavaScript (ES6),
8886848179 байтСохранено 2 байта благодаря @Arnauld
Не такой короткий, как другой ответ JS, но было забавно математически рассчитать кодовую точку каждой дроби.
Тестовый фрагмент
Показать фрагмент кода
Старый метод (82 байта):
На этом сохранено 4 байта благодаря @Arnauld.
источник
-~'3 1'[n-6]
APL (Dyalog) ,
8864 байтаПопробуйте онлайн!
-3 благодаря дзайме .
Использование 84-байтового подхода ETHproductions.
f←
Включен TIO не учитывается, так как он положил туда только , чтобы быть в состоянии проверить эту функцию.источник
SOGL V0.12 , 51 байт
Попробуй здесь!
использует отображение
(m + n*5)%33%22
Объяснение:
источник
Clojure, 127 байт
Анонимная функция, которая принимает входные данные как
"1/2"
и возвращает соответствующий символ.Прямое отображение от Clojure
Ratio
до дробного символа.comp
и тот факт, что карты Clojure являются функциями, действительно помог здесь. Мне нужно было передать строку ввода,read-string
чтобы оценить его как тип отношения, так как это позволяет мне отбросить все вздутие живота цитаты на карте.comp
позвольте мне сделать это без очков, что было приятно. «Полный» код будет:Посмотрев остальные ответы, я понял, что такой подход довольно наивен. Я ищу способы улучшить это.
источник
Swift ,
10682 байтаПорт @Arnaulds JavaScript ответ
Сохранено 24 байта благодаря @ Mr.Xcoder
Попробуйте онлайн!
источник
var f=
в счетчик байтов)Древесный уголь ,
774846 байтПопробуйте онлайн! Ссылка на подробную версию кода. Редактировать:
29 29байтов сохранены путем сопоставления символов ASCII с многобайтовыми символами. Объяснение:источник
Python 3 , 87 байт
Попробуйте онлайн!
или
Попробуйте онлайн!
источник
Python 3, 97 байт
источник
[n-2][m-1]
вместо этого.Vim Script, 67 байт
Функция работы с Vim в орграфах , которые введены после начала их iwth По-
ctrl-k.
видимому, соответствующийctrl-k
характер после того , какexe'norm
не отображается в блоке кода выше.источник