Напишите программу, которая определяет функцию, которая может проверять, является ли строковая переменная с именем «все, что вы хотите или введено пользователем», или нет. (piem = рассказ или стихотворение, в котором длины слова представляют цифры π ( из Википедии ))
Несколько примеров:
myfunction("I am clearly wrong") # False
myfunction("How I want a drink, alcoholic of course, after the heavy lectures involving quantum mechanics") #True (Taken from Wikipedia)
myfunction("Law ' s fine") # True
Вы должны удалить любые знаки препинания или перевода строки перед обработкой. Чистый код гольф, самые короткие победы
Дата окончания: вечер 10.01.2014
Различные ответы
- Сколько цифр нам нужно обработать? Более 10
- Интересно, как следует интерпретировать 0 в PI? Пропущено или 10 букв? Как 10 букв слова
- «переменная с именем piem» - значит, имя параметра должно быть piem? Нет, текст вопроса исправлен
- Веселым бонусом может быть решение, которое само по себе является пиамом. Если ваше решение является фишкой, вы получаете * 0.5 бонуса.
- Ради аргумента, _ всегда ли пунктуация? Вы можете решить, если это пунктуация или нет
- Непонятно, что подразумевается под "любой пунктуацией", которую я имею в виду. '"?! ;; ()
- Значит цифры должны быть посчитаны? И закон Ло будет ложным? Цифры следует рассматривать как буквы, закон в порядке = False; Закон в порядке = True
Комментарии
- Решение APL должно быть посчитано в байтах
- Если ваше решение работает на 100+ цифр числа пи, вы получаете бонус * 0,8
- Из-за большого интереса дата окончания - еще один день в будущем.
piem
? Это делает все текущие ответы неправильными.Ответы:
APL (39)
Он использует все цифры, которые обеспечивает константа pi интерпретатора APL, до предела 99. В моем случае (32-разрядный Dyalog APL 14) это было 16 цифр. 64-битная версия, вероятно, имеет больше цифр. Впрочем, для работы приведенных примеров достаточно 16 цифр.
Строки, содержащие больше, чем количество слов, потерпят неудачу , даже если все цифры, которые он может проверить, были истинными. (То же самое относится и к другим сообщениям на момент написания этой статьи.) Например, если бы было только 10 цифр, то «Как я хочу выпить» не получилось бы. Это можно исправить, но за счет 14 символов:
Эта версия будет принимать любую строку, где правильные первые N цифр.
источник
JavaScript
(169) (140) (137) (135)(63) для 17 цифр числа пиПо моей версии
Law's fine
иLaw ' s fine
верни оба правда.Новейшая версия (63) от Ingo Bürk и hsl
Новая версия (135) для 17 цифр числа Пи (спасибо Инго Бюрку):
Старая версия (169) для 32 цифр числа Пи:
источник
1e15*Math.PI+"2384626433832795"
for
Цикл не может быть добавлен таким образом.r=0
а затем просто циклr+=s[a].length!=p[a]
(вы можете опустить;
в конце). Затем вернитесь!r
.Рубин,
11310179 (98 * 0,8)объяснение
String
.999
десятичных знаков и превращается в строку с.
удаленным."Let's"
считается как два слова:"Let"
и"s"
.Array#map
для преобразования каждого слова в размер слова, объедините их вString
.String
начинаются символа с одинаковых символов.Я применил бонус для обработки 100+ цифр.
_
не рассматривается как пунктуация в этом решении.источник
_
относитесь к пунктуации._
всегда ли пунктуация? Как насчет предложений, таких какMy nickname on Stack Overflow is britishtea_500
.Mathematica, 123 байта * 0,8 = 98,4
Почти самая длинная подача на данный момент, но:
источник
Python -
130 127116 - 17 цифр числа ПиКак и в ответ @flawr «s ,
Law ' s fine
иLaw's fine
возвращают True.Спасибо @Emil за удаление 12 символов из программы.
источник
l
переменную и определяя функцию с помощью лямбды.Ява, 185
источник
питон 3, 17 цифр числа пи, 104
источник
;
на новую строку для удобства чтения. Кроме того, ряд пробелов может быть удален.Питон 3 - 129
Не учитывает пунктуацию:
источник
T-SQL
488383А теперь для большого решения T-SQL :)
Это создает встроенную табличную функцию, которая использует рекурсивный CTE для определения границ слов.Создает скалярную функцию, которая обрабатывает слова и PI до 31 десятичного знака (сначала 0). Это называется следующим образом
источник
CJam, 40
Непонятно, что подразумевается под «любой пунктуацией»; это решение удаляет
,.'"?!;;
символы.источник
Инструменты Bash и Unix, 111
источник
NodeJS 32 цифры 230 байт
Я не могу получить это короче с JS: D
источник