งาน
สร้างฟังก์ชั่น / รูทีนย่อยซึ่งคืนค่า 1 คุณสามารถทำให้มันซับซ้อนตามที่คุณต้องการตราบใดที่มันส่งคืน 1
กฎระเบียบ
รายการที่มีผู้ชนะมากที่สุดนั้นก็เหมือนกับการประกวดความนิยมใด ๆ โชคดี!
:)
งาน
สร้างฟังก์ชั่น / รูทีนย่อยซึ่งคืนค่า 1 คุณสามารถทำให้มันซับซ้อนตามที่คุณต้องการตราบใดที่มันส่งคืน 1
กฎระเบียบ
รายการที่มีผู้ชนะมากที่สุดนั้นก็เหมือนกับการประกวดความนิยมใด ๆ โชคดี!
:)
คำตอบ:
สคริปต์กอล์ฟ
1
มันใช้เวลานานในการปรับแต่งโค้ดให้บริสุทธิ์ที่สุดและกล้าที่จะพูดว่า - รูปแบบที่สวยงาม ความงดงามของภาษาดังกล่าวไม่ได้เกิดขึ้นหากไม่มีการฝึกฝนเป็นเวลาหลายปี โปรแกรมที่ไม่มี Zero-Instruction-Set-Computer จะไม่มีการบีบอัดข้อมูลใด ๆ อาชีพนักกอล์ฟรหัสทั้งหมดของฉันได้นำไปสู่ช่วงเวลานี้
ฉันว่าง. ฉันยังมีชีวิตอยู่.
ฉันเห็นรหัสที่รองรับจักรวาล
without a Zero-Instruction-Set-Computer can literally never be compressed any further
. คอมพิวเตอร์ปัจจุบันของเราสามารถจัดการกับโปรแกรมแนะนำ 0 รายการได้อย่างง่ายดาย เพียงคุณมีภาษาที่มี: "โปรแกรมที่ว่างเปล่าส่งคืน 1" ในสเปคของมัน
สองตัวอย่างโดยใช้คุณสมบัติภาษาที่คลุมเครือเช่น“ ผลตอบแทนสูง”return!
) และตัวดำเนินการ“ วิธีการ” ( -->
):
int foo(void) {
return! 0;
}
int bar(void) {
int i=7;
while (i --> 0);
return-i;
}
return-i
คำหลักพิเศษ: P
+++++++
+++++++
+++
+++
+++
+++
+++
++++++++++
++++++++++.
หรือถ้าคุณไม่สนุกในงานปาร์ตี้:
+++++++[->+++++++<]>.
l
1
one ← {⍴⍴⍴⍵}
⍴
ให้มิติของเวกเตอร์ มิติของมันนั้นเป็นหนึ่งมิติเสมอดังนั้นขนาดของมันจะเป็นหนึ่ง หรือ:
"Rho, rho, rho ของ X
เท่ากับหนึ่งเสมอ,
Rho คือมิติ; rho rho, อันดับ
APL คือความสนุก!"
(ฉันไม่ได้เขียนกลอนนั้นมันเป็นของสตอลแมน)
# @: # @: #
(Spaces เป็นทางเลือก)
public static int funWithOne() {
try {
try {
return funWithOne();
} finally {
return funWithOne();
}
} catch (Throwable _) {
return 1;
}
}
นี้จะเรียกตัวเอง 2 1,024ครั้ง (ตัวเลขนี้อาจแตกต่างกันบนแพลตฟอร์มที่แตกต่างกัน) 1
ก่อนที่จะกลับมา อย่ากลั้นลมหายใจของคุณ มันได้อย่างง่ายดายจะใช้เวลามากนานกว่าอายุของจักรวาล
ปลา
x ส่งตัวนับโปรแกรมในทิศทางที่สุ่ม # คือกำแพงที่ตัวนับโปรแกรม "เด้ง" ปิด สิ่งนี้จะเดินไปรอบ ๆ อย่างไร้จุดหมายจนกว่าจะพบ "^" จากนั้นพิมพ์ 1 และเสร็จสิ้น
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxx###xxxxxxxxxxxxxx
xxxxxxxxxx#;#xxxxxxxxxxxxxx
xxxxxxxxxx#n#xxxxxxxxxxxxxx
xxxxxxxxxx#1#xxxxxxxxxxxxxx
xxxxxxxxxx#^#xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
x
เป็น?
ทุก#
เป็นr
, n
เข้า.
และออกเป็น;
@
อย่างไรก็ตามโปรแกรมนี้ <> ดูดีกว่า Befunge ที่เทียบเท่า คำแปลแสดงไว้ที่นี่: ideone.com/ZyuSKk
?
เป็นx
คนและทุกคน#
เป็น!
(ควรปรับการทำงานเมื่อได้ใส่เหมือนกันเกินไป) และ (แน่นอน) .
ไปn
และจะ@
ideone.com/gfApjT;
expr 0
สิ่งนี้พิมพ์ 0 แต่ส่งคืน 1 ซึ่งอาจเป็นเรื่องแปลกใจสำหรับโปรแกรมเมอร์ที่ใช้ภาษาอื่น expr 0 >/dev/null; echo $?
คุณสามารถปิดการพิมพ์ออกและดูรหัสการส่งคืนโดยการเรียกใช้
$(pidof progname) < 1
นี่เป็นคำถามเฉพาะ Java ที่ฉันโปรดปราน
public static int ret1() {
try {
return 0;
} finally {
return 1;
}
}
try
บล็อกทันทีจะทำการยิงfinally
ซึ่งจะคืนค่า 1 ก่อนที่return
คำสั่งอื่นจะสามารถทำงานได้
function getOne() {
return -~![];
}
คำอธิบาย:
![]
ประเมินให้false
ประเมิน~false
กลายเป็น-1
เพราะfalse
ถูกโยนครั้งแรกไป0
และ~0 == -1
และ--1
1
สำรอง:
return +!([][~~{}])
สลับบ้า (แต่ละบรรทัดยาว 80 ตัวอักษรอย่างแน่นอน):
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)))
// 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())
OO == good
หรือOO === good
?
data One = One deriving (Eq, Ord, Bounded, Enum, Show, Read)
นี้กำหนดหนึ่งOne
จริง นี้One
เป็นทั้งชนิดที่แสดงถึงเอกภาพและสร้างOne
ซึ่งเป็นตัวฟังก์ชั่น nullary ว่าผลตอบแทนหนึ่งความจริงและเป็นเพียงคนเดียวที่ค่าของชนิดซึ่งเป็นดูเถิดOne
One
การใช้งานในghci
REPL:
λ: 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
ตอนนี้Book of Oneฉบับเต็มออนไลน์แล้ว การโหลดทำให้คุณทั้งสอง Testaments: การคำนวณและเลขคณิต สิ่งนี้ช่วยให้คุณสามารถสำรวจความจริงเพิ่มเติมได้ที่:
λ: 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
sub ret1 { print $->$= }
ฟังก์ชั่นไม่ได้พิมพ์อะไรเลย)
ฉันรู้โปรแกรมเมอร์ Perl ชอบพูด TMTOWTDI แต่นี่เป็นงานที่ T MTOWTDI ใช้จริงๆ
<?php
function getOne() {
return 0 + "one" == 0;
}
แก้ไข:
หากคุณต้องการตัวเลือกที่ยาวกว่านี่เป็นอีกทางเลือกหนึ่ง (ไม่พิมพ์อะไรเลย):
<?php
function getOne() {
return print('the' + 'integer' + 'between' + 0 and 2);
}
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;
}
คุณไม่ได้บอกว่ามันต้องเป็นจำนวนเต็ม 1
float one_F(){
return FloatFactoryFactory.getInstance(FloatFactoryFactory.
defaultInstanceDescriptionString).getFactory(Locale.getLocale
("en-US")).createBuilder().setString("1.0").getResult();
}
ที่มา: http://bash.org/?946461
function one() { return Number.length; }
เวลาสำหรับสื่อลามกสเป็คบางอย่าง
ส่วนที่15.7.3ระบุว่าlength
ทรัพย์สินของตัวNumber
สร้างคือ1
(และเรารู้ว่าตัวสร้างเป็นวัตถุฟังก์ชั่นดังกล่าวใน4.3.4 ) และนั่นเป็นเพราะส่วน15.3.5.1พูดว่า:
ค่าของคุณสมบัติความยาวเป็นจำนวนเต็มที่ระบุจำนวนอาร์กิวเมนต์ทั่วไปที่คาดหวังไว้โดยฟังก์ชัน อย่างไรก็ตามภาษาอนุญาตให้ฟังก์ชั่นที่จะเรียกด้วยจำนวนข้อโต้แย้งอื่น ๆ
... และตั้งแต่Number
จำนวนทั่วไปคอนสตรัคของข้อโต้แย้งคือ 1, length
ของมีNumber
1
ดังนั้นอาจกล่าวได้ว่าความยาวของตัวเลขใน Javascript คือ 1
sub one{ $a[@a{@a[%a=map{@$a[@a{$a++=>$a}]+++$#$a+$a=>$a}$a]++}+$a] }
aaaaa
เปิดกว้างและการพูด
แนวคิดสร้างสรรค์คือการจัดฟันรังในวงเล็บภายในวงเล็บ ... ลึกที่สุดในขณะที่ยังคงกลับมาผลที่ต้องการและมีเพียงใช้ตัวแปร "หนึ่ง" ( $a
, @a
, %a
, @$a
และ$#$a
แน่นอนตัวแปรที่แตกต่างกันทั้งหมด)
แม้ว่าสิ่งนี้จะแก้ไขสภาพแวดล้อมของมันอย่างมีนัยสำคัญมันจะกลับมาเสมอ1
ในการโทรครั้งต่อไป หากต้องการทำความเข้าใจกับสิ่งที่กำลังทำคุณอาจลองใช้รหัสนี้:
use Data::Dump qw(dump);
for (1..8) {
one();
dump(@a);
dump(%a);
dump(@$a);
}
proc return1 {} {
catch {(5+2-3)/4}
}
ไม่ทำงานอย่างที่คุณคิด
(5+2-3)/4
ไม่ใช่คำสั่งที่ถูกต้องดังนั้นจึงมีข้อผิดพลาด ( return -code 1
) catch ส่งคืนหมายเลขนี้
ในความคิดของฉันวิธีการทางคณิตศาสตร์ที่หรูหราที่สุดในการคืนค่า 1 โดยใช้ Mathematica:
-Exp[I Pi]
เอกลักษณ์ของออยเลอร์
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(){}
}
สามารถปรับเพื่อส่งกลับจำนวนบวกอื่น ๆn
โดยเพิ่มวิธีprintX
การX
จาก 1 ถึง n ลงในตัวแยก ยกตัวอย่างเช่นการปรับเปลี่ยนSplitter
ไป
class Splitter{
public static char print1(){
return P.getNum();
}
public static char print2(){
return P.getNum();
}
}
จะส่งคืน '2' โดยไม่มีการเปลี่ยนแปลงอื่น ๆ ที่จำเป็น print1
วิธีการเพิ่มควรนอกเหนือจากชื่อที่เป็นที่ซ้ำกันแน่นอนของ ใช้การสะท้อนเพื่อรับจำนวนเมธอดในตัวแยกสัญญาณและเรียกใช้ฟังก์ชันที่มีชื่อนั้นP.getNum
ซึ่งถูกเรียกใช้แล้วอ่านการติดตามสแต็กและแยกวิเคราะห์อักขระตัวสุดท้ายในวิธีการเรียกใช้และแสดง
การโทรprint.getNum()
คืนอักขระ '1'
แก้ไข - แก้ไขเพื่อไม่ใช้ตัวอักษรสตริง / จำนวนเต็ม / ฯลฯ
C #
ควรขึ้นอยู่กับสถาปัตยกรรมฮาร์ดแวร์:
return IntPtr.Size / (Environment.Is64BitOperatingSystem ? 8 : 4);
ว้าว!
ผสานสิ่งนี้ (แย้ง) กับสิ่งที่อยู่ใกล้เคียง (ความขัดแย้ง) Collatz การคาดเดา :
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();
}
การละเมิด RNG ...
Random.new(56417).rand(10000)
สร้างหมายเลข "สุ่ม" ระหว่าง 0 ถึง 10,000 และเพราะฉันเลือกเมล็ดที่ถูกต้องมันจึงเกิดขึ้นเป็น 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]
ง่ายพอไหม
(+!~~{})
คลาสสิก:
TRUE + 0
+
พยายามบีบบังคับอาร์กิวเมนต์ของมันให้เป็นประเภทสามัญ: ที่นี่เนื่องจากลำดับที่มาก่อนมันจะรวมเป็นจำนวนเต็ม การขู่ว่าTRUE
จะเป็นจำนวนเต็มให้ 1
+TRUE
ไม่ทำงาน
+TRUE
TRUE
FALSE + 1
, am I correct?
Single-state Turing machine with B as the blank symbol, computes 1 (= 0.111... in base 2):
q B 1 R q
(This follows Turing's convention of starting with a blank tape, and prefixing '0.' to the generated infinite sequence.)
It even includes documentation on its parameters.
int
return_1
(x) int
x;{
/*x
can
be:
any
val
ue.
***/ return
!x?1:x /x;}
one = lambda zero = 0o11: zero > 1 and all(one(zero-1) for l in '1111111111') and 1 or one and zero or one()
one()
will call itself 111,111,111 times, each time returning 1, before returning a final value of 1.
You can also specify the number of digits. For example, one(3)
will return 1 only 111 times.
I might add an explanation later, but I really don't have time at the moment.
NA ^ 0
Any number to the power of 0
is 1
.