Không có chuỗi (hoặc số) được đính kèm


71

Nếu bạn thích điều này, hãy xem xét tham gia:


Tạo 12 đoạn / biểu thức , trong cùng một ngôn ngữ, dẫn đến các số từ 0 đến 10 và 42 tương ứng, nhưng không ghi bất kỳ dữ liệu số, chuỗi hoặc ký tự nào.

Dữ liệu tích hợp, như PI()ALPHABET(), đều ổn, và ví dụ như các hằng số U, X, Y, Z và A của CJam, và BLEND, CHORD, TRUNG TÂM, BREAK và DÒNG xử lý.

Mỗi đoạn mã phải có khả năng tự đứng vững, tức là chúng có thể không phụ thuộc lẫn nhau. Tuy nhiên, bên trong một đoạn mã duy nhất, bạn có thể chỉ định một biến và sử dụng nó một cách tự do, miễn là bạn tham chiếu trực tiếp đến tên đó và không thông qua một chuỗi chứa tên của nó.

Tất cả các đoạn mã phải hợp lệ trên máy tính của người gửi tại thời điểm gửi (như báo cáo của SE), nhưng không được dựa vào các điều kiện địa phương bất thường như số lượng tệp trong một thư mục, ngày hoặc giờ chính xác hoặc đầu vào cụ thể từ người dùng .

Ví dụ về đoạn trích hợp lệ

3: INT(LOG10(YEAR(TODAY()))) bởi vì nó vẫn đúng trong tương lai
4: CUBICROOT(LEN(CHARACTERSET())) vì một bộ ký tự 256 chữ rất phổ biến
8: SQRT(SYSTEMTYPE()) vì các hệ thống 64 bit rất phổ biến

Ví dụ về đoạn trích không hợp lệ

5: LEN(USERNAME()) bởi vì hầu hết mọi người không sử dụng Đăng nhập của quản trị viên Đăng nhập :-)
9: LOG10(SYSTEMMEMORY()) vì nó chỉ hoạt động trên các hệ thống có chính xác 1 GB bộ nhớ
42: CODE("*") vì nó chứa một chuỗi / ký tự bằng chữ

Kết quả của mỗi đoạn mã phải dẫn đến một số thực tế (giá trị, int, float, v.v.) có thể được sử dụng để tính toán thêm bằng cách sử dụng cùng ngôn ngữ với đoạn mã, tức là không phải là một chuỗi văn bản đại diện cho số đó.

Chỉ cho phép các ngôn ngữ dựa trên ký tự.

Điểm là tổng số byte của tất cả 12 đoạn được kết hợp. Các dòng mới phân tách các đoạn không được tính vào.

Lưu ý rằng các quy tắc trên có thể ngăn một số ngôn ngữ tham gia, ngay cả khi chúng hoàn thành Turing.

Câu hỏi thường gặp

Q Các chương trình có thể chấp nhận bất kỳ đầu vào?
A Có, nhưng bạn không chỉ yêu cầu nhập và nhập số liên quan.

Q Các chữ số vật lý (không phải dữ liệu) có được phép không?
A Có, vd LOG10().

Q Do Symbols trong Ruby được tính là chữ?
Một Yes.

Q Điểm có bao gồm các dòng mới giữa mỗi đoạn không?
Một số

Q TI-BASIC "dựa trên ký tự" có đủ hợp lệ không?
Một Yes.

Q Làm sai và đúng là số chữ?
Một Không, họ được chấp nhận.

H Chúng ta có thể sử dụng một số bằng chữ để gọi một hàm nếu đó là cách duy nhất và số đó không ảnh hưởng đến đầu ra của hàm?
A Có, nếu đó là cách thông thường để viết mã bằng ngôn ngữ của bạn.

Q Ngôn ngữ của tôi giả sử có [một cái gì đó] ở đầu mỗi chương trình / biểu thức. Tôi phải bao gồm nó hay các đoạn trích của tôi chỉ hoạt động nếu được đặt ở giữa chương trình / biểu thức?
A Họ chỉ nên làm việc ở giữa một chương trình / biểu thức.

Q Điều gì về regex nghĩa đen?
Một Tử Cấm, ngoại trừ các ngôn ngữ chỉ làm regexes.

Q Có phải một đoạn mã có thể in tất cả các số được chỉ định có thể chấp nhận không?
Một Không, họ phải được tách biệt và đôi bên cùng có độc lập.

H Tôi có thể giả sử một cái nồi hơi giống int main() {}...hoặc tương đương không?
Một Yes.

Q Kiểu dữ liệu đầu ra nào được phép?
A Bất kỳ kiểu dữ liệu số nào, như int, float, v.v.

H Tôi có cần in kết quả của từng đoạn không?
Một Không, làm cho kết quả có sẵn để sử dụng sau là đủ.

Q Các biến đặt trước có được phép không?
A Có và chúng sẽ được đặt lại (nếu thay đổi) cho mọi đoạn mã.

Q Có phải π và e được coi là số chữ?
Một Không, bạn có thể sử dụng chúng.

H Tôi có thể trả lại 4 và 2 trong các ô khác nhau cho 42 không?
Một Không, họ phải được kết nối như một số.

Q byte hay ký tự?
Một byte, nhưng bạn có thể chọn bất kỳ bảng mã mong muốn nào.

Q Có thể sử dụng các hàm hằng và các biến đặt trước như J 9:, Trên thực tế 9và Pretzel 9không?
A Có, nếu từ vựng là hữu hạn (19 cho J, 10 cho Thực tế và Pretzel).


Nếu 0-9 không phải là số chữ mà là các biến được điền trước, liệu chúng có phải là trò chơi công bằng?
Cyoce

@Cyoce Vậy 10 là {1, 0} chứ không phải 2 × 5?
Adám

không, chỉ đơn giản là một cú pháp khác cho các chữ không phải là cơ sở 10, vì vậy 0-9 không phải là chữ. Chúng giữ giá trị 0-9, nhưng được coi là biến
Cyoce

@Cyoce Vậy thì tốt rồi. Ngôn ngữ gì vậy?
Adám

bánh quy cây (một ngôn ngữ tôi đang làm việc).
Cyoce

Câu trả lời:


15

Lục giác , 13 byte

1
2
3
4
5
6
7
số 8
9
10
42

Hãy thử trực tuyến!

Trong Hexagony, 0thông qua 9các hàm nhân bộ nhớ hiện tại với 10, sau đó thêm số được biểu thị bằng tên hàm. Do đó, đoạn đầu tiên trống rỗng khi ký ức bắt đầu 0.

Ví dụ, nếu bộ nhớ hiện tại là 65, thực thi chức năng 3sẽ tạo ra bộ nhớ hiện tại 653.

(Để downvoters: downvote tất cả những gì bạn muốn; tôi đã sẵn sàng.)


Lén lút, nhưng được upvote của tôi và đánh dấu.
Adám

49

Funciton , 1222 byte

Ngoài các chữ số, có hai cách tôi có thể tạo ra một giá trị (bất kỳ giá trị nào) trong Funciton: biểu thức stdin và lambda. Stdin là một hộp duy nhất trong khi một biểu thức lambda đầy đủ đòi hỏi nhiều cú pháp hơn, vì vậy tôi sẽ sử dụng stdin. Tuy nhiên, trong khi stdin có thể là bất cứ điều gì, tất cả các công việc sau đây bất kể đầu vào được cung cấp là gì.

Tất cả các chức năng thư viện được sử dụng ở đây đã tồn tại trước khi thử thách được đăng.

0 (40 byte trong UTF-16)

╔╗┌┐
║╟┤└┼┬┐
╚╝└─┘└┘

Điều này sử dụng cú pháp thô cho ít hơn. Một giá trị không bao giờ nhỏ hơn chính nó, vì vậy kết quả của điều này là 0.

1 (52 byte trong UTF-16)

╔╗┌─╖┌─╖
║╟┤⌑╟┤ɕ╟
╚╝╘═╝╘═╝

trả về một chuỗi lười biếng chứa một phần tử duy nhất và ɕđếm số phần tử. (Chuỗi lười biếng đủ lười biếng để đoạn trích này thực sự không đánh giá stdin chút nào!)

2 (70 byte trong UTF-16)

╔╗┌─╖┌─╖┌─╖
║╟┤⌑╟┤ʂ╟┤ɕ╟
╚╝╘═╝╘═╝╘═╝

= 2¹. ʂtạo ra tất cả các chuỗi con của một chuỗi và do đó biến một chuỗi gồm n phần tử thành một với 2ⁿ.

3 (88 byte trong UTF-16)

╔╗┌─╖┌─╖┌─╖┌─╖
║╟┤⌑╟┤ʂ╟┤ɕ╟┤♯╟
╚╝╘═╝╘═╝╘═╝╘═╝

= 2 + 1. tăng giá trị lên 1.

4 (88 byte trong UTF-16)

╔╗┌─╖┌─╖┌─╖┌─╖
║╟┤⌑╟┤ʂ╟┤ʂ╟┤ɕ╟
╚╝╘═╝╘═╝╘═╝╘═╝

= 2².

5 (106 byte trong UTF-16)

╔╗┌─╖┌─╖┌─╖┌─╖┌─╖
║╟┤⌑╟┤ʂ╟┤ʂ╟┤ɕ╟┤♯╟
╚╝╘═╝╘═╝╘═╝╘═╝╘═╝

= 4 + 1.

6 (106 byte trong UTF-16)

╔╗┌─╖┌─╖┌─╖┌─╖┌─╖
║╟┤⌑╟┤ʂ╟┤ɕ╟┤♯╟┤!╟
╚╝╘═╝╘═╝╘═╝╘═╝╘═╝

= 3 giai thừa.

7 (110 byte trong UTF-16)

┌───┐┌─╖┌─╖┌─╖╔╗
│┌─╖├┤ɕ╟┤ʂ╟┤⌑╟╢║
└┤A╟┘╘═╝╘═╝╘═╝╚╝
 ╘╤╝

= A (2, 2) (Hàm Ackermann).

8 (118 byte trong UTF-16)

┌────┐┌─╖┌─╖┌─╖╔╗
│┌──╖├┤ɕ╟┤ʂ╟┤⌑╟╢║
└┤<<╟┘╘═╝╘═╝╘═╝╚╝
 ╘╤═╝

= 2 << 2 (dịch chuyển sang trái).

9 (128 byte trong UTF-16)

┌───┐┌─╖┌─╖┌─╖┌─╖╔╗
│┌─╖├┤♯╟┤ɕ╟┤ʂ╟┤⌑╟╢║
└┤×╟┘╘═╝╘═╝╘═╝╘═╝╚╝
 ╘╤╝

= 3 × 3.

10 (146 byte trong UTF-16)

┌───┐┌─╖┌─╖┌─╖┌─╖┌─╖╔╗
│┌─╖├┤♯╟┤ɕ╟┤ʂ╟┤ʂ╟┤⌑╟╢║
└┤+╟┘╘═╝╘═╝╘═╝╘═╝╘═╝╚╝
 ╘╤╝

= 5 + 5.

42 (170 byte trong UTF-16)

┌──────┐┌─╖┌─╖┌─╖┌─╖┌─╖╔╗
│┌─╖┌─╖├┤!╟┤♯╟┤ɕ╟┤ʂ╟┤⌑╟╢║
└┤♯╟┤×╟┘╘═╝╘═╝╘═╝╘═╝╘═╝╚╝
 ╘═╝╘╤╝

= 6 × (6 + 1).



4
Tôi ước tôi có thể nâng cao hơn một lần ...
ev3commander

26

JavaScript, 144 141 140 138 132 125 123 byte

Với sự giúp đỡ từ @ edc65 , @Sjoerd Công việc Postmus , @DocMax , @usandfriends , @Charlie Wynn@ Mwr247 !

result.textContent = [

+[]                          ,// 0  (3 bytes)
-~[]                         ,// 1  (4 bytes)
-~-~[]                       ,// 2  (6 bytes)
-~-~-~[]                     ,// 3  (8 bytes)
-~Math.PI                    ,// 4  (9 bytes)
-~-~Math.PI                  ,// 5  (11 bytes)
-~-~-~Math.PI                ,// 6  (13 bytes)
Date.length                  ,// 7  (11 bytes)
(a=-~-~[])<<a                ,// 8  (13 bytes) = (2 << 2)
(a=~Math.E)*a                ,// 9  (13 bytes) = (-3 * -3)
(a=-~-~[])<<a|a              ,// 10 (15 bytes) = ((2 << 2) | 2)
(a=Date.length)*--a           // 42 (19 bytes) = (7 * 6)

];
<pre id="result"></pre>


Hãy thử 4: - ~ Math.PI
edc65

@ edc65 Cảm ơn! Tôi nghĩ rằng sẽ có một cái gì đó tôi có thể làm với PI. :)
user81655

Đối với 5, 6 bạn cũng có thể sử dụng -~-~Math.PI-~-~-~Math.PIlưu một byte khác (hai lần).
Sjoerd Công việc Postmus

1
Lưu một trên 42 với (escape+NaN).length. Tái
bút:

1
Tôi sẽ nói rằng nó NaNđược tính là một con số, nhưng theo nghĩa đen nó không phải là một con số: P
ETHproductions

17

Chuột-2002 , 27 26 17 14 byte

Các đoạn đầu tiên đẩy 0-10, và ZR+đẩy 25sau đó 1725 17 + 42 =1.

A
B
C
D
E
F
G
H
I
J
K
ZR+

Nó nói "một đoạn trích hoặc biểu thức" để bạn có thể xóa tất cả!
ev3commander

3
@cat Tôi không thể nói cho người hỏi, nhưng tôi nghĩ điều đó có nghĩa là độc lập với nhau - không xác định chức năng trong một, sau đó sử dụng chức năng này trong một người khác. Tuy nhiên, mỗi đoạn mã không cần phải là toàn bộ chương trình, nó có thể giả sử int main() {}...tương đương nồi hơi sẽ làm cho nó chạy.
TessellatingHeckler

15

CJam, 27 24 byte

U    e# 0
X    e# 1
Y    e# 2
Z    e# 3
Z)   e# 3 + 1
YZ+  e# 2 + 3
ZZ+  e# 3 + 3
AZ-  e# 10 - 3
YZ#  e# 2³
A(   e# 10 - 1
A    e# 10
EZ*  e# 14 × 3

Cảm ơn @ MartinBüttner cho -1 byte!

Hãy thử trực tuyến!


12

Brainfuck, 70 byte

+
++
+++
++++
+++++
++++++
+++++++
++++++++
+++++++++
++++++++++
--[>+<++++++]>-

Mỗi dòng phải được chạy riêng.

10 đầu tiên là tự giải thích: chúng tôi tăng giá trị của ô thông qua mỗi cộng.

42 phức tạp hơn nhiều. Nó dựa vào thực tế là trình thông dịch Brainfuck sử dụng các ô 8 bit nhất, có nghĩa là tất cả các thao tác trên nó được thực hiện theo modulo 256. Các --ô đặt số 0 đến 254. Sau đó, chúng ta nhập một vòng lặp chạy cho đến khi ô # 0 là 0. Mỗi lần lặp thêm 1 vào ô số 1 và thêm 6 vào ô số 0. Vòng lặp này chạy 43 lần, vì vậy ô số 1 là 43. Cuối cùng, chúng tôi trừ đi 1 từ ô số 1 để làm cho nó 42.

Tôi đã nhận được 42 hiệu quả nhất từng được tìm thấy từ http://esolangs.org/wiki/Brainfuck_constants


1
@someonewithpc 4 và 2 khác với 42: OP cho biết Kết quả của mỗi đoạn mã phải dẫn đến một số thực tế có thể được sử dụng để tính toán thêm bằng cách sử dụng cùng ngôn ngữ với đoạn mã, tức là không phải là một chuỗi văn bản đại diện cho số đó . Bạn có thể thực hiện tính toán trực tiếp trên 42, nhưng nó không giống nhau cho 4 và 2 trong các ô riêng biệt.
p1xel

Ồ được thôi. Tôi đã bỏ lỡ điều đó ..
someonewithpc

12

Bóng tối , 339 303 byte

Đây là nơi Darkness thực sự tỏa sáng . Hiểu rồi? : ~)!

Không in (thay thế khoảng trắng bằng \sdòng đầu tiên vì nó sẽ không hiển thị khác):

\s

█ 

██ 

███ 

████ 

█████ 

██████ 

███████ 

████████ 

█████████ 

██████████ 

██████████████████████████████████████████ 

Với việc in ấn:

■ 

█■ 

██■ 

███■ 

████■ 

█████■ 

██████■ 

███████■ 

████████■ 

█████████■ 

██████████■ 

██████████████████████████████████████████■ 

Mỗi dòng phải được chạy riêng trong trường hợp này vì chương trình kết thúc trong ánh sáng (một khoảng trắng). Tuy nhiên, có thể viết điều này trên một hoặc một vài dòng trong cùng một chương trình.

Bóng tối thông thường (█) tăng một thanh ghi lên 1 và lệnh ■ (một số loại bóng tối nhỏ) xuất ra nội dung của thanh ghi.


Tôi không nghĩ rằng điều này yêu cầu các chương trình đầy đủ, chỉ là đoạn trích.
Erik the Outgolfer 6/10/2016

12

Perl 5, 86 75 71 66 byte

Tất cả ^Fđều là các ký tự điều khiển bằng chữ (0x06 trong ASCII) và do đó là một byte đơn.

$[          # array start index, defaults to 0                                  2
!$[         # !0 is 1                                                           3
$^F         # max sys file descriptor number, 2 on all sane systems             2
++$^F       # 2 + 1                                                             4
~-$]        # 5 - 1                                                             4
int$]       # $] is Perl version, int truncates                                 5
length$~    # 1 + 5                                                             8
~~exp$^F    # floor(e^2)                                                        7
$^F<<$^F    # 2 bitshift-right 2                                                6
-!$[+ord$/  # -1 + 10                                                          10
ord$/       # input record separator, newline by default, ord gets ASCII val    5
ord($"^$/)  # 32 + 10                                                          10

Cảm ơn msh210 vì đã lưu 11 byte và Dom Hastings cho 9 byte!



hạ cấp vì "số mô tả tệp tối đa sys, 2 trên tất cả các hệ thống lành mạnh = 3" nhưng tôi có 65+
mèo

(tôi chỉ nói đùa, tất nhiên là tôi đã ủng hộ)
con mèo

1
Bạn đã bao giờ đọc các bình luận trên một bài đăng SE và nghĩ, "wow, người ngu ngốc đã viết điều đó"? Đó là tôi ngay bây giờ, tại chính tôi.
mèo

!$[+ord$/ # -1 + 10- Tôi không hiểu. Trong dòng 2 bạn nói rằng !$[cung cấp cho bạn 1, không phải 1, vì vậy đoạn trích này cho 11.
Timwi

10

MATL, 30 byte

O
l
H
I
K
Kl+
HI*
KYq
HK*
IH^
K:s
IH^:sI-

H, IKlà các hằng số được xác định trước cho 2, 3 và 4 (như pi). Ollà các hàm trả về một ma trận các số không ( O) hoặc các hàm ( l), kích thước mặc định là 1x1. :tạo một vectơ và tính stổng của nó, vì vậy K:stạo một vectơ từ 1 đến 4 và tính tổng của nó để có được 10. Yqlà hàm nguyên tố thứ n, cũng KYqlà số nguyên tố thứ 4, 7.


YqChức năng đó (và cách thực hiện) là một gợi ý rất hay của bạn :-)
Luis Mendo

IK+cũng sẽ hoạt động tốt trong 7 ngày, nhưng nó hơi nhàm chán: P
David

10

Prolog, 113 99 byte

Đoạn trích:

e-e              % 0.0
e/e              % 1.0
e/e+e/e          % 2.0
ceil(e)          % 3
ceil(pi)         % 4
ceil(e*e-e)      % 5
ceil(e+e)        % 6
floor(e*e)       % 7
ceil(e*e)        % 8
ceil(pi*e)       % 9
ceil(pi*pi)      % 10
ceil(e^e*e)      % 42

Kết hợp các hằng số toán học epi theo các cách khác nhau được chuyển đổi thành int.

Chỉnh sửa: Đã lưu 14 byte bằng cách sử dụng số float cho 0-2.


1
có gì sai với e / e = 1?
Cấp sông St

@steveverrill: nó sẽ trở thành float (1.0). Tôi giải thích mô tả thách thức có nghĩa là các số phải là số nguyên. Hầu hết trong số này, nếu không tất cả có thể được rút ngắn bằng cách khác.
Emigna

1
Phao @steveverrill vẫn ổn. Chúng tôi chỉ cần đúng giá trị .
Adám

9

PHP, 157 145 91 byte

Lần đầu tiên đăng bài trên Code Golf, tôi nghĩ rằng tôi sẽ thử. Cuối cùng tôi sẽ khá hơn: P Nếu bạn thấy bất kỳ điểm rõ ràng nào (với bạn) nơi tôi có thể lưu các ký tự, hãy cho tôi biết.

EDIT: Nhận ra tôi không cần dấu chấm phẩy, vì đây chỉ là những đoạn trích.

EDIT2: Cảm ơn Blackhole vì nhiều gợi ý!

LC_ALL
DNS_A
~~M_E
~~M_PI
LOCK_NB 
LC_TIME
LOG_INFO
INI_ALL
IMG_WBMP
SQL_DATE
SQL_TIME
LOG_INFO*INI_ALL

5
PHP có rất nhiều phần mở rộng, và do đó, rất nhiều hằng số được xác định trước tốt hơn nhiều so với các phần tử toán học cho thử thách này;). LC_ALLcho 0 (-1 byte), DNS_Acho 1 (-3 byte), LOCK_NBcho 4 (-3 byte), LC_TIMEcho 5 (-7 byte), LOG_INFOcho 6 (-8 byte), INI_ALLcho 7 (-5 byte), cho
Hố đen

5
Chiếm IMG_WBMPlấy 8 (-4 byte), SQL_DATEcho 9 (-9 byte), SQL_TIMEcho 10 (-3 byte) và LOG_INFO*INI_ALLcho 42 (-11 byte). Do đó tổng cộng 51 byte được lưu! Các hằng số này hợp lệ ít nhất là trong PHP 5.6.1 trên Windows.
Hố đen

@Blackhole không phải LC_ALLlà một thứ phụ thuộc địa phương?
mèo

@cat Nó thực sự là một hằng số được sử dụng setlocale()để thay đổi tất cả các loại địa phương. Nhưng giá trị của hằng số tất nhiên là độc lập với miền địa phương :).
Hố đen

@Blackhole ah, tôi hiểu rồi!
mèo

9

Python 2, 191 159 158 157 156 149 146 byte

Trình đầu tiên của tôi bao giờ, tôi hy vọng tôi có mọi thứ đúng! Dựa trên thời gian tôi dành cho việc này, tôi đoán chắc chắn có một cái tốt hơn cho một vài trong số họ.

# 0 | Bytes : 5
int()

# 1 | Bytes : 5
+True

# 2 | Bytes : 6
-~True

# 3 | Bytes : 8
-~-~True

# 4 | Bytes : 10
-~-~-~True

# 5 | Bytes : 12
-~-~-~-~True

# 6 | Bytes : 14
-~-~-~-~-~True

# 7 | Bytes : 16
-~-~-~-~-~-~True

# 8 | Bytes : 15
a=True;a<<a+a+a

# 9 | Bytes : 19
a=True;(a<<a+a+a)+a

# 10 | Bytes : 20
int(`+True`+`int()`)

# 42 | Bytes : 16
~-len(`license`)
# Especially proud of this one !

Total byte count: 146

Rất cám ơn FryAmTheEggman!


Chào mừng bạn đến với PPCG :) Tôi không chắc chắn 100% về thử thách này nhưng tôi nghĩ sử dụng Truenhư một thành ngữ cho 1 nên được chấp nhận, vì tôi không biết khi nào chúng không tương đương như đoạn trích.
FryAmTheEggman

Oh bạn nói đúng ! Không sử dụng nó cho chính nó, bởi vì True is not 1nhưng đối với tất cả các tính toán dựa trên 1, nó sẽ giúp! Chỉnh sửa ngay.
Joachim Jablon

1
Sử dụng #8 len(`id(id)`). Sau đó 8, 9 và 10 sẽ ngắn hơn. Ngoài ra, có thể thêm một siêu liên kết để Dùng thử trực tuyến .
mbomb007 ngày

Bạn có thể nhận được 9 với len(`{()}`)11 byte và điều đó giúp bạn rút ngắn 7 đến 10 byte.
xnor

9

C #, không sử dụng, 234 byte

new int()                       // 0
-~new int()                     // 1
-~-~new int()                   // 2
-~-~-~new int()                 // 3
-~-~-~-~new int()               // 4
-~-~-~-~-~new int()             // 5
-~-~-~-~-~-~new int()           // 6
-~-~-~-~-~-~-~new int()         // 7
-~-~-~-~-~-~-~-~new int()       // 8
(int)System.ConsoleKey.Tab      // 9
(int)System.TypeCode.UInt32     // 10
(int)System.ConsoleKey.Print    // 42

Điều này nhàm chán hơn nhiều so với ban đầu tôi nghĩ nó sẽ xảy ra. Tôi đã có ý tưởng khá đa dạng, chẳng hạn như new[]{true}.Lengthtrue.GetHashCode()typeof(int).Name.Lengthuint.MinValuevv, nhưng new int()đánh bại họ cả.


Các quy tắc có cho phép bạn làm một cái gì đó như var a = new int();và sau đó sử dụng atrong mỗi đoạn mã không?
ldam

@LoganDam: Tôi thấy thú vị hơn nếu mọi biểu thức phải tự đứng vững. Đó cũng là lý do tại sao tôi không sử dụng bất kỳ usingtuyên bố nào .
Timwi

Oo: Whoa những cho 9/10/42 là gì
ev3commander

@ ev3commander: Chúng đơn giản là các giá trị enum được đặt tên ngắn nhất được xác định trong mscorlib có giá trị nguyên cần thiết. Đối với ConsoleKey.Tab, giá trị 9 không đáng ngạc nhiên (9 cũng là ASCII của ký tự tab). Những người khác có lẽ là tùy ý.
Timwi

Ngắn hơn cho 8:int a=-~-~new int();a<<a
LegionMammal978

9

PowerShell, 147 byte

Chúng sử dụng +để ngầm định mọi thứ cho số nguyên. Các số sau sử dụng Enums từ .Net Framework unerpinnings của PowerShell có giá trị đúng.

+$a                          #0, 3 bytes (unset vars are $null, +$null == 0)
+$?                          #1, 3 bytes (bool previous result, default $true, +$true == 1)
$?+$?                        #2, 5 bytes (same as #1, twice)
$?+$?+$?                     #3, 8 bytes (beats [Int][Math]::E)
$?+$?-shl$?                  #4, 11 bytes (-shl is shift-left)
$?+$?+$?+$?+$?               #5, 14 bytes
$?+$?+$?-shl$?               #6, 14 bytes (enum value, + casts to integer)
+[TypeCode]::Int16           #7, 18 bytes
$?+$?-shl$?+$?               #8, 14 bytes
+[consolekey]::tab           #9, 18 bytes
+[TypeCode]::UInt32          #10, 19 bytes
+[consolekey]::Print         #42, 20 bytes

#Total:                      147 bytes

  • -~-~-~được sử dụng trong JavaScript, các câu trả lời C # và PHP sẽ có - -bnot - -bnot - -bnottrong PowerShell.

  • x^ylũy thừa được sử dụng trong các câu trả lời Perl hoặc x**ytrong Python hoặc JavaScript ES7, sẽ là[Math]::Pow($x,$y)

  • hằng số ePi là các ký tự nặng [Math]::E[Math]::PI


x^ylà xor trong JavaScript. JavaScript (ES7) có **số mũ. Nguồn
mbomb007 ngày

@ mbomb007 À, cảm ơn - Tôi đã cập nhật ghi chú của mình về điều đó.
TessellatingHeckler

@ mbomb007 Tôi vẫn nghĩ điều đó thật ngớ ngẩn
SuperJedi224 15/03/2016

@ SuperJedi224 Tại sao? Đó là cách Python làm điều đó. Và xor là một toán tử quan trọng.
mbomb007

8

DC , 35 byte

K
KZ
IZ
Iv
EI-
FI-
IZd*
IIZ/
Ivd+
IIv-
IIZ-
IKZ-
I
EdE++

Để kiểm tra các đoạn trích nối thêm một fđể in ngăn xếp và chuyển chuỗi đó sang dc:

$ echo 'EdE++f' | dc
42

Tôi tin rằng EFđây là các chữ số (ngay cả khi chúng lớn hơn cơ số đầu vào). Bằng chứng cho điều này là chúng kết hợp dưới dạng chữ số; ví dụ: F0> 150. Bạn có thể thấy hành vi tương tự với các chữ số thập phân sau khi bạn thay đổi cơ số đầu vào và đầu ra.
Toby Speight

Có rất nhiều câu trả lời khác sử dụng những thứ tương tự ... tại sao tôi phải là người duy nhất không ổn?
yeti

Bạn không nên - nếu có các giải pháp khác sử dụng chữ số, thì chúng cũng không phải là câu trả lời hợp lệ.
Toby Speight

1
Tôi không quan tâm nữa! Codegolf thậm chí chấp nhận một chương trình thiết lập mandelbrot đồ họa như là giải pháp cho nhiệm vụ viết chương trình mandelbrot nghệ thuật ascii ... codegolf cần thiết lập lại lớn và khi được khởi động lại tôi có thể hoặc không quan tâm đến các quy tắc nữa ...: -Þ
yeti

7

TI-BASIC, 41 byte

0 ~ 10:

X
cosh(X
int(e
int(π
-int(-π
int(√(π³
int(π+π
int(e²
int(eπ
int(π²
Xmax

42:

int(π²/ecosh(π

Trong TI-BASIC, tất cả các biến một chữ cái chưa được khởi tạo bắt đầu từ 0 và Xmax(ranh giới cửa sổ bên phải của màn hình đồ thị) bắt đầu từ 10.

Hằng số toán học πmột byte , nhưng elà hai byte.


Không được coi là dữ liệu số?
vsz

@vsz có lẽ, nhưng nó không phải là một số theo nghĩa đen. Các op thậm chí còn nói như vậy.
SuperJedi224

@NBZ điểm rất tốt. Lỗi của tôi.
GamrCorps

6

Python 2, 306 275 274 byte

Tôi đã sử dụng thực tế là với bất kỳ x (số nguyên nào chứ không phải 0) biểu thức x/xbằng 1 và chơi xung quanh với một số thao tác bitwise.

Tôi đã điều chỉnh các đoạn sao cho chúng vẫn đáp ứng các yêu cầu (cảm ơn @nimi, điều này đã tiết kiệm cho tôi 24 byte), nhưng bạn phải kiểm tra chúng theo cách thủ công. Đây là mã và số byte riêng lẻ:

zero.py Bytes: 7
len({})
--------------------------
one.py  Bytes: 12
r=id(id)
r/r
--------------------------
two.py  Bytes: 17
r=id(id)
-(~r/r)
--------------------------
three.py    Bytes: 20
r=id(id)
-(~r/r)|r/r
--------------------------
four.py Bytes: 20
r=~id(id)/id(id)
r*r
--------------------------
five.py Bytes: 26
r=~id(id)/id(id)
(r*r)|r/r
--------------------------
six.py  Bytes: 25
r=~id(id)/id(id)
(r*r)|-r
--------------------------
seven.py    Bytes: 27
r=~id(id)/id(id)
-~(r*r|-r)
--------------------------
eight.py    Bytes: 24
r=-(~id(id)/id(id))
r<<r
--------------------------
nine.py Bytes: 29
r=-(~id(id)/id(id))
r-~(r<<r)
--------------------------
ten.py  Bytes: 31
r=~id(id)/id(id)
-r*((r*r)|r/r)
--------------------------
answer.py   Bytes: 37
r=-(~id(id)/id(id))
(r<<r*r)|(r<<r)|r
--------------------------
Total byte count: 274

Bạn có thể lưu byte bằngi=id(id);r=~i/i
Cyoce

6

Toán ++, tổng cộng 92 byte

0 (1 byte): a

1 (2 byte):!a

2 (3 byte):_$e

3 (4 byte): _$pi

4 (7 byte): _$e+_$e

5 (8 byte): _($e+$e)

6 (9 byte): _$pi+_$pi

7 (8 byte): _($e*$e)

8 (9 byte): _($e*$pi)

9 (10 byte): _($pi*$pi)

10 (12 byte): _$e*_($e+$e)

42 (19 byte): _($pi+$pi)*_($e*$e)


5

Javascript (Trình duyệt Env), 155 136 130 byte

+[]
-~[]
-~-~[]
-~-~-~[]
-~-~-~-~[]
-~-~-~-~-~[]
-~-~-~[]<<-~[]
-~-~-~-~-~-~-~[]
-~[]<<-~-~-~[]
~(~[]+[]+-[])
-~[]+[]+-[]
-~(top+top.s).length // Requires browser environment

Cảm ơn:
@Ismael Miguel : 155 -> 136 -> 130 byte


1
Bạn có thể sử dụng -~[]+[]+-[]để sản xuất 10. Nó sẽ trả về một chuỗi, nhưng nó vẫn có thể sử dụng như một số. Ngoài ra, bạn có thể sử dụng -~(top+top.s).lengthđể tính toán 42(-8 byte) và loại bỏ sự phụ thuộc của bạn vào Google Chrome. Để tiết kiệm thêm 3 byte, hãy sử dụng (P=Math.PI)*P>>+[]để tính 9.
Ismael Miguel

1
Xin lỗi, quên một vài byte bạn có thể cạo. Bạn có thể sử dụng ~(~[]+[]+-[])để tạo 9. Điều đó sẽ cắt giảm thêm một vài byte.
Ismael Miguel

tò mò, +[12]cho 12+[1, 2]cho NaN. Tôi ghét JS
con mèo

2
@cat Đó là vì hệ thống diễn viên kỳ lạ của JavaScript. Mảng được truyền tới các chuỗi như [1,2,3]=> "1,2,3"và các chuỗi được truyền thành các số như "12"=> 12nhưng nếu có các ký tự không có số trong chuỗi thì việc trả về các chuỗi NaN. +[1,2]chuyển thành một chuỗi sau đó một số nhưng chuỗi chứa dấu phẩy "1,2"sẽ trở thành NaN.
dùng81655

@ user81655 mà. Là. HORRID.
mèo

5

Nghiêm túc, 39 33 byte

Những thứ trong ngoặc đơn là giải thích:

 (single space, pushes size of stack, which is 0 at program start)
 u (space pushes 0, u adds 1 (1))
 ⌐ (space pushes 0, ⌐ adds 2 (2))
 u⌐ (space pushes 0, u adds 1 (1), ⌐ adds 2 (3))
 ⌐⌐ (space pushes 0, ⌐⌐ adds 2 twice (4))
 ⌐P (space pushes 0, ⌐ adds 2 (2), P pushes the 2nd prime (5))
Hl▓ (H pushes "Hello, World!", l pushes length (13), ▓ pushes pi(13) (6))
QlP (Q pushes "QlP", l pushes length (3), P pushes the 3rd prime (7))
Ql╙ (Q pushes "QlP", l pushes length (3), ╙ pushes 2**3 (8))
úl▓ (ú pushes the lowercase English alphabet, l pushes length (26), ▓ pushes pi(26) (9))
 u╤ (space pushes 0, u adds 1 (1), ╤ pushes 10**1 (10))
HlPD (H pushes "Hello, World!", l pushes length (13), P pushes the 13th prime (43), D subtracts 1 (42))

Hexdumps chương trình:

20
2075
20a9
2075a9
20a9a9
20a950
486cb2
516c50
516cd3
a36cb2
2075d1
486c5044

Cảm ơn quintopia cho 6 byte!


1
Tôi cho rằng Nghiêm túc sử dụng một bảng mã 256 char bao gồm các ký tự đồ họa giả?
Adám

2
@NBZ CP437
Mego

Bạn có thể lưu một byte vào ngày 6 với Hl▓
quintopia

Ý tưởng tương tự với ú tiết kiệm một byte vào ngày 9
quintopia

HlPDlưu 2 byte trên 42 và QlPlưu một byte trên 7, và Qlªlưu một byte trên 9 và Ql╙lưu một byte vào 8. Tôi nghĩ rằng điều đó nghiêm túc giảm xuống còn 33 byte, buộc Pyth.
quintopia

5

dc, 42 byte

K
zz
OZ
zzz+
OZd*
OdZ/
zzzz*
Ozz+-
OdZ-
Oz-
O
Od+dz++

Các kết quả

0
1
2
3
4
5
6
7
8
9
10
42

Không có nhiều cách để tạo số mới với dc. Tôi sử dụng O: cơ sở đầu ra, ban đầu 10; K: độ chính xác, ban đầu 0; zđộ sâu chồng, ban đầu 0; Zchữ số có nghĩa của toán hạng. Chúng tôi kết hợp những điều này với các toán tử số học thông thường.

Chương trình kiểm tra

#!/bin/bash

progs=(                                         \
    "K"                                         \
    "zz"                                        \
    "OZ"                                        \
    "zzz+"                                      \
    "OZd*"                                      \
    "OdZ/"                                      \
    "zzzz*"                                     \
    "Ozz+-"                                     \
    "OdZ-"                                      \
    "Oz-"                                       \
    "O"                                         \
    "Od+dz++"                                   \
)

a=0
results=()
for i in "${progs[@]}"
do
    results+=($(dc -e "${i}p"))
    (( a+=${#i} ))
done

echo "#dc, $a bytes"
echo
printf '    %s\n' "${progs[@]}"
echo
echo '##Results'
echo
printf '    %s\n' "${results[@]}"

4

Toán học, 101 byte

a-a
a/a
⌊E⌋
⌈E⌉
⌈π⌉
⌊E+E⌋
⌈E+E⌉
⌊E*E⌋
⌈E*E⌉
⌈E*π⌉
⌈π*π⌉
⌊π*π^π/E⌋

Tôi khá chắc chắn một số trong số này là tối ưu. Những dấu ngoặc tròn thực sự đắt tiền.

Để thống nhất, hai cái đầu tiên cũng có thể E-EE/Edĩ nhiên, nhưng tôi nghĩ rằng nó khá tiện lợi để có được 01từ một tính toán với các biến không xác định.


@NBZ Xin lỗi, quên về 0. Nếu anhận được giá trị 0sau đó, đó không phải là vấn đề, miễn là nó không được sử dụng khi a/ađược đánh giá.
Martin Ender

@NBZ Số lượng byte chỉ đơn giản là số byte UTF-8.
Martin Ender

4

Japt , 34 33 30 byte

Lưu 1 byte nhờ @ThomasKwa

T
°T
C-A
D-A
E-A
F-A
G-A
°G-A
Iq
´A
A
H+A

Dưới đây là ý nghĩa của từng ký tự khác nhau:

T    0
A    10
B    11
C    12
D    13
E    14
F    15
G    16
H    32
I    64
q    sqrt on numbers
°    ++
´    --

Japt có lấy số thập lục phân theo mặc định không? Nếu vậy, thì A đến F sẽ là chữ số ...
Adám

@NBZ A-Ilà các biến, theo mặc định, được gán cho các số khác nhau, như được hiển thị ở trên. A-Fđược chỉ định đến 10-15. Điều này có làm mất hiệu lực các biến?
Sản xuất ETH

Không. Tôi chỉ tự hỏi nếu, nói 12AB3 là hợp lệ. Bây giờ tôi biết nó không phải là. Không có chữ ở đây, di chuyển dọc. :-)
Adám

4

Tuyệt vời , 98 byte

Không thú vị lắm, nó phụ thuộc vào các ?nthiết bị biến bất kỳ viên bi nào thành giá trị ngẫu nhiên trong phạm vi 0..n (bao gồm) một tác dụng phụ của việc này là ?0biến bất kỳ viên bi nào thành 0 bất kể đầu vào. Tôi nghĩ rằng việc sử dụng chữ được cho phép vì giá trị không ảnh hưởng đến kết quả và không có cách nào khác để gọi hàm một lần trong Marbelous.

0:

00  # A hexadicemal literal: value 0
?0  # Turn any marble into a random value from the range 0..0 (inclusive)

1:

00
?0
+1  # increment by one

...

9:

00
?0
+9

10:

00
?0
+A  # increment by 10

42:

00
?0
+L  # increment by 21
+L

Nó chắc chắn trông giống như 0 ... L là chữ số.
Adám

2
@NBZ Không phải vậy, bạn không thể sử dụng chúng một cách độc lập. +0 đến + Z giống như các hàm dựng sẵn. Thật nhàm chán nhưng hợp lệ.
overactor

4

> <> , 86 byte

  • 0: ln;
  • 1: lln;
  • 2: llln;
  • 3: lll+n;
  • 4: lll:+n;
  • 5: llll+n;
  • 6: llll++n;hoặcllll:+n;
  • 7: lllll+n;
  • số 8: lllll:+n;
  • 9: lllll++n;hoặcllllll+n;
  • 10: llll+:+n;hoặclll:l+*n;
  • 42: llll*ll+*n;

Dựa vào kích thước ngăn xếp để có được chữ của nó.


Bạn có thể có thể loại bỏ ntừng cái vì các hàm trong các ngôn ngữ dựa trên ngăn xếp có thể để đầu ra trên ngăn xếp cho -11 byte.
redstarcoder

@redstarcoder sau đó tôi thậm chí có thể loại bỏ ;tổng cộng 22 byte và xem xét kết thúc chức năng đạt được ở cuối dòng, nhưng nó hơi mơ hồ vì ><>không có chức năng ngoài luồng.
Aaron

Về mặt kỹ thuật, nếu bạn muốn các hàm vào ><>, các hàm của bạn phải chấp nhận vị trí trả về (x & y) trên ngăn xếp ngoài các tham số của chúng, hãy đảm bảo rằng các hàm này không bị cản trở trong khi thực hiện các phép tính ( [có ích trong ngữ cảnh đó), sau đó nhảy đến vị trí quay trở lại sau khi thực hiện xong. Tôi đã thực hiện POC cách đây một thời gian, kiểm tra xem bạn có hứng thú không
Aaron

Tôi thực sự đã thấy bài viết của bạn trước đây, và làm việc tốt! Tôi đã làm một bài meta về sự mơ hồ của các chức năng . Những gì tôi đang nói là điều này thường được cho phép, với ;. Lý do tôi nói để lại ;là vì nếu không thì không có cách nào để biểu thị khi hàm kết thúc mà không có a .. Hầu hết mọi người dường như xem xét sự công bằng này nhưng tôi có thể cố gắng viết một bài đăng meta cụ thể ở đây nếu bạn quan tâm.
redstarcoder

1
@redstarcoder cảm ơn vì thông tin! Tôi cảm thấy như nhập vào các ><>đoạn mã bằng cách .là cách tốt nhất để tuân theo định nghĩa của hàm như được mô tả trong câu trả lời được đánh giá cao nhất của bài đăng meta, tuy nhiên tôi đồng ý ;là một cách thay thế tốt cần ít giải thích hơn.
Aaron

4

Công thức MS Excel, 163 151 150 143 byte

Không chính xác là một ngôn ngữ lập trình, nhưng ở đây nó đi ...

0:  -Z9                         (03 bytes)
1:  N(TRUE)                     (07 bytes)
2:  TYPE(T(Z9))                 (11 bytes)
3:  TRUNC(PI())                 (11 bytes)
4:  TYPE(TRUE)                  (10 bytes)
5:  ODD(PI())                   (09 bytes)
6:  FACT(PI())                  (10 bytes)
7:  ODD(PI()+PI())              (14 bytes)
8:  EVEN(PI()+PI())             (15 bytes)
9:  TRUNC(PI()*PI())            (16 bytes)
10: EVEN(PI()*PI())             (15 bytes)
42: EVEN(CODE(-PI())-PI())      (22 bytes)

PI()được sử dụng trong hầu hết các trường hợp vì đây là cách ngắn hơn (mà tôi biết) để giới thiệu một giá trị số mà không sử dụng một số hoặc chuỗi ký tự. Nchuyển đổi nhiều thứ khác nhau (bao gồm booleans) thành số và Tchuyển đổi nhiều thứ khác nhau thành văn bản. TYPEtrả về 2 cho một đối số văn bản và 4 cho một đối số boolean. TRUNCloại bỏ phần phân số (nghĩa là làm tròn số dương xuống), làm EVENtròn đến số chẵn tiếp theo và làm ODDtròn đến số lẻ tiếp theo. CODE(-PI())là mã ASCII của ký tự đầu tiên của chuyển đổi thành văn bản của -π, tức là 45 (cho "-").

EDIT: Đã xóa các dấu bằng nhau khỏi số byte (-12!) - như được chỉ ra bởi Nᴮᶻ trong các bình luận, chúng không được phép đưa vào.

EDIT 2: Giả sử phần còn lại của bảng tính trống, có thể sử dụng tham chiếu đến một ô trống là 0 (một lần nữa, được đề xuất bởi Nᴮᶻ) với điều kiện chúng tôi bao gồm dấu trừ (hoặc sử dụng nó trong biểu thức số khác) để giải quyết loại mơ hồ.


0=Z9
Adam

Đã xóa =s, cảm ơn. Về đề xuất của bạn, tôi đã tránh các tham chiếu ô về mục đích, để đảm bảo các công thức độc lập với nội dung bảng - nếu Z9chứa văn bản, =Z9sẽ không trả về 0 nữa. Tôi quyết định không giả định bất cứ điều gì về bàn.
dnep

Dù sao đi nữa, bạn đã khiến tôi loot lần nữa và tôi nhận ra ít nhất tôi có thể tiết kiệm được 1 byte bằng cách sử dụng 0 logic tương tự mà tôi đã sử dụng đến 1 ...
dnep

Nhưng một số ngôn ngữ có tất cả các biến được đặt thành 0 nếu chúng không được đặt thành thứ khác. Trong ngữ cảnh này, tôi sẽ thấy Excel là ngôn ngữ với các ô nhớ (về lý thuyết là vô hạn) A1: ZZZ ..: 999 ... và không có sự phân biệt giữa mã chương trình và dữ liệu (nghĩa là có thể tự sửa đổi). Vì mỗi đoạn mã độc lập với các đoạn khác, tôi giả sử nó nằm ở A1 và phần còn lại của trang trống. (Đối với các chương trình, tôi sẽ có một câu lệnh trong mỗi ô A1, A2, v.v.)
Adám

Tôi thấy quan điểm của bạn ... nhưng có một vấn đề nữa với các tham chiếu ô: Z9trên một trang trống là một giá trị trống được chuyển đổi thành 0nhiều trường hợp, nhưng có thể được chuyển đổi thành ""(chuỗi trống) nếu được sử dụng trong một số biểu thức - giống như một biến thể chưa được khởi tạo VBA - vì vậy nó không hoàn toàn tương đương với 0. Ví dụ, = 0&"a" được đánh giá "0a"nhưng = Z9&"a"đánh giá "a". Điều này có thể được giải quyết, tuy nhiên bằng cách thêm một unary -vào tham chiếu (do đó buộc nó phải là số - một lần nữa, giống như trong VBA). Vì vậy, -Z9 có thể được sử dụng như không. Tôi vừa cập nhật câu trả lời. Cảm ơn một lần nữa.
dnep

4

DUP , 68 byte

[
 [
  [
[)]!
[ )]!
[  )]!
[)~_]!
[ )~_]!
[  )~_]!
[   )~_]!
[)$+]!
[ )$+~_$+]!

Try it here.

Có rất nhiều cách để làm điều này, nhưng tôi đang lạm dụng stack return cho cái này.

Giải trình

Để tìm hiểu đầy đủ điều này, bạn cần hiểu hành vi của DUP liên quan đến lambdas. Thay vì tự đẩy lambda vào stack, nó thực sự đẩy IP hiện tại lên stack khi phát hiện lambda. Điều đó có thể giải thích 3 đoạn đầu tiên, liên quan đến lambdas.

Các đoạn tiếp theo sử dụng ngăn xếp trở lại. Khi !được thực thi, IP hiện tại được đẩy đến ngăn xếp trả về và đỉnh của ngăn xếp được đặt làm IP mới để bắt đầu thực hiện lambda. )bật một số từ ngăn xếp trở lại vào ngăn xếp dữ liệu.

Điều đó khá đủ để giải thích phần còn lại của các đoạn. Nếu bạn vẫn không nhận được nó, hãy nhớ rằng Stepnút này khá tiện dụng!


4

05AB1E, 40 38 24 byte

¾
X
Y
XÌ
Y·
T;
T;>
T;Ì
TÍ
T<
T
žwT+
  • Đẩy ngược
  • Đẩy 1
  • Đẩy 2
  • Đẩy 1 + 2
  • Đẩy 2 * 2
  • Đẩy 10/2
  • Đẩy (10/2) +1
  • Đẩy (10/2) +2
  • Đẩy 10-2
  • Đẩy 10-1
  • Đẩy 10
  • Đẩy 32, 10, thêm

1
là nhiều ngăn xếp sạch hơn Yx, Xcó thể được sử dụng thay vì ºở đây (nó mặc định 1, ºcó nghĩa là len(stack)>1, vì vậy nó không mặc định cho bất cứ điều gì). Ngoài ra, tổng số tiền của bạn là 24, không phải 35 (CP-1252, các dòng mới không được tính nếu chúng là các đoạn riêng biệt).
Erik the Outgolfer 4/12/2016

Tôi biết điều đó là không thể tại thời điểm bạn đăng bài này, nhưng 6 giờ có thể là ₆t(đẩy 36, căn bậc hai) để lưu một byte ( Thử trực tuyến ).
Kevin Cruijssen

3

D1ffe7e45e , 112

0
02
020
0202
02020
020202
0202020
02020202
020202020
0202020202
02020202020
202020202020202020202020202020202020202020

Mỗi dòng là một đoạn khác nhau.

Các số trong chương trình không được tính là số chữ vì chúng chỉ được sử dụng làm lệnh.

Người cuối cùng chắc chắn có thể được chơi golf nhiều hơn.

EDIT: Tôi đã làm cho trình thông dịch làm việc và tất cả các đoạn làm việc. Nếu bạn muốn tự kiểm tra, hãy thêm 0f0fvào cuối đoạn trích để chương trình kết thúc.


6
Những người chắc chắn trông giống như nghĩa đen đối với tôi. Ngoài ra, không đăng mã mà bạn chưa kiểm tra.
Mego

2
Bạn có thể giải thích cách họ làm việc?
Adám

@NBZ D1ffe7e45e hoạt động dựa trên sự khác biệt giữa hai số thập lục phân. Sự khác biệt đó sau đó được giải thích thành một lệnh. Ví dụ, sự khác biệt giữa 0 và 2 là 2, được hiểu là lệnh tăng (như +trong Brainf ** k). Tôi nghĩ rằng vì chúng được sử dụng như các lệnh và không phải là số theo nghĩa đen nên nó vẫn được tính. Tôi sẽ xóa câu trả lời nếu không.
ASCIIThenANSI

@Mego Tôi có trình thông dịch làm việc và mã của tôi hoạt động. Xem nhận xét trên cho lý do tại sao tôi nghĩ rằng họ không phải là chữ.
ASCIIThenANSI

1
Tôi không nghĩ bất kỳ thứ gì trong số này là chữ. Tuy nhiên, tôi không nghĩ bạn nên in các số, vì kết quả của mỗi đoạn phải dẫn đến một số thực có thể được sử dụng để tính toán thêm .
Dennis

3

Pyth, 35 34 33 byte

-1 byte bởi @Mimarik

Có một số khả năng cho một số chương trình.

0, 1 byte

Z

1, 2 byte

hZ
!Z

2, 3 byte

hhZ
eCG
eCd
lyd
lyb
lyN

3, 3 byte

l`d

4, 3 byte

l`b
eCN

5, 4 byte

hl`b
telG

6, 3 byte

elG

7, 4 byte

tttT
helG

8, 3 byte

ttT

9, 2 byte

tT

10, 1 byte

T

42, 4 byte

yhyT

Tất cả những điều này liên quan đến các lệnh double ( y), +1 ( h) và -1 ( t) cơ bản hoặc l(độ dài của chuỗi). Biến Z được khởi tạo bằng không.

Đối với 5, bđược khởi tạo thành một ký tự dòng mới. Backtick đưa ra "\n"(bao gồm cả dấu ngoặc kép và độ dài của chuỗi đó là 4.

Hãy thử chúng ở đây !


Người dùng Mimarik đề nghị lưu một byte trên 42 với yhyT. (Tôi đã từ chối chỉnh sửa theo meta.codegolf.stackexchange.com/questions/1615/ mẹo )
Martin Ender
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.