Комментарии 40
«Конкурс» на лучшую программную реализацию, выводящую число ‘‘сорок два’’
#Python v3.6.4
print(42)
Я выиграл:
— Выполняет поставленную задачу
— Занимает 2 секунды чтобы написать
— Соответствует всем поставленным условиям (количество: 0)
— Имеет размер всего 9 байтов
<//sarcasm>
Ещё вариант, чтобы не повторяться:
import sys
sys.stdout.write('42')
Хорошее решение, ваш вариант тоже выполняет все заданные условия, хоть их количество и равно 0, но все же все условия выполнены!
это даже лучше, т.к. не зависит от версии Python (2 или 3). И даже, если память не изменяет, будет и в 1.6 работать.
НЛО прилетело и опубликовало эту надпись здесь
Спойлер не предотвращает немедленной загрузки изображений!
Мой вариант
using System;
namespace Best42
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("42");
}
}
}
Настоящая программа, выводящая 42, должна:
— требовать непомерных ресурсов
— работать ооооооочень долго
— выводить исключительно «голосом» и только в ответ на «Главный вопрос жизни, вселенной и всего такого».
Именно эти требования заданы неявно.
Так что даже приведенный автором вариант не соответствует…
— требовать непомерных ресурсов
— работать ооооооочень долго
— выводить исключительно «голосом» и только в ответ на «Главный вопрос жизни, вселенной и всего такого».
Именно эти требования заданы неявно.
Так что даже приведенный автором вариант не соответствует…
Дугласа Адамса «Автостопом по галактике»
Попахивает электроном. С ресурсами и скоростью там и так все хорошо (в смысле плохо, но хорошо для задачи), а для речи есть Web Spech API.
Как-то так
const question = "What is the meaning of life, the universe and everything?"
const recognition = new webkitSpeechRecognition();
recognition.lang = 'en-US';
recognition.interimResults = false;
recognition.maxAlternatives = 1;
recognition.onresult = (e) => {
if (e.results[0][0].transcript === question) {
printAnswer();
}
}
function printAnswer() {
let x, y = 0;
for (let i = Number.MAX_SAFE_INTEGER; i >= 4; i--) {
for (let j = Number.MAX_SAFE_INTEGER; j >= 2; j++) {
x = i;
y = j;
}
}
speechSynthesis.speak(new SpeechSynthesisUtterance(`${x}${y}`))
}
recognition.start();
В хроме сработает, но я бы рекомендовал перед запуском почистить функцию printAnswer
Вывод константы, серьезно?
Читайте и вдохновляйтесь, какими должны быть задачи на code golf:
codegolf.stackexchange.com
Читайте и вдохновляйтесь, какими должны быть задачи на code golf:
codegolf.stackexchange.com
Вот только статей с конкурсами и плясками (кодэгольфами) на хабре как раз и не хватает /sarcasm.
Конкурс в кавычках, потому что это никакой не конкурс, я правильно понимаю? Или есть жюри и призы? Автору просто захотелось запостить свой код, возможно весьма крутой (не владею питоном), но это не делает его хоть чуточку полезнее.
Предыдущая статья тоже «ни о чем», впрочем там хоть какой-то смысл был, а здесь? 15 скриншотов это статья?
Жду с нетерпением следущую статью, боюсь даже предположить, о чем (и да /sarcasm).
Конкурс в кавычках, потому что это никакой не конкурс, я правильно понимаю? Или есть жюри и призы? Автору просто захотелось запостить свой код, возможно весьма крутой (не владею питоном), но это не делает его хоть чуточку полезнее.
Предыдущая статья тоже «ни о чем», впрочем там хоть какой-то смысл был, а здесь? 15 скриншотов это статья?
Жду с нетерпением следущую статью, боюсь даже предположить, о чем (и да /sarcasm).
Конкурс в кавычках, потому что это никакой не конкурс, я правильно понимаю?
Не совсем. Мне и правда интересно, вдруг число ‘сорок два’ таит ещё какие-то загадки, о которых мне неизвестно.
просто захотелось запостить свой код, возможно весьма крутой (не владею питоном)
Почти. Захотелось показать открытие, на которое я наткнулся совершенно случайно и оформил в форме представленного кода на Python.
И чтобы понять код, который я представил, знать Python совсем не обязательно — достаточно просто прочитать комментарии к коду.
Неужели неинтересно, какой хэш-алгоритм выиграл?
Так?
import java.util.OptionalInt;
import java.util.stream.IntStream;
final public class Printer42{
public static void main(String[] args) {
OptionalInt iAm42 = IntStream.range(Integer.MIN_VALUE, Integer.MAX_VALUE)
.parallel()
.filter(i -> i == 42)
.findFirst();
System.out.println(iAm42.orElse(42));
}
}
using System;
using System.Linq.Expressions;
namespace Expressions42
{
class Program
{
static void Main(string[] args)
{
const string February = "февраль";
const string April = "апрель";
var first = Expression.Constant(February.Length);
var second = Expression.Constant(April.Length);
var multiply = Expression.Multiply(first, second);
var compiled = Expression.Lambda<Func<int>>(multiply).Compile();
Console.WriteLine(compiled());
}
}
}
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Навсегда запомнил число 42, когда в университете один преподаватель по системным технологиям на зачёте спросил «Что такое 42?». Пришлось читать книгу «Автостопом по галактике».
Matlab
42
42
D lang:
import std.stdio, std.random;
void main()
{
auto rnd = Random();
while(uniform!uint(rnd) != 42){}
"42".writeln;
}
}
.global _start
_start:
mov $1, %rax
mov $1, %rdi
lea str, %rsi
mov $LEN, %rdx
syscall
mov $60, %rax
xor %rdi, %rdi
syscall
str:
.ascii "42\n"
LEN = . - str
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls;
type
TForm1 = class(TForm)
procedure OnDocComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
procedure FormActivate(Sender: TObject);
private
wb1:twebbrowser;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.OnDocComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
var sl1:tstringlist;
s1:string;
i1,i2:integer;
begin
sl1:=tstringlist.Create;
sl1.Text:=twebbrowser(sender).OleObject.document.body.innerText;
while (i1<sl1.Count) and (s1='') do begin
if pos('question about life universe and everything',sl1[i1])>0 then begin
i2:=1;
while (i2<length(sl1[i1])) and (s1='') do begin
try s1:=inttostr(strtoint(sl1[i1][i2]+sl1[i1][i2+1])); except end;
i2:=i2+1;
end;
end;
i1:=i1+1;
end;
showmessage(s1);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
wb1:=twebbrowser.Create(self);
wb1.ParentWindow:=self.Handle;
wb1.Width:=0;
wb1.Height:=0;
wb1.OnDocumentComplete:=OnDocComplete;
wb1.Navigate('https://yandex.ru/search/?text=question%20about%20life%20universe%20and%20everything');
end;
end.
Запустил. Пока работает. Жду.
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.()\";";
var expected = "console.log(\"42\");";
var generated = "";
var found = false;
while (!found) {
generated = "";
for (var i = 0; i < expected.length; i++) {
generated += chars.charAt(Math.floor(Math.random() * chars.length));
}
found = generated == expected;
}
eval(generated);
Пять коротких вариантов
#!/usr/bin/env python3
# 1
print(sum(map(int, list(bin(4398046511103)[2:]))))
# 2 без использования 42 и явных мат. операций
print(int(oct(34)[-2:]))
# 3 без использования 4 и 2
print( int(hex(66).split('x')[1]) )
print(6*7)
# 4 без использования 4
print('Ч2')
# 5 без цифр вообще
print('XLII')
НЛО прилетело и опубликовало эту надпись здесь
<?php
echo __LINE__;
Этот код будет работать долго, прежде чем ответить)
let question = "The answer to life, the universe and everything";
def type FixedString <len(question) * size(char)> toString;
let check = False;
Start start{>openaccess(system.memory)<=>_hdrive
>math.calc
>TheBranch{.Set(Check) .Test}
}
Math math.oncalc>{for (FixedString)i in _hdrive:
if (whether i contains("The answer to life, the universe and everything")):
if i == 42: check = True;
}
Branch TheBranch{.ifTrue>text.display("42") .ifFalse>text.display("maybe 42, maybe not")}
# R
print((nchar("Конкурс на лучшую программную реализацию, выводящую число сорок два") - nchar("Главный вопрос жизни, вселенной и всего такого")) * 2)
На Go
package main
func main() {
print('*')
}
perl -E'say 42'
Реализация с помощью Python\Asciimatics
Python3
import math
print("%d%d" % (math.ceil(math.pi), math.trunc(math.e)))
Этот факт навёл меня на мысль/идею о том, что стоит запретить использование числа 42 в документации к своим проектам. А так как просто хардкодить это число — неинтересно, возникла идея устроить такой вот «конкурс».А Вы в курсе, что есть язык программирования o42a (статья на Хабре и сайт проекта)? Тогда придётся запретить сам язык из-за его имени. Уж коль пошла такая пьянка, приведу решение задачи на этом языке:
Use namespace 'Console'
@Main (
Print "42" nl
)
О всемирном запрете речь не идёт, разумеется. Я говорил про свои проекты.
Насчёт языка o42a… посмотрел немного.
Не вижу красивых примеров (например, на сайте nemerle.org есть хоть что-то).
Насчёт языка o42a… посмотрел немного.
Не вижу красивых примеров (например, на сайте nemerle.org есть хоть что-то).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
«Конкурс» на лучшую программную реализацию, выводящую число ‘‘сорок два’’