В этом задании вам разрешают создать полезную программу, которая может делать все, что вы можете написать в пределах 100 символов. Вам разрешено использовать меньше символов, но не больше.
Правила, просто чтобы защитить от стандартных лазеек, которые больше не смешны:
Ваша программа не может получить доступ к Интернету, если это действительно не нужно. Например, программа, которая показывает вопрос с наибольшим количеством голосов на этом веб-сайте, может использовать Интернет для проверки этого вопроса. Тем не менее, не разрешается просматривать Интернет, чтобы найти его реальный источник и запустить его.
Ваша программа не может быть переводчиком для языка, на котором она была написана. Однако переводчик Brainfuck на языке, не являющемся Brainfuck, подойдет.
Ваша программа не может выполнять внешние программы, которые делают именно то, что делает ваша программа. Например, вы не можете запустить
vim
и заявить, что ваша программа являетсяvim
реализацией.Ваша программа не может быть опасной для компьютера, на котором она запускается, и других компьютеров. Вам не разрешено писать подобные программы
rmdir /
(пример здесь намеренно не работает, не исправляйте его), и утверждаете, что это полезная программа для удаления всех файлов на компьютере.Ваша программа может быть настолько медленной, насколько вы хотите, и использовать столько ресурсов, сколько вы хотите, до тех пор, пока вы можете доказать, что она делает то, что хотела.
Вы не можете создавать язык специально для этой задачи. Тем не менее, вы можете сделать переводчик для вашего изобретенного языка на другом языке программирования.
источник
Ответы:
C - 47 байтов
Следующая программа выводит каждый документ, когда-либо написанный в истории человечества, вместе с каждым документом, который когда-либо будет написан, и множество интересных текстов, которые ни один человек никогда не придумает (наряду с «небольшим количеством мусора» между ними). Просто дай ему немного времени. Более того, каждый раз, когда вы запускаете его, он сначала выводит разные тексты! Если это не полезно! (И все это в пределах половины предела персонажа!)
Если вам не нужно, чтобы он выводил что-то еще каждый раз, вам нужно всего 41 байт !
Не совсем соответствует C99, но он плавно компилируется
gcc.exe (GCC) 4.7.0 20111220
.Правила государства
Нет проблем.
Некоторые вещи, эта программа выведет:
Как отмечает Деннис, случайность алгоритма может быть несколько улучшена (в пределах ограничения на число символов), используя
rand()^rand()>>16
вместоrand()
.источник
rand()
только псевдослучайный - он может не создавать никакого полезного текста, пока не зациклится.x
, у вас естьx[i] == (x[i - 3] + x[i - 31] + c[i]) % 256
, гдеc[i]
есть 0 с вероятностью 0,75 и 1 с вероятностью 0,25. Это в значительной степени означает, что он не может генерировать ничего из того, что вы упомянули.rand()^rand()>>16
вместо обычногоrand()
. Если вы ищете способы сэкономить на байтах, удалитеint
и%256
.unsigned char
.BBC BASIC, 84 символа
Графики решений дифференциальных уравнений первого и второго порядка.
Принимает как пользовательский ввод:
Вдохновленный программным обеспечением для решения дифференциальных уравнений под названием Polymath, которое я использовал, когда учился на инженера-химика. Мы вводим различные уравнения для реагентов и продуктов и видим, как со временем меняется вся реакционная система. Очень простое программное обеспечение (не намного более сложное, чем это), но гораздо более удобное для этой цели, чем Excel. К сожалению, я не могу сделать полный клон Polymath в 100 символов.
источник
Mathematica 76
Эта программа создает апплет, который отображает информацию о различных свойствах для любой из 240 стран. Открывается информация о взрослом населении Афганистана. Пользователь может изменить настройки страны и свойства с помощью раскрывающихся списков.
Mathematica без проблем взаимодействует с WolframAlpha.
По этой причине я считаю, что заявка соответствует требованию № 1 к задаче: «Ваша программа не может получить доступ к Интернету, если она действительно не должна ».
Этот довольно скромный апплет просто использует существующую функциональность на языке Mathematica. Короткое видео предоставляет некоторую дополнительную информацию о апплете.
Ниже приведен список первых 20 (из 223) объектов, связанных со странами. С помощью дополнительного программирования можно получить дополнительную информацию о странах и проанализировать эту информацию в Mathematica.
источник
bash, 100 байт
Этот скрипт печатает криптографически безопасный поток байтов. Он принимает необязательный аргумент, определяющий количество байтов, которые он должен печатать. По умолчанию вывод будет бесконечным.
Полезно в тех случаях, когда чтение из
/dev/urandom
слишком медленно.эталонный тест
Этот скрипт генерирует до 1,5 ГиБ в секунду на моем i7-3770.
В отличие от чтения чтения
/dev/urandom
удается генерировать едва 1 ГиБ в минуту .Как это устроено
head -c${1--1} /dev/zero
выводит указанное количество нулевых байтов. Если никакое количество не указано,${1--1}
равно -1, и напор выдает бесконечное количество.openssl enc -aes-128-ctr -pass file:/dev/random
использует AES-128 в режиме счетчика для шифрования нулевых байтов, считывая пароль с/dev/random
.tail -c+17
избавляется от 16-байтового заголовка вывода.источник
Javascript
Решить любое уравнение (ну не все, но должно работать с общими функциями ...)
Без ES6 (105 символов):
Просто дайте левую часть уравнения, предполагая, что правая часть равна нулю.
Пример :
r("x*x-9")
возвращается3
r("Math.sin(x)-1")
возвращает1.5707963394347828
(пи / 2)r("Math.pow(2,x)-512")
возвращается9
Предупреждение: может расходиться по некоторым функциям (или, если нет решения) и заморозить вкладку браузера или вернуть NaN.
источник
C - 99 символов
Эта программа позволяет шифровать и дешифровать любые данные.
использование
Сначала ... скомпилируйте это!
Если вы хотите зашифровать содержимое
mypreciousdata.txt
с помощью ключаmysecretkey
и сохранить результат вmyprotecteddata.txt
:Теперь, если вы хотите получить декодированное содержимое
myprotecteddata.txt
:Чем дольше ключ, тем безопаснее!
объяснение
Пожалуйста, найдите расширенный и прокомментированный код ниже:
источник
char
типа (обычно 256).GolfScript
Мне удалось втиснуть это в ровно 100 символов!
Он принимает ввод зашифрованного текста ROT-n и выводит декодированный текст. (Взято отсюда .) Например, если дано входное значение
pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom
, выходное значение равно8hellopeopleofprogrammingpuzzlescodegolfstackexchange
.источник
JavaScript
Создать уникальный идентификатор в JavaScriptПроизводит что-то вроде:
'h9d2f4aniimma7h1d3pbffi0foi8d3mf'
строки из 30-32 буквенно-цифровых символов
Производит что-то вроде:
'uq2sze67hsacq5mi'
Струны длиной 14-16.
источник
C ++ 57
Эта программа принимает символьный ввод и выводит его значение ASCII.
источник
,:
Фортран - 85 байт
Читает число и выводит сумму цифр . Полезно для задач Project Euler .
источник