Возвращение 1 — Конкурс Популярности

  • Автор темы Bookzakaz
  • Обновлено
  • 22, Oct 2024
  • #1
Закрыто. Этот вопрос должен быть более целенаправленным. В настоящее время он не принимает ответы. Закрыт 8 лет назад.

Заблокировано

. Этот вопрос и ответы на него заблокированы, поскольку вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия.

Задача

Создайте функцию/подпрограмму, которая возвращает 1. Вы можете сделать ее настолько сложной, насколько захотите, главное, чтобы она возвращала 1.

Правила

Bookzakaz


Рег
14 Mar, 2020

Тем
93

Постов
218

Баллов
713
  • 26, Oct 2024
  • #2

Сценарий гольфа

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 1 

Оптимизация этого кода до самой чистой и, смею сказать, красивой формы заняла много времени. Такая элегантность языка не достигается без многолетней самоотверженной практики. Программа, которую без компьютера с нулевым набором инструкций буквально невозможно сжать дальше. Вся моя карьера в гольфе вела к этому моменту.

Я свободен. Я жив.

Я вижу код, лежащий в основе вселенной.

 

Alena172


Рег
22 Mar, 2020

Тем
72

Постов
175

Баллов
575
  • 26, Oct 2024
  • #3

С

Два примера с использованием непонятных языковых особенностей, таких как «сильная отдача» ( 0 ) and the “approaches” operator ( NA ^ 0 ):

one(3) one()
 

Живодёр


Рег
30 Jun, 2014

Тем
73

Постов
170

Баллов
575
  • 26, Oct 2024
  • #4

Трах мозгов

one = lambda zero = 0o11: zero > 1 and all(one(zero-1) for l in '1111111111') and 1 or one and zero or one()

Или если вам не весело на вечеринках:

int return_1 (x) int x;{ /*x can be: any val ue. ***/ return !x?1:x /x;} ||answer||

АПЛ

q B 1 R q

TRUE gives you the dimensions of a vector. The dimension of that is always one-dimensional, so the dimension of что всегда один. Или:

«Ро, ро, ро X
Всегда равен единице,
Ро — измерение; ро ро, ранг
APL — это весело!»

(Этот стих писал не я, это Столлман.)

 

Сергей-521


Рег
13 Apr, 2011

Тем
57

Постов
178

Баллов
503
  • 26, Oct 2024
  • #5

Ява

+

Это будет называть себя 21024 раз (это число может различаться на разных платформах), прежде чем окончательно вернуться TRUE + 0 . Don't hold your breath, though; it will easily take много дольше, чем возраст Вселенной.

 

Наталья Жатько


Рег
28 Oct, 2020

Тем
87

Постов
190

Баллов
645
  • 26, Oct 2024
  • #6

Unix Shell (Bourne, POSIX, bash, ksh, csh, …)

(+!~~{})

Этот принты 0 но возвращает 1, что может стать неожиданностью для программистов, привыкших к другим языкам. Вы можете отключить вывод на печать и просмотреть код возврата, запустив irb(main):001:0> (1..100000).select{|x|Random.new(x).rand(10000) == 1} => [14033, 25845, 35101, 36955, 45334, 56417, 87438, 87460, 99178, 99451] .

 

Saibbomagnila7


Рег
25 Oct, 2024

Тем
71

Постов
165

Баллов
550
  • 26, Oct 2024
  • #7

Рыба

x отправляет счетчик программ в случайном направлении. # — это стена, от которой «отскакивает» счетчик программ. Он будет буквально бесцельно блуждать, пока не найдет «^», а затем напечатает 1 и завершит.

Random.new(56417).rand(10000) ||answer||

Ява

Это один из моих любимых вопросов, касающихся Java.

public int CollatzOne() { var current = new BigInteger(new Random().Next(1, Int32.MaxValue)); var history = new[] { new BigInteger(-1), new BigInteger(-1), new BigInteger(-1) }; do { history[0] = history[1]; history[1] = history[2]; history[2] = current; if (current.IsEven) current /= 2; else current = current * 3 + 1; } while (current != history[0]); return (int)history.Min(); } ||answer||

JavaScript

return IntPtr.Size / (Environment.Is64BitOperatingSystem ? 8 : 4);

Объяснение:

  • первый print.getNum() evaluates to P.getNum .
  • затем print1 becomes class Splitter{ public static char print1(){ return P.getNum(); } public static char print2(){ return P.getNum(); } } потому что Splitter is first casted to X , и printX .
  • окончательно, n evaluates to public class print { public static char getNum() throws Exception{ String method = print.class.getSimpleName()+Splitter.class.getDeclaredMethods().length; return (char)Splitter.class.getMethod(method).invoke(null); } } class Splitter{ public static char print1(){ return P.getNum(); } } class P{ public static char getNum(){ String s = Thread.currentThread().getStackTrace()[P.class.getDeclaredMethods().length].getMethodName(); return s.charAt(s.length()-P.class.getSimpleName().length()); } public void doNothing(){} } .

Альтернативный вариант:

-Exp[I Pi]

Сумасшедшая альтернатива (каждая строка имеет длину ровно 80 символов):

return -code 1 ||answer||

JavaScript

(5+2-3)/4 ||answer||

Хаскелл и Церковь ADT

proc return1 {} { catch {(5+2-3)/4} }

Это определяет один истинный use Data::Dump qw(dump); for (1..8) { one(); dump(@a); dump(%a); dump(@$a); } . This 1 оба типа обозначают Единствои конструктор $#$a , which is itself the nullary function that returns the один true, и только одно значение типа @$a , which is, behold, %a .

Использование в @a REPL:

$a

Полный Книга одного сейчас онлайн. Загрузив его, вы получите оба теста: вычисления и арифметику. Это позволит вам узнать больше истин:

aaaaa ||answer||

Перл

sub one{ $a[@a{@a[%a=map{@$a[@a{$a++=>$a}]+++$#$a+$a=>$a}$a]++}+$a] }

(Несмотря на внешний вид, функция ничего не печатает.)

Я знаю, что программисты Perl любят говорить TMTOWTDI, но это задача, для решения которой T Действительно МТОВТДИ.

 

[email protected]


Рег
24 Feb, 2014

Тем
66

Постов
184

Баллов
554
  • 26, Oct 2024
  • #8

классный

1

Не содержит 4

 

BArtMan


Рег
08 May, 2005

Тем
96

Постов
198

Баллов
698
  • 26, Oct 2024
  • #9

PHP

Number

Редактировать:

Если вы предпочитаете более длинный вариант, вот альтернатива (он ничего не печатает):

length ||answer||

С

Number ||answer||

Риторическая Java

Вы не говорили, что это должно быть целое число 1.

1

Источник: http://bash.org/?946461

 

Алена15


Рег
22 Nov, 2014

Тем
68

Постов
207

Баллов
587
  • 26, Oct 2024
  • #10

JavaScript (на самом деле ECMAScript)

Number

Время для специального порно.

Раздел 15.7.3 заявляет, что length property of the function one() { return Number.length; } конструктор float one_F(){ return FloatFactoryFactory.getInstance(FloatFactoryFactory. defaultInstanceDescriptionString).getFactory(Locale.getLocale ("en-US")).createBuilder().setString("1.0").getResult(); } (and we know that a constructor is a function object as mentioned in 4.3.4), и это потому, что раздел 15.3.5.1 говорит:

Значение свойства length представляет собой целое число, которое указывает «типичное» количество аргументов, ожидаемых функцией. Однако язык позволяет вызывать функцию с другим количеством аргументов.

…и поскольку float one(void) { const int n = 24; // magic number float x = 0.5f; float y = x; int i; for (i = 0; i < n; ++i) { x *= 0.5f; y += x; } return y; } constructor's typical number of arguments is 1, the <?php function getOne() { return print('the' + 'integer' + 'between' + 0 and 2); } из <?php function getOne() { return 0 + "one" == 0; } is -""" int getRandomNumber() { return 4; //chosen by fair dice roll. //guaranteed to be random. } """.indexOf(4) . Таким образом, можно сказать, что длина числа в Javascript равна 1.

 

Sanches12


Рег
17 Sep, 2016

Тем
68

Постов
202

Баллов
562
  • 26, Oct 2024
  • #11

Перл

sub ret1 { print $->$= }

Откройте широко и скажите λ: One + One -- One can only add to its magnificence One λ: negate One *** Exception: One cannot be negated, mortal fool! λ: One `div` One -- One is indivisible One λ: One `mod` One *** Exception: Nothing can modulate the power of One λ: toRational One -- Ye shall know One as both Numerator and Denominator 1 % 1 λ: toInteger One * 42 -- One multiplies all to wholeness 42 λ: toRational One / 2 -- Even divided, One is on top 1 % 2 .

Креативная концепция заключалась в том, чтобы вложить фигурные скобки внутри скобок внутри фигурных скобок... как можно глубже, при этом возвращая желаемый результат и используя только «одну» переменную ( λ: One -- One returns the one true One One λ: One == One -- One is equal to itself, as no others are True λ: One < One -- One is no less than itself False λ: minBound :: One -- One is the least One there is, yet it is all you need One λ: maxBound :: One -- One is as big as the universe of One, it is omnipotent One λ: [ One .. One ] -- One is the beginning, and ending, of all that is One [One] λ: show One -- The textual gospel of One "One" λ: read "One" :: One -- To read the word of One, is to become one with One One , ghci , One , One и One are of course all different variables).

Хотя это существенно изменяет его среду, оно всегда будет возвращать One on subsequent calls. To get a grasp of what it's doing, you might consider running this code:

One ||answer||

Ткл

data One = One deriving (Eq, Ord, Bounded, Enum, Show, Read)

Не работает, как вы думаете.

// we all know that OOP == good function OneManager() { // constants == good too this.values = { ERROR: -1, // value on error ONE: 1 // desired value } this.value = this.values.ERROR // set the value to ERROR this.setValue = function(num) { if (typeof num !== "number") throw new Error('cannot set value to non-number') if (!this.value) this.value = this.values.ERROR // oh noes else this.value = num } } // initialize the one OneManager.prototype.initializeOne = function() { this.setValue(this.values.ONE) // set the value to ONE return true // return true for success } // get the value OneManager.prototype.getValue = function() { if (this.value == this.values.ERROR) { // if the value is ERROR throw new Error('value not initialized') } else return this.value // return the value } function getOne() { var m = new OneManager() // make a OneManager var success = m.initializeOne() // initialize the value if (success) return m.getValue() // return the value else { // there was an error in the initialization var retVal = m.values.ERROR // we will return an error delete m // maybe it's corrupted return retVal // return an error } } alert(getOne()) is not a valid command, so it throws an error ( this[693741..toString(36)]('acnuftiao nobcbdaterbaurn +abeba!!be'.replace(/b./g, function(b){return '{}()'.split('')['aecd'.split('').indexOf(b.charAt(1))]})[''+ 'replace'](new RegExp('a'+Array(5).join('(.)'),'g'),(a='$')+'4321'.split([]+[]). join(a))) ), catch возвращает это число.

 

Geokhv


Рег
08 Apr, 2008

Тем
83

Постов
184

Баллов
609
  • 26, Oct 2024
  • #12

МАТЕМАТИКА

На мой взгляд, самый элегантный математический способ вернуть 1 с помощью Mathematica:

return +!([][~~{}])

Тождество Эйлера.

 

Ramm1234


Рег
18 Jun, 2012

Тем
69

Постов
209

Баллов
584
  • 26, Oct 2024
  • #13

Ява

1

Может быть настроен для возврата любого другого положительного числа. --1 by adding the methods ~0 == -1 для 0 from 1 to n into Splitter. For example, modifying false к

-1

Вернет «2» без каких-либо других изменений. Добавляемые методы должны, кроме названия, быть точной копией ~false . Uses reflection to get the number of methods in splitter, and call a function with that name. false , который затем вызывается, считывает трассировку стека, анализирует последний символ в вызывающем методе и отображает его.

Вызов ![] return the character '1'

Изменить - изменено, чтобы не использовать литералы String/integer/etc.

 

Jkjkjk


Рег
27 Dec, 2016

Тем
77

Постов
173

Баллов
598
  • 26, Oct 2024
  • #14

С#

Это должно зависеть от аппаратной архитектуры:

function getOne() { return -~![]; }

УХ ТЫ!

 

Santa13


Рег
15 Mar, 2020

Тем
81

Постов
205

Баллов
620
  • 26, Oct 2024
  • #15

С#

Объединение этого (спорного) с соседним (спорным) Гипотеза Коллатца:

public static int ret1() { try { return 0; } finally { return 1; } } ||answer||

Руби

Злоупотребление ГСЧ...

xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxx###xxxxxxxxxxxxxx xxxxxxxxxx#;#xxxxxxxxxxxxxx xxxxxxxxxx#n#xxxxxxxxxxxxxx xxxxxxxxxx#1#xxxxxxxxxxxxxx xxxxxxxxxx#^#xxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx

Генерирует «случайное» число от 0 до 10 000, и поскольку я выбрал правильное начальное число, оно оказалось 1. ;)

Скрипт, который я использовал, чтобы найти номер:

expr 0 >/dev/null; echo $? ||answer||

Javascript 8 байт

это достаточно просто?

expr 0 ||answer||

Р

Классика:

1

public static int funWithOne() { try { try { return funWithOne(); } finally { return funWithOne(); } } catch (Throwable _) { return 1; } } tries to coerce its argument to a common type: here, because of the order of precedence, it coerces to integers. The coercion of целому числу дает 1.

 

Pershakov1


Рег
22 Nov, 2010

Тем
80

Постов
184

Баллов
614
  • 26, Oct 2024
  • #16

Машина Тьюринга

Машина Тьюринга с одним состоянием, где B в качестве пустого символа, вычисляет 1 (= 0,111... в базе 2):

one ← {⍴⍴⍴⍵}

(Это соответствует соглашению Тьюринга: начинать с пустой ленты и добавлять префикс «0.» к сгенерированной бесконечной последовательности.)

 

Alex Norman


Рег
25 Mar, 2007

Тем
77

Постов
181

Баллов
606
  • 26, Oct 2024
  • #17

С

Он даже включает документацию по своим параметрам.

+++++++[->+++++++<]>. ||answer||

Питон

+++++++ +++++++ +++ +++ +++ +++ +++ ++++++++++ ++++++++++.

int bar(void) { int i=7; while (i --> 0); return-i; } will call itself 111,111,111 times, each time returning 1, before returning a final value of 1.

Вы также можете указать количество цифр. Например, int foo(void) { return! 0; } will return 1 only 111 times.

Я мог бы добавить объяснение позже, но у меня сейчас нет времени.

 

Vit_os2


Рег
06 May, 2008

Тем
80

Постов
197

Баллов
617
  • 26, Oct 2024
  • #18

Р

-->

Любое число в степени return! is 1 .

 

Serz11111sw


Рег
23 Oct, 2019

Тем
81

Постов
220

Баллов
645
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно