Bạn có thể đếm cao bao nhiêu?


154

Thử thách:

Nhiệm vụ của bạn là viết càng nhiều chương trình / hàm / đoạn càng tốt, trong đó mỗi chương trình xuất / in / trả về một số nguyên. Chương trình đầu tiên phải xuất số nguyên 1, chương trình thứ hai 2, v.v.

Bạn không thể sử dụng lại bất kỳ ký tự nào giữa các chương trình. Vì vậy, nếu chương trình đầu tiên là : x==x, thì bạn không được sử dụng các ký tự x=một lần nữa trong bất kỳ chương trình nào khác. Lưu ý: Được phép sử dụng cùng một ký tự nhiều lần trong một chương trình.

Ghi điểm:

Người chiến thắng sẽ là người nộp bài cao nhất. Trong trường hợp có hòa, người chiến thắng sẽ là người gửi tổng số byte ít nhất trong tổng số.

Quy tắc:

  • Bạn chỉ có thể sử dụng một ngôn ngữ cho tất cả các số nguyên
  • Đoạn trích được cho phép!
  • Để giữ cho công bằng, tất cả các ký tự phải được mã hóa bằng một byte duy nhất trong ngôn ngữ bạn chọn.
  • Đầu ra phải ở dạng thập phân. Bạn không thể xuất nó với ký hiệu khoa học hoặc một số định dạng thay thế khác. Xuất ra các phao là OK, miễn là tất cả các chữ số được hiển thị phía sau dấu thập phân là 0. Vì vậy, 4.000được chấp nhận. Sự không chính xác do FPA được chấp nhận, miễn là nó không được hiển thị trong đầu ra.
  • ans =, không gian hàng đầu và dấu và dòng mới, vv được cho phép.
  • Bạn có thể bỏ qua STDERR, miễn là đầu ra chính xác được trả về STDOUT
  • Bạn có thể chọn xuất số nguyên thành STDERR, nhưng chỉ khi STDOUT trống.
  • Các ngôn ngữ độc lập biểu tượng (như Lenguage ) không được phép
  • Thư là trường hợp nhạy cảm a != A.
  • Các chương trình phải độc lập
  • Khoảng trắng không thể được sử dụng lại
  • Bạn phải sử dụng các chữ số ASCII trong đầu ra

Giải thích được khuyến khích!


4
Headsecks ngôn ngữ chỉ quan tâm đến ba bit thấp hơn của mỗi ký tự và sẽ đạt được điểm 64 một cách tầm thường. Nó độc lập một phần với biểu tượng, nhưng không hoàn toàn. Tôi nghĩ rằng quy tắc cuối cùng cũng sẽ bao gồm các ngôn ngữ độc lập với biểu tượng một phần, nhưng tôi không chắc cách diễn đạt nó.
Dennis

1
Liên quan đến quy tắc đoạn trích, chúng ta vẫn cần bao gồm việc sử dụng / nhập khẩu? Và có được phép nhập tĩnh (mà không biến chúng thành một phần của đoạn trích) không?
Kevin Cruijssen

1
@KevinCruijssen bạn có thể bỏ qua những thứ nồi hơi cần thiết cho mọi chương trình / chức năng. Chẳng hạn, bạn không cần #include <iostream>và các công cụ soạn sẵn khác trong C ++. Bạn làm cần from numpy import *. Lưu ý: Tôi không phải là lập trình viên, vì vậy tôi không biết tất cả các sắc thái. Chúng ta có thể thảo luận trong trò chuyện nếu có gì đó không rõ ràng :)
Stewie Griffin

1
Bạn có quyền bỏ phiếu theo cách bạn thích @tuskiomi, nhưng theo tôi đó là một quy tắc tốt. Các ký tự khoảng trắng chỉ là byte, giống như bất kỳ ký tự nào khác. Tại sao họ nên được đối xử khác nhau? Ngoài ra, khoảng trắng ngôn ngữ sẽ giành chiến thắng khi trượt lở, vì nó chỉ chứa không gian, tab và dịch chuyển dòng. Cảm ơn bạn đã nói lý do tại sao bạn hạ cấp mặc dù :-)
Stewie Griffin

1
@StewieGriffin Tôi ít nhất sẽ cho phép không gian, nhưng này, tôi không phải là bạn.
tuskiomi

Câu trả lời:


146

JavaScript (ES7), điểm 17, 176 byte

Họ nói rằng không thể thực hiện được, vì vậy tôi đã làm điều đó: D (nhờ rất nhiều sự giúp đỡ từ @FullDecent)

""**""
~(~/~//~/~/)/~/~/
3
4
!NaN- -!NaN- -!NaN- -!NaN- -!NaN
6
7
8
9
++[[]][+[]]+[+[]]
11
'lengthlength'.length
222>>2>>2
`${``^``}xE`^``
0XF
C=CSS==CSS;C<<C<<C<<C<<C
555555555555555555555%55

Nhân vật không sử dụng:

#&,:?@ABDGHIJKLMOPQRTUVWYZ\_bcdfijkmopqrsuvwyz|

Tôi không nghĩ 18 là có thể, nhưng tôi đã nói điều tương tự về 17 ...

Giải trình

JavaScript là một ngôn ngữ được gõ rất yếu; nếu bạn cố gắng thực hiện một phép toán trên một giá trị không phải là số, thì JS sẽ cố gắng hết sức để chuyển nó thành số trước. Điều này cho phép rất nhiều giải pháp thú vị. Tôi đã cố gắng tránh sử dụng các chữ số càng nhiều càng tốt để chúng có thể được sử dụng sau này.

  1. **là toán tử lũy thừa trong ES7. Chuỗi rỗng khi bị ép buộc thành một số trở thành 0, do đó, chuỗi này tính toán 0 ** 0, 1theo JavaScript.
  2. Một chút vô lý, nhưng nó hoạt động. /~/là một regex nghĩa đen và ~/~/trả về -1, vì vậy đây là ~(-1 / -1) / -1= ~(1) / -1= -2 / -1= 2. (ghi có vào @ GOTO0 cho ý tưởng)
  3. Đơn giản 3thôi.
  4. Bây giờ đơn giản 4.
  5. NaNlà falsy, vì vậy !NaNtrue, đó là tương đương với 1. Do đó biểu thức trở thành 1 - -1 - -1 - -1 - -1= 1 + 1 + 1 + 1 + 1= 5.
  6. Đơn giản 6thôi.
  7. Đơn giản 7thôi.
  8. Đơn giản 8thôi.
  9. Đơn giản 9thôi.
  10. Điều này sử dụng một chút ma thuật JSF *** . +[]0, vì vậy [[]][+[]]trả về phần tử đầu tiên của [[]](nghĩa là []) và ++tăng giá trị này lên 1. Sau đó +[+[]]thêm mảng [0], được ép buộc thành một chuỗi và thực hiện "10".
  11. Đơn giản 11thôi. Ban đầu tôi đã sử dụng 11&1111cho 3 và 33/311 cho đến khi tôi nhận ra một lần nữa tôi thật ngu ngốc ...
  12. Chiến lược này sẽ hoạt động trên bất kỳ số nào: tạo một chuỗi độ dài 12và sử dụng .length.
  13. Tôi chỉ loay hoay với 2s và >s một lúc để có cái này. Tôi đã gặp may mắn một lần nữa: 222 >> 255, và 55 >> 213.
  14. Điều này là khá khó khăn. Ý tưởng cơ bản là tạo ra 14hex ( 0xE), nhưng chúng ta cần chữ số 0ở nơi khác. Vì vậy, thay vì chúng tôi trả trước kết quả của ``^``chuỗi xE; chuỗi rỗng bị ép buộc thành một số 0, vì vậy, trả về 0 ^ 0= 0. Sau đó, kết quả được XOR với chuỗi rỗng, chuyển đổi cả hai giá trị thành số; "0xE" ^ ""14.
  15. Điều này bây giờ khá dễ dàng: 0XFlà một chữ thập lục phân có giá trị là 15.
  16. Khó nhất trong tất cả? Đầu tiên chúng ta đặt biến Cthành CSS == CSS(nghĩa là true). Sau đó chúng ta lấy kết quả và thực hiện << Cbốn lần, mà về cơ bản sẽ nhân 1bằng 2 ** 4.
  17. JavaScript bắt đầu mất độ chính xác số nguyên ở 2 53 , cho phép 555...555%55trả về một số không 0hoặc 5. Tôi tình cờ nhận được rất may mắn khi chơi xung quanh đây.

Các chiến lược sẽ hoạt động trên nhiều con số:

  • -!NaNsẽ hoạt động trên bất kỳ số nào (hiện tại 5), mặc dù nó sẽ rất nhanh.
  • ~/~/sẽ hoạt động trên bất kỳ số nào (hiện tại 2), mặc dù nó rất lớn rất nhanh.
  • +[]sẽ làm việc trên bất kỳ số lượng (hiện tại 10), mặc dù đó là cho đến nay đơn giản nhất trên 10hay 11.
  • .length sẽ làm việc trên bất kỳ số nào.
  • `${-``}xE`-`` sẽ làm việc trên khá nhiều số nếu bạn làm đúng.
  • C<<Csẽ hoạt động trên bất kỳ sức mạnh nào của hai (hiện tại 16) hoặc bất kỳ int nào nếu bạn bao gồm |.

3
Điều đó thật tuyệt vời :)
Steve Bennett

1
Có thể có một số cách lén lút để sử dụng một trong các window.thuộc tính, như defaultPixelWidth, nhưng tất cả chúng dường như đều chứa lhoặc e. Bạn có thể nhận được 0 khác URL | URLnhưng không giúp được gì nhiều.
Steve Bennett

1
Tôi cũng đã tìm thấy "tiêu điểm", nhưng tôi vẫn chưa thấy làm thế nào để đến 18: "tiêu điểm" là hàm (). "tiêu điểm & tiêu điểm" là 0. "tiêu điểm (URL)" không xác định.
Xantix

1
Các nhà khai thác được tìm thấy hiện tại tăng:+ - * ~ < x X length
l4m2

1
Việc thiếu số lượng chủ yếu được giới hạn trên các biểu tượng này. Bất kỳ số nào chứa một trong số 1 2 3 4 5 6 7 8 9 + - * ~ < x X length. Vì vậy, trước khi giải quyết, chúng ta không thể đi 18
l4m2

90

Jelly , 47 số nguyên, 519 byte

e
BI$⁼#
⁾⁾⁾Ụ^/
ı***ıḞḞ
5
6
7
.::::
9
EȮ<
⁻GṘ
=`p`VV×`DQV
~A~A~A~A~A~A~A~A~A~A~A~A~A
⁷ṾṾṾw
⁴ḟ€⁴Ṁ
mmmmċ
ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ
+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ
CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC
ĖḌĖḌ
ṫṣȦJṫȦ⁸ȦJ
22
“@ṃ»
!ḤḤ!
³HH
ØaM
;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬
irið8c
⁶ḲĠṂ°İṂĊ
œṡ¹ẆẆTUṖṖṖṖP
ȷ½RṪ
LµdddddµFL
33
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ
ẇɓæ«æ«æ«æ«æ«|æ«|
⁹ṚḢ²
‘‘‘0‘‘‘‘‘‘‘
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ
-____---__________
”(O
⁵ḶxḶ⁵ị⁵ḶxḶḣṢ
⁽{ʂ%⁽{}
ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®
44
111111l11&K1111111Kl11&
,SS¶ỊỊ,ÇS¶ÇÑÇÇÇÑ
ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn

Mỗi dòng là một chương trình riêng biệt, đầy đủ.

Hãy thử trực tuyến! (bao gồm bộ kiểm tra và kiểm tra giao lộ)

Làm thế nào nó hoạt động

Mỗi chương trình đầy đủ không có đối số dòng lệnh sẽ thực thi liên kết chính của nó (được xác định trên dòng cuối cùng), tức là không có đầu vào. Nếu liên kết đầu tiên trong chuỗi là một nilad, nó sẽ được sử dụng, được gọi và cả giá trị trả về và giá trị trả về của liên kết chính được đặt thành kết quả; nếu liên kết đầu tiên trong chuỗi là một đơn nguyên hoặc một dyad, nó không được sử dụng và đối số ngầm định và giá trị trả về 0 được sử dụng thay thế. Trong cả hai trường hợp, phần còn lại của chuỗi được thực hiện một cách đơn điệu.

Jelly mangles sản lượng của nó trong một số trường hợp. Đáng chú ý, một mảng singleton được in mà không có dấu ngoặc xung quanh, vì vậy 42[42] và không thể phân biệt sau khi in. Chúng tôi sẽ sử dụng điều này trong nhiều dịp.

1 - 10

e

Nguyên tử tồn tại kiểm tra nếu giá trị trả về 0 thuộc về đối số 0 . Nó làm, vì vậy etrả về 1 .

BI$⁼#

BI$là một liên kết nhanh, cụ thể là một chuỗi đơn nguyên được hình thành bằng cách $nhóm nhanh nguyên tử nhị phânB và nguyên tử gia tăngI . Kết hợp lại, họ chuyển đổi một số nguyên thành mảng các chữ số của nó trong cơ sở 2, sau đó tính toán sự khác biệt về phía trước của các chữ số kết quả. Nếu mảng chỉ có một phần tử, không có sự khác biệt về phía trước và Itrả về một mảng trống (giả); nếu có ít nhất hai chữ số, Itrả về một mảng không trống (trung thực).

Nhanh chóng #tiêu thụ liên kết nhanh trước đó và áp dụng nó cho 0 , 1, 2, Thẻ cho đến khi tìm thấy đủ các kết quả trùng khớp trả về mảng khớp. Số lượng cần thiết được tính theo , so sánh giá trị trả về / đối số 0 với chính nó, mang lại 1 . Do đó, toàn bộ chương trình trả về [2] , số nguyên không âm đầu tiên có hai chữ số trong cơ sở 2.

⁾⁾⁾Ụ^/

⁾⁾⁾là một chuỗi ký tự, cụ thể là chuỗi ⁾⁾ . Nguyên tử lên lớp sắp xếp các chỉ số của nó theo các giá trị tương ứng của chúng; vì cả hai ký tự đều bằng nhau, điều này mang lại [1, 2] . Mảng kết quả được giảm với XOR bitwise ^/, vì vậy toàn bộ chương trình trả về 3 .

ı***ıḞḞ

ıkhởi tạo đối số và trả về giá trị cho đơn vị tưởng tượng i . *là dyad lũy thừa , có đối số đúng mặc định cho đối số của liên kết chính. Do đó, ***ıtính toán ((i i ) i ) i ≈ 4,81 + 0i , nguyên tử ( sàn cho các đối số thực , phần thực cho các số phức) tính phần thực ( 4,81 ), sau đó là các tầng, cho năng suất 4 .

5
6
7

Ba chương trình này bao gồm một nghĩa đen duy nhất và làm chính xác những gì bạn mong đợi.

.::::

Nghĩa đen .là một tốc ký cho 0,5 và khởi tạo đối số và giá trị trả về. Đối số đúng của số nguyên dyad ( :) mặc định cho đối số liên kết chính, do đó, ::::tính 0,5 / 0,5 / 0,5 / 0,5 / 0,5 , mang lại 8 .

9

Một nghĩa đen khác.

EȮ<

Tất cả các nguyên tử bằng nhauE trả về 1 nếu tất cả các phần tử trong đối số của nó bằng nhau và 0 nếu không. Một đối số nguyên z được thăng cấp thành [z] , do đó Esẽ trả về 1 cho đối số ngầm 0 .

Bây giờ, nguyên tử đầu raȮ in 1 đến STDOUT. Sau đó, chúng ta so sánh 1 với đối số ngầm 0 bằng cách sử dụng ít hơn nguyên tử <. Kết quả là (1 <0) = 0 và nó được in ngầm khi chương trình kết thúc.

11 - 20

⁻GṘ

Nguyên tử lướiG cố gắng tạo một bảng dễ chịu trực quan từ đối số của nó. Đối với một đối số nguyên đơn giản (ở đây: 0 ), nó chỉ đơn giản là bọc nó trong một mảng. Nguyên tử không bằng phẳng so sánh đối số ngầm 0 với kết quả ở bên phải ( [0] ), mang lại 1 vì các đối số của nó không bằng nhau. Nguyên tử đại diện in 1 đến STDOUT và trả về kết quả của nó. Vào cuối chương trình, giá trị trả về cuối cùng được in ngầm, vì vậy chúng tôi kết thúc với đầu ra là 11 .

=`p`VV×`DQV

Bản thân nhanh chóng `biến một con đê thành một đơn nguyên bằng cách gọi nó với các đối số trái và phải giống hệt nhau. Đầu tiên, =`so sánh đối số ngầm 0 với chính nó, mang lại 1 .

Nguyên tử sản phẩm của Cartesianp mong muốn các danh sách là đối số của nó, vì vậy nó thúc đẩy số nguyên 1 vào phạm vi [1, Vượt, 1] = [1] . p`lấy sản phẩm của Cartesian [1] và chính nó, mang lại [[1, 1]] .

Nguyên tử evalV biến tất cả các mảng phẳng (chỉ chứa số và ký tự) thành các chuỗi, sau đó đánh giá các chuỗi kết quả là các chương trình Jelly niladic. [[1, 1]] lần đầu tiên được chuyển thành [R11 11] , sau đó Vtránh chuỗi, mang lại [11] . Một lần nữa, Vbiến mảng này thành "11" , sau đó đánh dấu nó để mang lại 11 .

Bây giờ, ×`nhân 11 với chính nó, mang lại 121 . Nguyên tử thập phân biến 121 thành [1, 2, 1] , nguyên tử duy nhấtQ loại bỏ số 1 thứ hai và Vmột lần nữa biến danh sách các chữ số thành số nguyên kết quả từ việc ghép chúng, trả về 12 .

~A~A~A~A~A~A~A~A~A~A~A~A~A

~là nguyên tử bitwise KHÔNG . Với số học bổ sung của hai, nó ánh xạ một đối số z thành ~ z = - (z + 1) . Alà nguyên tử giá trị tuyệt đối , do đó, nó ánh xạ - (z + 1) = z + 1 . Với giá trị trả về ban đầu 0 , mười ba bản sao của ~Alợi nhuận 13 .

⁷ṾṾṾw

Hằng số giữ ký tự dòng mới '\ n' và khởi tạo đối số và giá trị trả về.

Các uneval nguyên tử cố gắng để tạo ra một chuỗi đại diện của đối số của nó z như vậy mà một chương trình Jelly bao gồm mã này sẽ quay trở lại z .

Cuộc gọi đầu tiên trả về chuỗi " Nghi \ n" , đó là một ký tự. Cuộc gọi tiếp theo trả về " Liêu, hôn \ n" - một cặp ký tự. Cuộc gọi thứ ba và cuộc gọi cuối cùng trả về "phạm vi, phạm lỗi, phạm lỗi, phạm lỗi, phạm lỗi, phạm lỗi, phạm lỗi" - một nhóm các nhân vật.

Cuối cùng, nguyên tử chỉ mục cửa sổw thúc đẩy đối số đúng của nó '\ n' cho chuỗi "\ n" và tìm chỉ mục đầu tiên của chuỗi con bắt đầu bằng "\ n" . Điều này trả về 14 .

⁴ḟ€⁴Ṁ

là hằng số 16 . Bộ lọc liên kết nhanh quickfalse mỗi ( ḟ€) thúc đẩy đối số bên trái của nó 16 đến phạm vi [1, , 16] , sau đó lặp lại các phần tử của nó.

Đối với mỗi phần tử z , ḟ⁴được thực thi, trước tiên, quảng bá z thành [z] , sau đó loại bỏ tất cả (nếu có) các lần xuất hiện của 16 . Điều này mang lại mảng [[1], [2], Mạnh, [14], [15], []] , trong đó mảng cuối cùng trống vì nó chứa 16 .

Cuối cùng, nguyên tử tối đa chọn [15] .

mmmmċ

Nguyên tử mô-đunm - được gọi với các đối số x (mảng) và y (số nguyên) thường lấy mọi | y | phần tử thứ của x , bắt đầu bằng phần đầu tiên nếu y> 0 , phần tử cuối cùng nếu y <0 . Tuy nhiên, khi y = 0 , nó trả về x được nối với ngược lại.

Đối số nguyên trái 0 trước tiên được thăng cấp thành [0] . Bản sao đầu tiên của mconcatenate [0] với chính nó, mang lại [0, 0] . Các bản sao còn lại biến kết quả này thành [0, 0, 0, 0] , sau đó [0, 0, 0, 0, 0, 0, 0, 0] , và cuối cùng [0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] .

Cuối cùng, các số nguyên tử ċđếm số lần tranh luận ngầm 0 xuất hiện trong mảng kết quả, trở về 16 .

ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ

là nguyên tử tack và nối đối số bên trái của nó với bên phải của nó. Vì và sau đây là dyadic, tất cả các lệnh gọi để vượt qua đối số ngầm 0 là đối số đúng . Cuộc gọi đầu tiên trả về [0, 0] , lần thứ hai [0, [0, 0] và lần thứ tám và cuối cùng [0, [0, [0, [0, [0, [0, [0, [0, 0]]]]]]]] .

là nguyên tử chia hết ; đối với xy , nó trả về 1x chia hết cho y , 0 nếu không. là không có số nguyên cho các số nguyên, do đó ḍḄkiểm tra 0 về tính chia hết cho từng số nguyên trong mảng được xây dựng. 0 là chia hết cho chính nó, vì vậy chúng tôi nhận được [1, [1, [1, [1, [1, [1, [1, [1, 1]]]]]]]] .

Bây giờ, unbinary nguyên tử hoạt động trên các mảng phẳng. Đối với một cặp [a, b] , nó chỉ trả về 2a + b . Như đã đề cập trước đó, là một no-op cho các số nguyên: một đối số nguyên c được thăng cấp thành [c][c] trong bất kỳ cơ sở nào chỉ đơn giản là c .

Cuộc gọi đầu tiên để giảm [1, 1] xuống 3 , do đó mang lại [1, [1, [1, [1, [1, [1, [1, 3]]]]]]] . Cuộc gọi tiếp theo giảm [1, 3] xuống còn 5 , cuộc gọi tiếp theo [1, 5] xuống còn 7 , và cứ thế cho đến khi số chín trả về 17 .

+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ

là nguyên tử KHÔNG logic logic và ánh xạ đối số ngầm 0 thành 1 . +là nguyên tử bổ sung, do đó, mỗi trong số mười tám bản sao của +Ṇgiá trị trả về trước đó (ban đầu là 0 ). Toàn bộ chương trình trả về 18 .

CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC

Clà nguyên tử bổ sung và ánh xạ đối số z thành 1-z . Nlà nguyên tử phủ định và ánh xạ đối số z thành -z . Cùng nhau, CNánh xạ z đến - (1-z) = z-1 , do đó mười tám bản sao biến đối số ngầm 0 thành -18 . Một ứng dụng cuối cùng của Csản lượng 1 - (-18) = 19.

ĖḌĖḌ

Các enumerate nguyên tử Ėliệt kê các mục trong một mảng, tạo cặp chỉ số giá trị. Đối số ngầm 0 được thăng cấp thành [0] , sau đó Ėmang lại [[1, 0]] . Nguyên tử không tối ưu chuyển đổi một mảng phẳng từ cơ sở 10 thành số nguyên, mang lại [10] trong trường hợp cụ thể này.

Cuộc gọi thứ hai để Ėbiến đổi [10] thành [[1, 10]] , cuộc gọi thứ hai cuối cùng biến thành [20] .

21 - 30

ṫṣȦJṫȦ⁸ȦJ

Nguyên tử đuôi (dyad) chọn hậu tố của đối số bên trái bắt đầu từ chỉ mục (dựa trên 1 và mô-đun) được chỉ định trong đối số bên phải của nó, thúc đẩy đối số nguyên trái x thành [x] . Khi được gọi với cả hai đối số được đặt thành 0 , trả về [0] .

Các bất kỳ và tất cả các nguyên tử Ȧtrả về 1 nếu đối số của nó là truthy và không chứa zero tại bất kỳ chiều sâu, 0 khác. Ở đây, chúng ta chỉ cần sử dụng nó như một hàm nhận dạng để trả về đối số ngầm 0 . Sự phân chia tại nguyên tử phân vùng đối số bên trái của nó [0] tại các lần xuất hiện của đối số bên phải 0 , do đó, nó trả về [[], []] tại đây.

Các nguyên tử chỉ sốJ loại bỏ các phần tử của giá trị trả về và thay thế chúng bằng các chỉ số của chúng, mang lại phạm vi [1, 2] trong trường hợp cụ thể này. Ȧcả hai đều hoạt động như trước, vì vậy chúng giảm [1, 2] về hậu tố bắt đầu ở chỉ mục cuối cùng, mang lại [2] .

Trong các liên kết niladic, hằng số giữ [] . Đây là một nilad không thể nhìn thấy, tức là, nó không phù hợp với chuỗi theo bất kỳ cách nào. Do đó, giá trị trả về trước đó ( [2] ) được in thành STDOUT, sau đó được thay thế bằng giá trị của nilad ( [] ).

[] là giả, Ȧbiến nó thành 0 . Nguyên Jtử khuyến khích 0 đến [0] , sau đó trả về danh sách các chỉ số của nó ( [1] ), được in ngầm khi chương trình kết thúc.

22

Một nghĩa đen khác. Repdigits dường như là nơi tốt nhất để sử dụng chúng.

“@ṃ»

Điều này sử dụng nén chuỗi sẵn có của Jelly. Các chỉ số của @M trong trang mã Jelly của là 64220 và xâu có thể chứa 250 nhân vật khác nhau, vì vậy đây đầu tiên tính toán số nguyên 250 × 65 + 220 = 16.470 .

16470 chia hết cho 3, vì vậy thương số 16470/3 = 5490 mã hóa ký tự ASCII có thể in hoặc nguồn cấp dữ liệu. Có 96 trong số này và 5490 = 96 × 57 + 18 , có nghĩa là chúng tôi đã giải mã các ký tự ASCII in tại 0 dựa trên chỉ số 18 , đó là '2' .

Chúng tôi còn lại với 57 , cũng chia hết cho 3 , vì vậy thương số 57/3 = 19 = 96 × 0 + 19 mã hóa ký tự ASCII có thể in ở chỉ số 18 dựa trên 0 , là '3' .

Điều này để lại 0 ; quá trình giải mã dừng lại. Các ký tự được tạo được ghép nối để tạo thành "23"

!ḤḤ!

Nguyên tử giai thừa! biến đối số ngầm 0 thành 1 . Hai lời gọi của unhalve nguyên tử lần lượt 1 thành 2 , sau đó 2 thành 4 . Cuối cùng, !tính 4! = 24 .

³HH

Trong trường hợp không có đối số dòng lệnh, hằng số ³giữ 100 . Hai lần gọi 100H biến thành 50 , rồi 50 thành 25 .

ØaM

Các hằng số Øagiữ bảng chữ cái chữ thường. Nguyên tử tối đaM mang lại tất cả các chỉ số của các mục tối đa và vì z là chữ cái viết thường lớn nhất, kết quả là [26] .

;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬

Hai mươi sáu bản sao của concatenate nguyên tử ;nối giá trị trả về ban đầu 0 và hai mươi sáu trường hợp của đối số mặc định 0 , xây dựng một mảng của 27 zero.

¬là nguyên tử KHÔNG logic , vì vậy nối thêm 1 vào mảng số không. Phần tiếp theo ¬phủ định tất cả các phần tử trong mảng, để lại cho chúng ta một mảng gồm 27 phần tử và 1 số không.

là nguyên tử unbase và chuyển đổi một mảng chữ số từ đối số bên trái của nó từ cơ sở được chỉ định trong đối số bên phải thành số nguyên. ḅ¬chuyển đổi từ unary sang số nguyên, vì vậy nó chỉ đơn giản thực hiện một tổng. Đối với một mảng gồm 27 cái, cái này trả về 27 .

irið8c

Các chỉ số của nguyên tử ikhuyến khích tranh luận trái của nó 0 đến [0] , sau đó tìm các chỉ số của các đối số quyền của mình 0 trong mảng đó, năng suất 1 .

Nguyên tử phạm vir xây dựng một phạm vi tăng dần hoặc giảm dần từ đối số bên trái sang đối số bên phải của nó. Đối số đúng là đối số ngầm 0 , do đó, điều này mang lại [1, 0] . Lệnh thứ hai itìm thấy chỉ số 0 trong [1, 0] , mang lại 2 .

ðbắt đầu một chuỗi mới, dyadic. Vì chuỗi trước là niladic, cả đối số trái và phải của chuỗi này sẽ bằng giá trị trả về của chuỗi đầu tiên ( 2 ). ctrong các nguyên tử kết hợp . Với đối số trái 8 và đối số phải 2 , nó đếm tất cả các kết hợp 2 duy nhất, không có thứ tự của một bộ 8 phần tử, trả về 8C2 = 8! / (6! 2!) = 28 .

⁶ḲĠṂ°İṂĊ

Hằng số giữ một ký tự khoảng trắng và đặt đối số và trả về giá trị thành '' . Các từ nguyên tử quảng bá ký tự '' cho chuỗi singleton "" và phân tách nó tại các khoảng trắng, mang lại [[], []] .

Các nhóm nguyên tử Ġnhóm tất cả các chỉ số của các yếu tố bằng nhau. Vì cả hai yếu tố của giá trị trả về cuối cùng đều bằng nhau, nó trả về [[1, 2]] tại đây. Nguyên tử tối thiểu trích xuất một phần tử tối thiểu (duy nhất) của mảng này, mang lại [1, 2] .

Nguyên tử độ° chuyển đổi cả hai số nguyên từ độ hấp dẫn sang radian, mang lại 1 ° × 2π / 360 ° = π / 1802 ° × 2π / 360 ° = π / 90 . Nguyên tử nghịch đảo lấy các phép nghịch đảo nhân, cho năng suất 180 / π 57.390 / π 28.6 .

Sau đó, một lần nữa mất tối thiểu, mang lại 28,6 . Cuối cùng, nguyên tử trầnĊ biến đổi 28,6 thành 29 .

œṡ¹ẆẆTUṖṖṖṖP

Nguyên tử nhận dạng¹ trả về 0 cho đối số ngầm 0 . Sự phân chia xung quanh nguyên tử œṡthúc đẩy cả hai đối số của nó (cả 0 ) thành [0] , sau đó phân tách [0] xung quanh các chuỗi con liền kề bằng [0] . Điều này mang lại [[], []] .

Nguyên tử cửa sổ trượt xây dựng tất cả các phân đoạn tiếp giáp của đối số của nó. Trường hợp thứ nhất biến đổi [[], []] thành [[[]], [[]], [[], []]] , phiên bản thứ hai biến đổi [[[]], [[]], [[] , []]] thành
[[[[]]], [[[]]], [[[], []]], [[[]], [[]]], [[[]], [ [], []]], [[[]], [[]], [[], []]]] .

Nguyên tử sự thậtT liệt kê tất cả các chỉ số của các yếu tố trung thực. Không có mảng nào ở cấp độ đầu tiên là trống, do đó, điều này mang lại [1, 2, 3, 4, 5, 6] . Nguyên tử upendU đảo ngược mảng này, mang lại [6, 5, 4, 3, 2, 1] .

Bốn bản sao của nguyên tử nhạc pop loại bỏ bốn yếu tố cuối cùng, để lại cho chúng tôi [6, 5] . Cuối cùng, nguyên tử sản phẩmP biến đổi mảng này thành 30 .

31 - 40

ȷ½RṪ

ȷlà một tốc ký cho 1 × 10 3 = 1000 . Nguyên tử căn bậc hai½ mang lại 31,6 , mà nguyên tử phạm viR biến đổi thành [1, Lôi, 31] . Cuối cùng, nguyên tử đuôi trích xuất phần tử cuối cùng, trả về 31 .

LµdddddµFL

Nguyên tử độ dàiL thúc đẩy đối số ngầm 0 đến [0] , sau đó lấy độ dài để mang lại 1 . µbắt đầu một chuỗi mới, đơn âm và kết quả 1 trở thành đối số của nó.

Đối với các đối số xy , nguyên tử divmodd mang lại [x / y, x% y] . Mỗi cuộc gọi sẽ có y = 1 , vì vậy kết quả sẽ luôn là [x, 0] .

Cuộc gọi đầu tiên bắt đầu bằng x = 1 , mang lại [1, 0] . dchỉ hoạt động trên các số nguyên, vì vậy nó vectơ trong các cuộc gọi tiếp theo. Cuộc gọi thứ hai mang lại [[1, 0], [0, 0]] , cuộc gọi thứ ba [[[1, 0], [0, 0]], [[0, 0], [0, 0]]] , và thứ năm và cuối cùng một mảng có độ sâu 5 chứa một số duy nhất và 31 số không.

µmột lần nữa bắt đầu một chuỗi mới, đơn âm và mảng từ trước trở thành đối số của nó. Nguyên tử phẳng khôngF chấp nhận mảng này, thu được một mảng phẳng gồm một và 31 số không. Cuối cùng, Llấy độ dài của kết quả, trả về 32 .

33

Một repdigit, một nghĩa đen khác.

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ

Mỗi trường hợp của nguyên tử bọc biến đổi đối số z của nó thành [z] . Với giá trị trả về ban đầu là 0 , tất cả 34 trường hợp cùng nhau mang lại [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[] [ ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] . Cuối cùng, nguyên tử độ sâuŒḊ tính toán độ sâu tối đa của mảng kết quả, trả về 34 .

ẇɓæ«æ«æ«æ«æ«|æ«|

Các cửa sổ tồn tại nguyên tử thúc đẩy cả hai đối số của nó (cả mặc định để 0 ) để [0] , sau đó kiểm tra nếu ** [0] ** xảy ra như một mảng con giáp của [0] . Nó làm, vì vậy trả về 1 .

ɓbắt đầu một chuỗi mới, dyadic. Vì chuỗi trước là niladic, cả đối số bên trái và bên phải của chuỗi này sẽ bằng giá trị trả về của chuỗi đầu tiên ( 1 ). Chuỗi sử dụng hai nguyên tử dyadic khác nhau: bitshift left ( æ«) và bitwise OR ( |).

Một chuỗi dyadic bắt đầu bằng ba hoặc nhiều dyads ban đầu gọi dyad đầu tiên với các đối số của chuỗi. Ở đây, điều này cho 1 << 1 = 2 . Sáu dyads tiếp theo được nhóm thành các cặp (được gọi là dĩa ), trong đó dyad ngoài cùng bên phải được gọi đầu tiên với các đối số của chuỗi, sau đó một bên trái được gọi với các giá trị trả về trước đó cho cả hai bên.

Đối với æ«æ«, chúng tôi nhận được 2 << (1 << 1) = 2 << 2 = 8 . Sau đó, æ«æ«tính 8 << (1 << 1) = 8 << 2 = 32 . Bây giờ, |æ«có được chúng tôi 32 | (1 << 1) = 32 | 2 = 34 .

Cuối cùng, dấu vết |hoạt động giống như một cái móc và được gọi với giá trị trả về trước đó là đối số bên trái của nó và đối số bên phải của chuỗi là đối số bên phải của nó. Điều này trả về 34 | 1 = 35 .

⁹ṚḢ²

Trong trường hợp không có đối số thứ hai, hằng số giữ 256 . Nguyên tử ngược thúc đẩy 256 vào mảng [2, 5, 6] và đảo ngược nó để mang lại [6, 5, 2] . Sau đó, nguyên tử đầu trích xuất phần tử đầu tiên và nguyên tử vuông² trả về ** 6² = 36 *.

‘‘‘0‘‘‘‘‘‘‘

Các increment nguyên tử increments đối số của nó bằng 1 , vì vậy ‘‘‘biến giá trị trả về ban đầu 0 thành 3 . 0 sau đây là một nilad không thể nhìn thấy, nghĩa là, nó không phù hợp với chuỗi theo bất kỳ cách nào. Do đó, giá trị trả về trước đó ( 3 ) được in thành STDOUT, sau đó được thay thế bằng giá trị của nilad ( 0 ).

7 bản sao sau đây biến 0 này thành 7 , được in ngầm khi chương trình kết thúc.

’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ

Các sụt lần nguyên tử decrements đối số của nó bằng 1 , vì vậy ba mươi tám bản sao biến các giá trị trả về ban đầu 0 thành -38 . Nguyên tử khác biệt tuyệt đối tính toán sự khác biệt không dấu giữa -38 và đối số ngầm 0 , trả về 38 .

-____---__________

-là một tốc ký cho -1 và đặt giá trị và giá trị trả về của liên kết thành -1 . Mỗi cái _là một thể hiện của nguyên tử trừ dyadic , có đối số đúng sẽ mặc định là -1 nếu bị thiếu.

Đầu tiên, -____-tính (-1) - (-1) - (-1) - (-1) - (-1) = 3 . -1 sau đây là một nilad không thể thay đổi, do đó, giá trị trả về trước đó ( 3 ) được in thành STDOUT, sau đó được thay thế bằng giá trị của nilad ( -1 ).

Tiếp theo, -_tính toán (-1) - (-1) = 0 , trong đó nghĩa đen -đặt đối số bên trái của _và sử dụng giá trị trả về làm giá trị bên phải. Chín bản sao sau đây _trừ đi đối số mặc định -1 từ giá trị trả về, thu được 9 , được in ngầm khi chương trình kết thúc.

”(O

”(là một ký tự theo nghĩa đen và nguyên tử thứ tựO tìm kiếm điểm mã Unicode của nó, mang lại 40 .

41 - 47

⁵ḶxḶ⁵ị⁵ḶxḶḣṢ

Trong trường hợp không có đối số dòng lệnh thứ ba, hằng số giữ 10 . Nguyên tử unlength tạo ra một phạm vi dựa trên 0, cụ thể là [0, Sọ , 9] cho đối số 10 , cho cả hai phía của nguyên tử lặp lại tại chỗx . Cái sau khớp với các phần tử của đối số bên trái của nó với sự lặp lại của phần bên phải của nó và lặp lại mỗi phần tử với số lần tương ứng. Với [0, Hoài, 9] là cả hai đối số trái và phải, do đó, chúng tôi nhận được các số 0, một, hai, v.v.

Các chỉ số thành nguyên tử fetches các yếu tố của các đối số quyền của mình ở chỉ số quy định tại một trái của nó. Với đối số bên trái 10 ( bên trái) và đối số bên phải [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, Câu, 9] (kết quả trước đó), điều này mang lại cho 4 .

Chuỗi cho đến thời điểm này được theo sau bởi một nilad không thể nhìn thấy được , do đó, giá trị trả về trước đó ( 4 ) được in thành STDOUT, giá trị trả về được đặt thành 10 và phần còn lại của chuỗi được phân tích cú pháp như bình thường.

Như trước, ⁵ḶxḶsẽ mang lại mảng [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, Cuộc , 9] . Lần này, chúng ta gọi nguyên tử được sắp xếp theo đối số 10 , nó thúc đẩy 10 đến [1, 0] , sau đó sắp xếp nó để mang lại [0, 1] . Nguyên tử đầu dyadic bây giờ lấy các tiền tố có độ dài 01 từ kết quả sang trái, để lại cho chúng ta [[], [1]] . Khi được in, không có gì ngoài 1 sẽ vẫn hiển thị.

⁽{ʂ%⁽{}

và hai ký tự sau của nó tạo thành một chữ số. Nếu jk là các điểm mã của chúng trong trang mã của Jelly và (j, k) <(124, 250) , chúng ta sẽ nhận được số nguyên 1001 + 250j + k . Các điểm mã của '{' , '}''ʂ'123 , 125167 , do đó, nghĩa đen bên trái ước tính là 1001 + 250 × 123 + 167 (= 31918) , trong khi bên phải đánh giá là 1001 + 250 × 123 + 125 (= 31876) .

Do số nguyên bên trái lớn hơn hai lần so với số nguyên bên phải, nên kết quả là (Khác + 167)% (Tiết + 125) = (Tiết + 167) - (Tiết + 125) = 167- 125 = 42 .

ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®

Nguyên tử xáo trộn ngẫu nhiên hóa thứ tự các phần tử của đối số; một đối số số z được thăng cấp lên phạm vi [1, Mạnh, z] trước đó. Đối với đối số ngầm 0 , phạm vi này trống và mang lại [] . Tất cả nguyên tử trả về 1 nếu tất cả các phần tử của đối số của nó là trung thực, 0 nếu không. Vì một mảng trống không chứa các phần tử giả, trả về 1 ở đây.

Các zip với nguyên tử ż(một dyad) lấy các đối số xy và hoán đổi cặp [x, y] . Đối với số nguyên xy , điều này chỉ đơn giản mang lại [[x, y]] , do đó ż, đặc biệt này , được gọi với các đối số 10 (đối số ngầm), trả về [[1, 0]] . Các eval cặp đôi nguyên tử vhóa tất cả các mảng phẳng (chỉ chứa số và ký tự) i lập luận trái thành chuỗi, sau đó đánh giá chuỗi kết quả như các chương trình Jelly monadic với lập luận của mình đúng như lập luận của các chương trình. Vì ["10"]chỉ bao gồm các chữ, điều này bỏ qua các đối số đúng vvà chỉ đơn giản là kết quả trong [10] .

Bản sao nhanh chóng ©đính kèm vvà sao chép kết quả của nó vào sổ đăng ký. Sự xuất hiện sau đó của nguyên tử thu hồi® (một nilad) sẽ lấy [10] từ thanh ghi.

Ba bản sao tiếp theo của żvcông việc như trước đây, ánh xạ [10] thành [[10, 0] thành [100] thành Chiêu thành [10000] . Nguyên tử thứ tự kiểm tra bao nhiêu lần đối số bên trái của nó chia hết cho bên phải của nó, vì vậy ở đây, nó tính thứ tự 10 (tìm nạp với ®) trong 10000 = 10 4 , cho ra [4] .

Dưới đây ®là một nilad không thể chỉnh sửa, do đó, giá trị trả về trước đó ( [4] ) được in thành STDOUT, sau đó được thay thế bằng giá trị của nilad ( 10 ). Chúng tôi áp dụng tiếp theo, đạt 1 . (Điều này là bắt buộc vì một con số không theo sau bởi một con đê sẽ được phân tích cú pháp tại thời điểm này.)

Như trước, żvżvżvnối thêm ba số 0 vào giá trị trả về hiện tại, biến 1 thành [1000] . Cuối cùng, ọ®tính thứ tự 10 trong 1000 = 10 33 được in thành STDOUT khi chương trình kết thúc.

44

Một chữ số khác, nhưng một chữ khác.

111111l11&K1111111Kl11&

Đầu tiên và quan trọng nhất, nghĩa đen 111111đặt đối số và giá trị trả về ban đầu là 111111 . Các hoạt động khác 1cũng là nghĩa đen.

llà nguyên tử logarit , tính toán logarit của đối số bên trái của nó với cơ sở được chỉ định ở bên phải. Khi được gọi vào 111111 với đối số đúng 11 , chúng ta nhận được nhật ký 11 111111 4,85 .

Các nguyên tử từK tham gia một đối số danh sách tại các khoảng trắng, sau khi quảng bá một số / ký tự z thành [z] . Ở đây, chúng tôi chỉ cần sử dụng nó để biến đối số 111111 của liên kết thành [111111] . (Chúng tôi không yêu cầu một mảng ở đây, nhưng chúng tôi đã hết các nguyên tử nhận dạng.) Nguyên tử bitwise AND& đưa các giá trị trả về cho cả hai bên, biến chúng thành số nguyên nếu được yêu cầu và tính toán theo bit của chúng. Trong trường hợp cụ thể này, nó trả về [4,85 & 111111] = [4 & 111111] = [4] .

Dưới đây 1111111là một nilad không thể chỉnh sửa, do đó, giá trị trả về trước đó ( [4] ) được in thành STDOUT, sau đó được thay thế bằng giá trị của nilad ( 1111111 ). Ksau đó biến số nguyên này thành [1111111] . (Điều này một lần nữa không thực sự cần thiết, nhưng một con số không theo sau bởi một con đê sẽ được phân tích cú pháp vào thời điểm này.)

Như trước, l11tính toán nhật ký 11 111111 5,81 , sau đó &trả về [5,81 & 111111] = [5 & 111111] = [5] .

,SS
ỊỊ,ÇS
ÇÑÇÇÇÑ

Đây là chương trình duy nhất bao gồm nhiều liên kết do người dùng xác định. Liên kết cuối cùng là liên kết chính và thực thi khi chương trình bắt đầu, các liên kết còn lại là liên kết trợ giúp. Nhanh chóng Çluôn đề cập đến liên kết trên liên kết hiện tại và thực hiện nó một cách đơn điệu. Tương tự như vậy, nhanh chóng Ñluôn đề cập đến liên kết bên dưới liên kết hiện tại (bao quanh) và cũng thực hiện nó một cách đơn điệu.

Liên kết trên cùng bao gồm nguyên tử cặp, - một dyad biến các đối số xy thành [x, y] - và nguyên tử tổngS - một đơn vị thúc đẩy một đối số nguyên z thành [z] và giảm đối số mảng bằng cách thêm vào. Khi liên kết ,SSđược gọi với một đối số nguyên n , nó sẽ tính Σ [n, n] = Σ [n, n] = 2n .

Liên kết giữa bao gồm các nguyên tử trên, nhanh chóng đã nói ở trên Çvà nguyên tử không đáng kể - một đơn vị mang lại 1 cho các đối số số z với -1 z ≤ 1 , nhưng 0 cho tất cả các nguyên tử khác. Áp dụng hai lần cho một đối số nguyên n về cơ bản thay thế nó bằng 1 , vì đầu ra của cái thứ nhất ( đầu vào của cái thứ hai) luôn không đáng kể. Kết quả này sau đó được ghép với giá trị trả về của Ç(được gọi với đối số n ) và cặp kết quả được giảm đi S. Tổng cộng, chúng tôi tính toánΣ [(| n | ≤ 1) ≤ 1, 2n] = Σ [1, 2n] = 2n + 1 .

Với hai liên kết trợ giúp này, liên kết chính hiện có thể xây dựng bất kỳ số nguyên không âm nào bằng cách xem xét các chữ số nhị phân của nó. Với giá trị trả về ban đầu là 0 , chuỗi ÇÑÇÇÇÑtính kết quả cuối cùng (((((0 × 2 + 1) × 2) × 2 + 1) × 2 + 1) × 2 + 1) × 2 = ((5 × 2 + 1) × 2 + 1) × 2 = 46 .

ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn

Nguyên tử nguyên tố tiếp theo tìm thấy số nguyên tố dương nhỏ nhất lớn hơn nhiều so với đối số của nó. Với giá trị trả về ban đầu là 0 , mười lăm lệnh Æntính số nguyên tố thứ mười lăm, là 47 .


7
Tôi đã dành cả ngày để cố gắng bắt kịp Neim's 38 và sau đó tôi cuộn xuống và thấy điều này. Thử thách được chấp nhận!
Xù xì

1
TL; DR Bạn có nó để đếm đến 47 và bạn là một phù thủy tại Jelly.
phong cách xếp tầng

Có phải tất cả các "nguyên tử" byte đơn theo yêu cầu trong thử thách không? Nếu vậy, mã hóa này là gì?
M.Herzkamp

4
@ M.Herzkamp Jelly sử dụng trang mã riêng của mình .
Dennis

1
Tôi đọc lời giải thích chi tiết lần đầu tiên bây giờ. Điều này thực sự ấn tượng. Một số trong số này chỉ là vô lý :-)
Stewie Griffin

62

brainfuck , điểm 2, 255 144 10 byte

... Vâng, không phải là ý tưởng tốt nhất vì tôi chỉ có 8 ký tự (tarpits sẽ tarpit) để làm việc với nhưng hãy xem bao nhiêu là có thể. Tôi nghĩ rằng đây là tất cả những gì có thể. : P Câu trả lời này cho thấy sáu trong số tám nhân vật sử dụng brainfuck, hai nhân vật còn lại ,, là đầu vào và ., là đầu ra.

+
>--[<->-]

Hình dung nó trực tuyến!

Giải trình

Mỗi số được tạo và lưu trữ trên ô bắt đầu trên băng. Nặng nề dựa vào các tế bào gói, không được thực hiện trong một vài phiên dịch.

1 :

[ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

+  increment the current cell

[ 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

2 :

[ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

>  move to the next cell
-- decrement the current cell twice

[ 0 |254| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

[  while the current cell is not 0
<  move to the previous cell
-  decrement the current cell

[255|254| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

>  move to the next cell
-  decrement the current cell

[255|253| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

]  repeat while the current cell is not 0

...

[ 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

[ 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

[ 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

5
Bây giờ làm điều đó trong flak não. : P
DJMcMayhem

38

Neim , điểm 38, 327 byte

1: 𝔼
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 9
10: β
11: γ
12: δ
13: ε
14: ζ
15: η
16: θ
17: ι
18: κ
19: λ
20: μ
21: ν
22: ξ
23: π
24: ρ
25: σ
26: ς
27: τ
28: υ
29: φ
30: χ
31: ψ
32: ω
33: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
34: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<𝐀
35: 𝐓0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻
36: ℂ𝐋𝐠𝐋𝐠𝐋𝐠𝐋𝐝𝐬𝕏𝐬
37: α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊
38: 𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝐥

Giải trình:

  • Đối với 1, chúng tôi sử dụng mã thông báo 'kiểm tra sự bình đẳng', ở đây khai thác rằng khi Neim cố gắng bật đầu vào trống, nó nhận được 0. Vì 0 và 0 là tương đương, điều này đẩy 1 được in ngầm
  • Từ 2 đến 9, chúng tôi chỉ sử dụng chữ số.
  • Từ 10 đến 32, Neim thực sự có một hằng số byte cho tất cả chúng (vâng, thật điên rồ).
  • Đối với 33, chúng tôi chỉ sử dụng lệnh tăng. Trên byte đầu tiên, Neim cố gắng bật một cái gì đó để nó có thể tăng nó, nhưng vì đầu vào trống, nó mặc định là popping 0.
  • Đối với 34, chúng tôi sử dụng cùng một cách tiếp cận, nhưng giảm dần và lấy giá trị tuyệt đối.
  • Đối với 35, chúng tôi đang khai thác thực tế rằng không có yếu tố nào là một và chúng tôi sử dụng điều đó bằng cách nhân đôi số đó và liên tục thêm
  • Đối với 36, chúng tôi sử dụng để kiểm tra 0 và 0 cho đồng nguyên thủy, đó là chúng. Điều này đẩy 1. Sau đó, chúng tôi nhận được số nguyên tố đầu tiên sử dụng 𝐋, kết quả là một danh sách đơn lẻ chỉ chứa 2. Chúng tôi sau đó nhận được phần tử lớn nhất ( 𝐠), đẩy 2 thành một số. Sau đó, chúng tôi lặp lại quá trình này cho đến khi chúng tôi nhận được danh sách [2 3 5 7 11]. Sau đó, chúng tôi sử dụng 𝐝để tính toán đồng bằng, dẫn đến danh sách [1 2 2 4]. Tiếp theo, chúng tôi sử dụng 𝐬để lấy tổng - là 9 - sau đó chúng tôi tính toán phạm vi độc quyền từ 0 đến 9, kết quả là [0 1 2 3 4 5 6 7 8]. Cuối cùng, 𝐬được sử dụng một lần nữa để có được 37.
  • Đối với 37, αlà hằng số đại diện cho âm, và chúng tôi liên tục đẩy nó và trừ đi (một lần nữa khai thác thực tế là khi chúng tôi cố gắng bật vào đầu vào trống, 0 được đẩy)
  • Đối với 38, một lần nữa sử dụng 0 mặc định cho đầu vào trống, chúng tôi tiếp tục nối 0 vào chính nó, tạo một danh sách dài, sau đó tính toán độ dài.

Có thể thử ở đây


3
Bạn đã trộn lẫn một cái gì đó khoảng 36-37.
Erik the Outgolfer

2
Không phải những ký tự đặc biệt được mã hóa với hơn 1 byte sao? Nếu vậy, điều đó sẽ làm cho nó 860 Byte theo bộ đếm byte của mẹeff và quy tắc thách thức nêu rõ điều đó all characters must be encoded using a single byte in the language you choose. Neim có mã hóa các ký tự đặc biệt đó chỉ trong 1 byte không? Làm sao?
Hankrecords


2
Bạn chưa sử dụng nhân vật này 1. Chắc chắn bạn có thể đưa nó vào một số sử dụng?
Bergi

34

Con trăn 2, 15

Đây là một khởi đầu, tìm kiếm thêm

Nhờ leo mà mẹo của tôi đã giúp tôi đến 15

[[[]]>[]][[]>[]]>>[[]>[]][[]>[]]

2

import math
print'%i'%math.pi

((()<())<())<<((()<())<())<<((()<())<())

5

6

7

8

9

11^1 

33/3

4--4--4

__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__

q=""=="";qq=q=="";qqq=~q*~q*~q;~qqq*~q*~qq

0xF

2
Bạn có thể sử dụng -~-~-~-~-~-~-~-~-~[[]==[]][[]<[]]cho 10 và 0xD13 cho tổng số byte thấp hơn
ovs

Bạn có thể sử dụng một số cách ''is''đánh giá là đúng để tạo một số khác không?
Notts90

@ Nots90 Thật không may, tôi không hoạt động để làm bất cứ điều gì từ nó. Nếu bạn tìm thấy bất kỳ cách nào để tạo số mới hoặc nếu
booleans

1
14 đang thiếu một parens đóng:((()<((),))|(()<((),))<<(()<((),))|(()<((),))<<(()<((),))<<(()<((),)))<<(()<((),))
TemporalWolf

1
Đối với bản ghi, rev mới nhất của bạn đã không sử dụng như sau string.printable:c, j, k, l, s, v, w, y, z, A, B, C, D, E, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, !, #, $, &, ., :, ?, @, \\, `, {, }, \t, \r, \x0b, \x0c
wnnmaw

23

Japt , 448 byte, điểm 42

Một sự hợp tác lớn giữa Shaggy , ETHproductionsOliver .

v
y
Íà
Qiiii)iiii)âQ
ÂHq
LÁL
´Vn´VnVnVn
8
9
A
B
C
D
E
F
G
J-----J---J---J---J
[¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾]x
;Iìw
~~½e½e½e½e~½e½
++T+++T+++T+++T+++T+++T
22
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
4á
5²
°UU°°°U°°U°°U°°U°°U
»³³
7/¼
$'_____________________________b'$bb
ZµÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"aa
Sc
33
Mg011
##
6p
Rí í í í í è.
`¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥`l
¨N|N¹òò¹m···m|¹mò¹m···m|¹mò¹m···m|¹o
º¤¤*º¤*º¤
(Å<<(Å<<(Å<<(Å<<(Å<<(Å^(Å<<(Å<<(Å<<(Å^(Å
Y±Y¶YY±YY±Y±Y¶YY±YY±Y±Y¶YY±Y

Những ký tự (hữu ích) này được để lại:

!%&,:=>?@OPWX\dfhjkrstuz{}¡¢£¦§©ª«¬®¯¸ÀÃÆÇÈÐßãäåæçéêëîïñóôõö×øÿ

Giải thích

Một vài điều cần biết về Japt trước khi chúng tôi bắt đầu, rằng tôi đã sử dụng thường xuyên. Thứ nhất, Japt có 6 biến dành riêng cho đầu vào, đó là các chữ cái viết hoa U-Z. Nếu không có đầu vào nào được chuyển qua các biến đó, tất cả chúng đều mặc định 0. Điều thứ hai được đề cập trong mẹo này .

Nhấp vào bất kỳ đoạn mã nào để thử nó trong trình thông dịch trực tuyến .


v

Khi áp dụng cho một số, vphương thức lấy một số nguyên n làm đối số và trả về 1 nếu số đó chia hết cho n , 0 nếu không. Nếu n không được cung cấp thì nó mặc định là 2 . 0 (giá trị mặc định cho U) chia hết cho 2 , vì vậy đây cho chúng ta của chúng tôi 1 .


y

Rất giống với cái đầu tiên. Khi áp dụng cho một số, yphương thức lấy một số nguyên n làm đối số và trả về GCD của hai số. Nếu n không được cung cấp thì nó mặc định là 2 . Vì 0 chia hết cho 2 , GCD (0, 2) cho chúng ta 2 .


Íà
Ílà lối tắt cho n(2)hoặc 2- this. Bởi vì chúng tôi không có đầu vào, chúng tôi mặc định thisđể 0, mà kết quả trong 2-0 = 2.

àtrả về số lượng kết hợp [1...this], trả về 3


Qiiii)iiii)âQ

Qmặc định cho một dấu ngoặc kép itrên một chuỗi chèn một chuỗi khác ở đầu; như được giải thích trong mục số 3 , mỗi bản iiii)tương đương với .i("i".i("i"))trong JS, do đó chèn hai bản sao iở đầu chuỗi. Làm điều này hai lần và bạn có chuỗi iiii". âQsau đó mô phỏng .search(Q), đưa ra chỉ số của chuỗi đầu tiên "trong chuỗi, là 4 .


ÂHq
Hlà hằng số cho 32 . Khi áp dụng cho một số qphương thức, lấy số nguyên n làm đối số, trả về gốc thứ n của số đó. Nếu n không được cung cấp, giá trị mặc định là 2, do đó cung cấp cho chúng ta căn bậc hai của 32, xấp xỉ 5,6568 . là lối tắt cho , kết quả sàn, cho chúng ta 5 .HqÂ~~


LÁL
Lđược đặt trước là 100Álà phím tắt cho >>>(zero-fill bitwise right shift). 100>>>100giống như 100>>>4(toán hạng bên phải kết thúc mod 32), là 6 .


´Vn´VnVnVn

Như đã lưu ý trước đó, Vmặc định là 0 . ´là lối tắt cho --toán tử, vì vậy mã tương đương với JS sau:

(--V).n((--V).n(V.n(V.n())))

X.n(Y)tương đương với Y - X , hoặc -X + Y ; cái đầu tiên --Vtrả về -1 và cái thứ hai -2 , vì vậy cái này tương đương với - (- 1) + (- (- 2) + (- (- 2) + - (- 2))) . Đơn giản hóa, ta được 1 + 2 + 2 + 2 = 7 .


8
9

Theo nghĩa đen, 89 .


A
B
C
D
E
F
G

Đây là các hằng số cho 10 - 16 , bao gồm.


J-----J---J---J---J

Jđược đặt trước -1 . Trình thông dịch Japt bằng cách nào đó quản lý để phân tích chính xác điều này, như (J--) - (--J) - (--J) - (--J) - (--J). Làm thêm một số phép toán, chúng tôi thấy rằng điều này tương đương với (-1) - (-3) - (-4) - (-5) - (-6) hoặc -1 + 3 + 4 + 5 + 6 = 17 .


[¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾]x

¾là, như bạn có thể đoán, một lối tắt cho .75. Chúng tôi đặt 24 bản sao 0,75 trong một mảng, sau đó tổng hợp xlại, cho 0,75 * 24 = 18 .


;Iìw

Tôi nghĩ rằng đây là một trong những yêu thích của tôi. ;vào đầu chương trình thay đổi giá trị của một số hằng số Japt; không có nó I64 , nhưng với nó, I91 . ìwchuyển đổi nó thành một danh sách các chữ số và chạy wtrong danh sách, đảo ngược mảng, sau đó chuyển đổi lại thành một số để có được 19 .


~~½e½e½e½e~½e½
½là một phím tắt cho .5. etrên một số x nhận một đối số y và trả về x * 10 y . Vì vậy, chuỗi các tính toán xảy ra là:

           ½e½     1.5811  (.5 * sqrt(10))
          ~       -2
        ½e         0.005  (.5 * (10 ** -2))
      ½e           0.5058
    ½e             1.6024
  ½e              20.0138

Và trận chung kết ~~phục vụ cho số nguyên này, cho kết quả là 20 .


++T+++T+++T+++T+++T+++T
Tđược đặt trước là 0 . ++là toán tử gia tăng trong JS và cả trong Japt; T+++Tđược phân tích cú pháp dưới dạng (T++) + T, nhưng ++T+++Tđược phân tích cú pháp dưới dạng (++T) + (++T), do đó, điều này tương đương với mã JS

(++T) + (++T) + (++T) + (++T) + (++T) + (++T)

Kết quả là 1 + 2 + 3 + 4 + 5 + 6 , tính tổng bằng 21 .


22

Một nghĩa đen 22 .


ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

Älà một phím tắt cho +1, vì vậy, điều này chỉ đơn giản là tổng hợp 23 1 s.


Điều này tìm thấy số lượng hoán vị của [1, 2, 3, 4], là 4! = 24 .


²là một lối tắt cho p2, làm tăng một số đến sức mạnh của hai. 5 ** 225 .


°UU°°°U°°U°°U°°U°°U

°là một phím tắt cho ++toán tử hoặc nếu nó không thể được phân tích cú pháp như vậy , + +. Như đã lưu ý trước đây, khi không có đầu vào, Umặc định là 0 . Vì vậy, mã tương đương với (++U), (U++) + + (++U) + + (++U) + + (++U) + + (++U) + + (++U), rất giống với # 17 : Ulần đầu tiên được tăng lên 1, sau đó tăng liên tục và thêm vào sao cho kết quả cuối cùng là 1 + 3 + 4 + 5 + 6 + 7 = 26 .


»³³

³là lối tắt cho pphương thức với đối số là 3 . Tuy nhiên, nếu một chữ cái viết thường xuất hiện trực tiếp sau dấu ngoặc trái ( »là phím tắt cho ((), nó sẽ trở thành một chuỗi. Điều này cho phép nó được truyền vào một phương thức và được gọi là một hàm (tức là sẽ được ánh xạ bởi .p(3)). Tuy nhiên, trong trường hợp này, ("p",3)trả về giá trị của chúng tôi 3, sau đó chúng tôi nâng nó lên sức mạnh của 3( plà phương thức sức mạnh khi áp dụng cho một số), mang lại cho chúng tôi 27 .


7/¼

¼, như bạn có thể biết bây giờ, là một phím tắt cho .25, vì vậy, tính toán 7 / 0,25 = 28 .


$'_____________________________b'$bb

Bất cứ điều gì được bao bọc trong $các biểu tượng đều được coi là JavaScript thuần túy, vì vậy chúng tôi đã có một chuỗi 29 dấu gạch dưới theo sau là a b. (Nếu không có $, 'sẽ là một chuỗi ký tự đơn.) bPhương thức khi được áp dụng cho một chuỗi trả về chỉ mục đầu tiên của đối số trong chuỗi đó. Như đã giải thích trong mục số 3 , cái cuối cùng bđược chuyển đổi thành một chuỗi, vì vậy chúng tôi đang lấy chỉ số đầu tiên btrong chuỗi của chúng tôi là 29 .


ZµÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ

µlà một phím tắt cho -=, và Écho -1. Hiệu ứng này trừ 30 bản sao -1 từ 0 , cho 30 .


"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"aa

Rất giống # 29. Các aphương pháp, khi áp dụng cho một chuỗi, trả về chỉ số cuối cùng của đối số của nó trong chuỗi đó. Sử dụng lập chỉ mục 0, chỉ mục cuối cùng atrong chuỗi 32 agiây là 31 .


Sc

Sđược xác định trước cho một không gian duy nhất và ctrên một chuỗi char đơn trả về mã char của nó, cho 32 .


33

Nghĩa đen 33 .


Mg011

MgNtrả về số Fibonacci thứ N. 0119 trong bát phân; số Fibonacci thứ 9 là 34 .


##

#trả về mã char của ký tự tiếp theo. Mã char của #chính nó xảy ra là 35 , làm cho công việc của chúng tôi ở đây đặc biệt dễ dàng.


6p

plà lũy thừa, và không có đối số thứ hai, nó mặc định là 2 ; do đó, điều này in 6 ** 2 = 36 .


Rí í í í í è.

Điều này là khá khó khăn. Rmặc định cho một ký tự dòng mới (rằng đó là một dòng mới trở nên quan trọng sau này). ítrên một chuỗi, không có bất kỳ đối số nào, sẽ lấy từng ký tự và nối thêm chỉ mục của nó: một phép biến đổi khá vô dụng, nhưng kết quả qua 5 lần lặp lại là: (sử dụng Rthay vì một dòng mới theo nghĩa đen)

R
R0
R001
R0010213
R001021304251637
R0010213042516370849210511112613314715

Thật thú vị khi mỗi mục chỉ đơn giản là một tiền tố của phần tiếp theo ... Nhưng dù sao, phần cuối cùng è., sẽ đếm xem có bao nhiêu kết quả khớp /./gđược tìm thấy trong kết quả. Có 38 ký tự trong chuỗi; tuy nhiên, vì /./gchỉ phù hợp với các ký tự không phải dòng mới, kết quả là 37 .


¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥l

Backticks đánh dấu một chuỗi nén và ¥giải nén thành ll. ltrên một chuỗi cho length, vì vậy sau khi giải nén, điều này cho 38 .


¨N|N¹òò¹m···m|¹mò¹m···m|¹mò¹m···m|¹o

Oooh, đây là một doozy. Đầu tiên, chúng ta tạo truevới ¨N( ¨viết tắt >=Nkhông có đầu vào là mảng trống), sau đó chuyển đổi nó thành 1với |N. Từ đó trở đi, nó trở nên khá điên rồ:

ò    Inclusive range [0..1],            [0, 1]
 ò   making each an inclusive range.    [[0], [0, 1]]
m·   Join each on newlines.             ["0", "0\n1"]
·    Join on newlines.                  "0\n0\n1"
·    Split on newlines.                 ["0", "0", "1"]
m    Map each item X and index Y to     
 |     X | Y.                           ["0" | 0, "0" | 1, "1" | 2] -> [0, 1, 3]
m    Map each by 
 ò     inclusive range.                 [[0], [0, 1], [0, 1, 2, 3]]
m··· Same as before.                    ["0", "0", "1", "0", "1", "2", "3"]
m|   Bitwise OR thing again.            [0, 1, 3, 3, 5, 7, 7]
mò   Map each by inclusive range.       [[0], [0, 1], ..., [0, 1, 2, 3, 4, 5, 6, 7]]
m··· Same as before.                    ["0", "0", ..., "5", "6", "7"]
m|   Bitwise OR again.                  ["0"|0, "0"|1, ..., "5"|30, "6"|31, "7"|32]
                                        -> [0, 1, ..., 31, 31, 39]

(Các ¹s chỉ là thay thế cho parens gần và đã bị bỏ qua.) Cuối cùng osau đó bật và trả về mục cuối cùng trong mảng, cho 39 .


º¤¤*º¤

Chủ yếu là thủ thuật tương tự như với # 3 . ¤là lối tắt cho sphương thức với đối số là 2 . Tuy nhiên, trong trường hợp này, mã được mã hóa là (("s", 2).s(2) * (("s", 2) * (("s", 2))))hoặc đơn giản hóa (2).s(2) * (2 * 2). .s(2)trả về số dưới dạng chuỗi cơ sở 2, cung cấp cho "10"; * (2 * 2)ngầm chuyển đổi số này thành một số và nhân với 4 , cho 40 .


(Å<<(Å<<(Å<<(Å<<(Å<<(Å^(Å<<(Å<<(Å<<(Å^(Å

Tương tự như cái trước. Ålà lối tắt cho sphương thức với đối số là 1 . Tuy nhiên, trong trường hợp này, mỗi lần chuyển mã tới ("s", 1), chỉ trả về 1 . 1<<1<<1<<1<<1<<132 , và 1<<1<<1<<18 ; đây là XORed cùng với 1để có được 41 .


Y±Y¶YY±YY±Y±Y¶YY±YY±Y±Y¶YY±Y

±là một phím tắt cho +=, và cho ===. Điều này có nghĩa là mã thực sự

Y+=Y===Y,Y+=Y,Y+=Y+=Y===Y,Y+=Y,Y+=Y+=Y===Y,Y+=Y

Y===Y luôn luôn đúng, vì vậy chúng ta có thể đơn giản hóa một số điều này:

Y+=1,Y+=Y,Y+=Y+=1,Y+=Y,Y+=Y+=1,Y+=Y

0 + 1 = 1 ; 1 + 1 = 2 ; 2 + (2 + 1) = 5 ; 5 + 5 = 10 ; 10 + (10 + 1) = 21 ; 21 + 21 = 42 .


Ồ, điều này đang trở nên tuyệt vời ngay bây giờ :-) Bạn có thể sử dụng Iqcho 8 để 8quay lại, bạn phải tìm một cái gì đó khác cho 19 mặc dù.
Sản phẩm ETH

@ETHproductions: chỉ được sử dụng qđể 5cho phép tôi sử dụng lđể thêm một số phụ. Làm việc trên một giải pháp thay thế 2để tôi có thể lấy =lại.
Shaggy

@Shaggy Bạn có thể sử dụng cho 2. L>>Lcó thể giải phóng 6. #w s Åcó thể giải phóng ;I
Oliver

Thủ thuật hay cho 2, @obarakon; Tôi đã sử dụng một cái gì đó tương tự như miễn phí lên 3, quá. Thật không may, nó không hoạt động trong 19 vì tôi đã sử dụng #cho 21.
Shaggy

Tôi nghĩ rằng bạn có thể trao đổi 22 với 18 để tiết kiệm một vài byte và lấy lại *^
ETHproductions

18

PHP, điểm 17, 130 byte

ký tự được sử dụng ADEFGIKLMOPRSTVXYZ=_![]()<>'"#$,;/-+*|^&0123456789afhnprstwx

Z==Z
FTP_MOREDATA
';'&w
![]<<![]<<![]
5
6
"#"|"$"|"1"
8
SIGKILL
333333>>3>>3>>3>>3>>3
99/9
22-2-2-2-2-2
strspn(XXXXXXXXXXXXXX,X)
7+7
0xf
4*4
ha^YV

1 Hằng số Boolean Z (không đặt) hằng số Z bằng

2 FTP_MOREDATA là một hằng số trong PHP với giá trị 2

3 bitwise và ký tự; và W

4 bit Shift trái và logic không chuyển mảng trống thành boolean true với được truyền sang số nguyên 1 thông qua toán tử shift trái

7 bitwise Hoặc ký tự # và $ và 1

9 SIGKILL là một hằng số trong PHP với giá trị 9

10 bit Shift phải mỗi bước là một phép chia số nguyên với 8 vì vậy chúng ta có các bước 333333, 41666, 5208, 651, 81, 10

13 đếm char X trong chuỗi X ... từ đầu

15 giá trị thập lục phân f = 15

17 bitwise Xor với các chuỗi ha và YV

Tất cả các đoạn là các mục trong một mảng

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

PHP, điểm 16, 94 byte

ký tự được sử dụng AEIMPRTUZeflnrstvwx^_&|()[]=!.*+/-<>$":0123456789

Z==Z
":"&"w"    
M_PI|[]
TRUE<<TRUE<<TRUE
5
6
A^v    
8
9
!$s.strlen($s)    
77/7
3+3+3+3
111>>1>>1>>1    
22-2-2-2-2
0xf
4*4

1 Hằng số Boolean Z (không đặt) hằng số Z bằng

2 bitwise và chars: và w

3 Pi được truyền tới giá trị nguyên thông qua mảng trống được chuyển thành 0

7 bit xor chars A và v

10 biến $ s không được đặt! $ S = một concat với độ dài chuỗi của biến $ s

13 111/2 = 55/2 = 27/2 = 13 Phân chia số nguyên theo bit

15 giá trị thập lục phân f = 15

Tất cả các đoạn là các mục trong một mảng

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

PHP, điểm 14, 84 byte

ký tự được sử dụng $!_^[]()%/+~-=AEILMNPRUZ0123456789delnrstx

Z==Z
2
M_PI^[]
4
5
6
ERA%11
8
9
!$s.strlen($s)
77/7
3+3+3+3
0xd    
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-NULL

1 Hằng số Boolean Z (không đặt) hằng số Z bằng

3 Pi được truyền tới giá trị nguyên thông qua mảng trống được chuyển thành 0

7 ERA là hằng số có giá trị 131116 mod 11 = 7

10 biến $ s không được đặt! $ S = một concat với độ dài chuỗi của biến $ s bằng 0

13 giá trị thập lục phân d = 13 14 bit bit không và dấu trừ tăng NULL lên 14

Tất cả các đoạn là các mục trong một mảng

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


17

R, điểm 13 14

F^F                       # F==0 in R
q=""=="";q--q             # ""=="" is TRUE, TRUE == 1 (Thanks WheatWizard)
3
4
5
6
7
8
9
1e1                       # scientific notation for 10
22/2
T+T+T+T+T+T+T+T+T+T+T+T   # T == 1
0xD                       
sum(mtcars$vs)            # mtcars is a built-in dataset, summing the $vs column gives 14

Có thêm một nhờ vào user2390246.

Ký tự được sử dụng:

0123456789acemqrstuvxDFT^=";-/+()$


1
Bạn có thể kéo dài đến 14 nếu chúng tôi được phép sử dụng bộ dữ liệu tích hợp. 1 : F^F, 2 : "n"%in%"n"+"n"%in%"n"; 3-9: chữ số, 10 : 1e1, 11 : 22/2, 12 : T--T--T--T..., 13 : 0xD, 14:sum(mtcars$vs)
dùng2390246

Sử dụng sáng chói %và nghĩ đến việc sử dụng bộ dữ liệu tích hợp. Tôi không thể thấy tại sao nó sẽ ổn.
BLT

Tôi đã tự hỏi liệu có thể lấy lại được một lần nữa bằng cách sử dụng dữ liệu tích hợp hay không: nếu có một tập dữ liệu với các hàng và cột được đặt tên, bạn có thể có một lệnh dọc theo dòng dataset['A','B'], cung cấp nó tránh chồng chéo các chữ cái đã sử dụng (và xảy ra để chứa một giá trị hữu ích!). Thật không may, theo như tôi có thể nói từ một cái nhìn nhanh, tất cả các bộ dữ liệu với các hàng được đặt tên đều chứa chữ i, vì vậy nó không tương thích với việc sử dụng %in%.
dùng2390246

Hừm. Đối với 2, bạn có thể sử dụng một mẹo từ câu trả lời Python của WheatWizard : q=""=="";q+q. Điều đó sẽ giải phóng việc sử dụng các chữ cái in. Bây giờ không có thời gian để xem xét nó, nhưng tôi cá là có thêm một cái nữa ở đâu đó ...
user2390246

Tôi nghĩ bạn đúng. Vấn đề chính dường như là tìm một tập dữ liệu không sử dụng i, n, s, u, m, t, c, a, r, e, x hoặc v. Lấy lại một số chữ cái sẽ giúp ích.
BLT

16

MATL , điểm 21 22 23 số (273 byte)

Cảm ơn J Doe đã mở rộng từ 22 đến 23 số!

0~
'bd'd
{P}gk
HH^
5
6
7
8
9
3 3.333333333333333*
11
IEE
[B]Yq
llllllllllllllNwxwxwxwxwxwxwxwxwxwxwxwxwxwx
KUKUa-
4W
FFFFFFFFFFFFFFFFFn
TTTTTTTTTTTTTTTTTTs
rrrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhz
OOOOOOOOOOOOOOOOOOOOvZyX>
JJJJJJJJJJJJJJJJJJJJJ++++++++++++++++++++J/
22
`@QQQQQQQQQQQQQQQQQQQQQQ@@<

Hãy thử trực tuyến! Mỗi đoạn mã trong liên kết được kết thúc bằngD(hiển thị) hoặc]D(đóng vòng lặp rõ ràng và hiển thị) để xóa ngăn xếp và do đó cách ly với đoạn mã tiếp theo.

Giải trình

0~

Đẩy 0. Phủ định. Cung cấp true, được hiển thị như 1.

'bd'd

Đẩy dây 'bd'. Sự khác biệt liên tiếp giữa các điểm mã của nhân vật.

{P}gk

Đẩy mảng di động chứa số pi. Chuyển đổi sang mảng số (tức là thành một số duy nhất). Làm tròn xuống.

HH^

Đẩy 2hai lần. Quyền lực.

5

Chữ số.

6

Chữ số.

7

Chữ số.

8

Chữ số.

9

Chữ số.

3 3.333333333333333*

Đẩy 3. Đẩy 3.333333333333333. Nhân. Do độ chính xác của dấu phẩy động này cho 10.

11

Chữ số.

IEE

Đẩy 3. Nhân với 2hai lần.

[B]Yq

Đẩy [6](giống như 6). Tính số nguyên tố thứ n .

llllllllllllllNwxwxwxwxwxwxwxwxwxwxwxwxwxwx

Đẩy 114 lần. Số phần tử trong ngăn xếp. Xóa phần còn lại của ngăn xếp.

KUKUa-

Đẩy 4. Quảng trường. Làm điều tương tự. Bất kỳ: cho 1. Trừ đi.

4W

Đẩy 4. 2nâng lên đó

FFFFFFFFFFFFFFFFFn

Đẩy mảng [false false ... false](17 lần). Số phần tử trong mảng.

TTTTTTTTTTTTTTTTTTs

Đẩy mảng [true true ... true](18 lần). Tổng của mảng.

rrrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhz

Đẩy 19 số ngẫu nhiên được lấy từ khoảng (0,1). Nối theo chiều ngang 18 lần. Số phần tử khác không trong mảng.

OOOOOOOOOOOOOOOOOOOOvZyX>

Đẩy 020 lần. Ghép các nội dung ngăn xếp theo chiều dọc (đưa ra một vectơ cột). Kích thước: cho mảng [20 1]. Tối đa của mảng.

JJJJJJJJJJJJJJJJJJJJJ++++++++++++++++++++J/

Đẩy 1j(đơn vị tưởng tượng) 21 lần. Thêm 20 lần. Chia cho 1j.

22

Chữ số

`@QQQQQQQQQQQQQQQQQQQQQQ@@<

Làm ... while loop ( `) với kết thúc ngầm. Trong lần lặp đầu tiên, nó đẩy chỉ số lặp ( @) và tăng nó ( Q) 22 lần, mang lại kết quả 23. Điều kiện vòng lặp ( @@<) là sai, do đó vòng lặp được thoát.

Một số ý tưởng để cải thiện hơn nữa

  • (dấu cách) trong đoạn 10 có thể được thay thế bằng |
  • X>trong đoạn 20 có thể được thay thế bằng p, do đó giải phóng tiền tố X.
  • Hiện không được sử dụng và có khả năng hữu ích : :,A

Bạn có phiền bao gồm số byte không?
Okx

@Okx Bao gồm ngay bây giờ
Luis Mendo

15

Vim 8 trên Windows, điểm 13, 104 byte

1
2
3
4
5
6
7
^R=&ts^@
9
8^O^A^O^A
0^[^X^X^X^X^X^X^X^X^X^X^X0x
:h<CR>wwwwwwwwwwwy$:q<CR>p
grgKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYZZvPWWWllld|llD

^{keystroke}đại diện <C-{keystroke}>, vì vậy ^X<C-x>, ngoại trừ ^@đó là <C-j>. Tôi vẫn đang cố gắng thêm nhiều số hơn vào danh sách này và <CR>thể hiện một nguồn cấp dữ liệu.

Lưu ý: để chạy các lệnh này, hãy bắt đầu sử dụng vim -u NONE -U NONE. Điều này là để đảm bảo rằng cấu hình của bạn sẽ không can thiệp vào mã.

Đoạn 1 đến 10 bắt đầu ở chế độ chèn. Trong khi đoạn 12 và 13 bắt đầu ở chế độ bình thường.

Giải thích

Đoạn 8 là :^R=&ts^@. Tôi phải cảm ơn @ L3viathan cho đến với này và @ nmjcman101 cho thấy ^@như một sự thay thế cho linefeed và @ ØrjanJohansen cho rút ngắn &tabstoptới &ts. &tssau đó ước tính kích thước của tab, theo mặc định là 8 và giá trị này được chèn vào trình chỉnh sửa.

Đoạn 10 là 8^O^A^O^A. Chúng tôi chèn một số 8, và sau đó tăng nó hai lần để có được 10.

Đoạn 11 là 0^[^X^X^X^X^X^X^X^X^X^X^X0x. Chúng tôi viết 0 và giảm 11 lần để lấy -11. Sau đó, chúng tôi loại bỏ các điểm trừ để có được 11.

Đoạn 12 là :h<CR>wwwwwwwwwwwy$:q<CR>p. Thao tác này sẽ mở menu trợ giúp của Vim 8, chứa thông tin sau:

*help.txt*  For Vim version 8.0.  Last change: 2016 Sep 12

Và chuỗi ws di chuyển đến 12, tại đó điểm y$sao chép số. Sau đó, nó được dán vào trình chỉnh sửa bằng cách sử dụng p.

Đoạn 13 là grgKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYZZvPWWWllld|llDnhờ @DJMcMayhem vì đã đưa ra nó. Điều này chỉ hoạt động trên Windows. Đoạn mã tìm kiếm trình đơn trợ giúp cho các lệnh bắt đầu bằngg . Sau đó, nó di chuyển xuống bằng cách sử dụng jđể đến dòng này:

|g?|        g?      2  Rot13 encoding operator

sau đó nó sao chép nó và dán nó vào bộ đệm. Sau đó, mọi thứ trừ 13 được xóa khỏi bộ đệm.


Đoạn trích được cho phép.
Rò rỉ Nun

Sẽ ^R=&tabstop+&tabstop+&tabstop<CR>Pcung cấp cho bạn 12, hoặc <CR>đã được sử dụng vì ^M?
L3viathan

1
Vâng, ý tôi là <CR>khi tôi nói ^M, nhưng cảm ơn, tôi sẽ xem xét loại bỏ ^Mđoạn trích 8 ngay bây giờ :)
Bò lang băm

1
@WheatWizard Khóa điều khiển không được tính là tổ hợp phím cũng như byte, nhưng nó được sử dụng kết hợp với các khóa khác và chúng sẽ được tính là byte. Ví dụ: Ctrl + A cung cấp byte 0x01trong khi Ctrl + X cung cấp 0x18. Và rõ ràng, hai cái này là các byte riêng biệt. Điều đó có ý nghĩa?
Bò lang băm

1
@ L3viathan Khi bắt đầu vim với -u NONE -U NONE, &tabstopước tính là 8. Vì vậy, tôi đã trao đổi điều này với đoạn mã 8 với một số sửa đổi, cảm ơn :)
Bò lang băm

13

Toán, điểm 13

x~D~x
⌊E⌋
3
⌈Pi⌉
5
6
LucasL@4
8
9
0!+0!+0!+0!+0!+0!+0!+0!+0!+0!
77/7
Tr[{11,1}]
-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I

Bạn có lẽ nên loại bỏ các ký tự không gian dư thừa, có vẻ như bạn đã sử dụng lại ký tự đó.
Ørjan Johansen

1
đó không phải là vấn đề Tôi sẽ loại bỏ chúng.
J42161217

2
"tất cả các ký tự phải được mã hóa bằng một byte trong ngôn ngữ bạn chọn" - Tôi sợ rằng không có bất kỳ mã hóa nào mã hóa ⌊⌋⌈⌉mọi thứ trong một byte mỗi ...
user202729

Chúng ta có thể tránh ⌊⌋⌈⌉bằng cách biến ⌊E⌋thành Floor@GoldenRatio, ⌈Pi⌉vào 4, LucasL@4vào 777/7vào 22/2. Có thể có thể tiến xa hơn ít nhất một bước bằng cách áp dụng một chức năng với//
Misha Lavrov

12

05AB1E , Điểm 18, 67 byte

X     Variable is initialized to 1
Y     Variable is initialized to 2
2>     2 + 1
4
5
6
7
8
9
T     Constant 10
3b     3 in binary
•C     Ascii code of 'C'
11Ì     11 in hex
A'ok     Index of 'o' in the alphabet
žz¨¤x+     Middle character of '256' times 2, plus itself
¾<<<<n     Variable initialized to 0, 4 times -1, squared
‘c‘‘c‘QDJH     'c' equals itself (true = 1), duplicated, converted from hex to dec
тD÷·±D*·     Constant 100, divided by itself, * 2, bitwise not, times itself, * 2
"d"aÐÐÐÐÐÐÐÐÐ)O     "d" is_alpha (true = 1), triplicated 9 times, total sum

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


13
Câu trả lời của bạn là A'ok:)
Okx

Dưới đây là ba giá trị khác: „((Ç;¬= 20.0(char hai byte "(("; thành các giá trị thứ tự; giảm một nửa cả hai; lấy đuôi); ₁.²₁P₃/ï= 21(log-2 của 256; nhân với 256; chia cho 95; với số thập phân được loại bỏ); ₂Ågttγć= 22(Thuật ngữ Lucas thứ 26; hai lần căn bậc hai; chia thành hai phần tử bằng nhau; phần đầu được trích xuất). Hai phần cuối là bản dùng thử và lỗi ..;)
Kevin Cruijssen

9

PingPong , điểm 127

Trong PingPong, mỗi ký tự đều có giá trị số riêng biệt, khiến cho việc đếm tất cả lên tới 127 một nhiệm vụ tầm thường. Ngôn ngữ hoạt động bằng cách đọc giá trị của mỗi ký tự và đẩy nó lên trên cùng của ngăn xếp, nơi tất cả các hoạt động được thực hiện. Về mặt lý thuyết, PingPong có thể vượt qua 127 nhưng nó sẽ yêu cầu vượt qua một khối các ký tự đơn giản xuất hiện dưới dạng khoảng trắng trong trình soạn thảo văn bản nên tôi đã loại chúng ra khỏi giải pháp của mình.

1: 1
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 9
10: A
11: B
12: C
13: D
14: E
15: F
16: G
17: H
18: I
19: J
20: K
21: L
22: M
23: N
24: O
25: P
26: Q
27: R
28: S
29: T
30: U
31: V
32: W
33: X
34: Y
35: Z
36: a
37: b
38: c
39: d
40: e
41: f
42: g
43: h
44: i
45: j
46: k
47: l
48: m
49: n
50: o
51: p
52: q
53: r
54: s
55: t
56: u
57: v
58: w
59: x
60: y
61: z
62: ©
63: ®
64: À
65: Á
66: Â
67: Ã
68: Ä
69: Å
70: Æ
71: Ç
72: È
73: É
74: Ê
75: Ë
76: Ì
77: Í
78: Î
79: Ï
80: Ð
81: Ñ
82: Ò
83: Ó
84: Ô
85: Õ
86: Ö
87: ×
88: Ø
89: Ù
90: Ú
91: Û
92: Ü
93: Ý
94: Þ
95: ß
96: à
97: á
98: â
99: ã
100: ä
101: å
102: æ
103: ç
104: è
105: é
106: ê
107: ë
108: ì
109: í
110: î
111: ï
112: ð
113: ñ
114: ò
115: ó
116: ô
117: õ
118: ö
119: ÷
120: ø
121: ù
122: ú
123: û
124: ü
125: ý
126: þ
127: ÿ

5
Ok, điều này thậm chí không công bằng ...: P
MD XF

wow, nó giống như ngôn ngữ này đã được thực hiện cho thử thách này: D
V. Courtois

TIL về một ngôn ngữ kỳ lạ khác :)
roblogic

8

Octave, Điểm 14, 74 byte

Khá chắc chắn bây giờ tôi đã gần đến giới hạn.

1:  ~0                        % Not 0 == 1
2:  "H"/"$"                   % "H" = 72, "$" = 36. H/$ = 2
3:  3                         % Literal
4:  4                         % Literal
5:  5                         % Literal
6:  6                         % Literal
7:  7                         % Literal
8:  8                         % Literal
9:  9                         % Literal
10: ceil(pi*pi)               % pi*pi = 9.87. ceil(9.87) = 10
11: 11                        % Literal
12: 2+2+2+2+2+2               % Well, not much to say
13: ['','RT'-'!']             % 'RT' = [82,84]. Subtract '!' (33) to get ['',49,51]=13
14: nnz...                    % Number of non-zero elements in the string...
    nnnnnnnnnnnnnn            % on this line. (This is an awesome trick by the way!)

Phải loại bỏ strchrkể từ khi tôi đã có ctrong số 10 tôi vẫn còn có j, ^, =, !, không gian và tab ngang (ASCII-9) trái, vì vậy nó có thể là có thể bóp thêm một trong.

Tab ngang có thể được sử dụng như một khoảng trắng, do đó, mẹo được sử dụng strchrnnzcó thể được sử dụng thêm một lần nữa. Các chữ cái viết thường duy nhất còn lại là abdfgjkmoquvwxy. Không có nhiều chức năng có thể được tạo ra từ những điều này.modcó thể hoạt động, nhưng nó không thể lấy chuỗi đầu vào.

Thật dễ dàng để sử dụng các ký tự còn lại để có được 1, nhưng tôi không biết làm thế nào tôi có thể nhận được bất cứ thứ gì khác.

Kiểm tra tất cả .

Có thể hữu ích: fun agiống như fun('a'), fun a bgiống như fun('a','b')và như vậy. Điều này có thể được sử dụng một số nơi:

gt t g    % Equivalent to 't'>'g'. Returns 1. Uses space (available)
or o r    % Equivalent to 'o' | 'r'. Returns 1. 

Sử dụng cái này sẽ 0có sẵn, nhưng tôi không thể thấy làm thế nào để nó hữu ích.

e (2.71828...)jvẫn chưa được sử dụng. Phải loại bỏ ceilđể sử dụng emặc dù.

Lựa chọn thay thế (cảm hứng):

1:  ~0             % Not 0 = 1
2:  2              % Numeral
3:  3              % Numeral
4:  fix(i^i^i^i)   % Numeral
5:  5              % Numeral
6:  6              % Numeral
7:  7              % Numeral
8:  8              % Numeral
9:  9              % Numeral 
10: 1+1+1+1+1+1+1+1+1+1   % Well, not much to explain
11: ['','RR'-'!']  % RR are [82,82] in ASCII, subtract 33 (!) to get
                   % [49,49], and concatenate with the empty string to convert [49,49] to 11 
12: nnz nnnnnnnnnnnn   % Number of non-zero elements in the string containing 12 n
13: "4"/4          % "4" = 52. Divide it by 4 to get 13.

7

JavaScript (ES7), 16 số nguyên, 137 130 128 byte

Tôi lấy câu trả lời của @ETHproductions và chạy với nó một lúc; nó đã thay đổi rất nhiều đến nỗi tôi đang đăng nó một cách riêng biệt. Ý tưởng được chào đón. :)

""**""
-~-~{}
3
C=CSS==CSS;C<<C<<C
5
6
7
8
9
++[[]][+[]]+[+[]]
11
4444444444444444444%44
222>>2>>2
`..............i`.indexOf`i`
0XF
atob('MTY')

Còn lại:
$_@#!^&|/?:, ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz

Hoặc, nếu đoạn mã cho 1 được thay thế bằng !!/!//!!/!/:
$_@#^&|*?:", ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz


JavaScript (ES7), 16 số nguyên, 127 byte

Một byte ngắn hơn. : P

""**""
-~-~{}
3
4
5
6
7
C=CSS==CSS;C<<C<<C<<C
9
++[[]][+[]]+[+[]]
11
`............i`.indexOf`i`
222>>2>>2
0XE
atob('MTU')
88888888888888888%88

Còn lại: $_@#!/^&|?:,ABDFGHIJKLNPQRVWYZcghjklmpqrsuvwyz


1
Lưu 7 byte trên 2 với -~{}-~{}: P Nhìn chung, những thứ này khá tốt. Chắc chắn là ngắn hơn tôi ...
ETHproductions

1
Và bạn vẫn còn tất cả !&/^|để làm việc cùng, khá ấn tượng. Nếu cần, bạn có thể sử dụng !!/!//!!/!/cho 1 đối với thương mại !/cho "*.
Sản phẩm ETH

@ETHproductions Tuyệt vời!
darrylyeo

1
2 chỉ là-~-~{}
GOTO 0

10 có thể được viết là +!![]+[+[]], miễn là không có cách sử dụng nào tốt hơn cho!
GOTO 0

7

APL Dyalog, điểm 15, 89 byte

≡''
≢###
3
4
⍴⍬⍬⍬⍬⍬
6
⌈○2
8
9
1E1
⎕D⍳⊂⎕D











l:l
7--7-×7
(~0 0 0 0 0 0 0 0 0 0 0 0 0 0)⊥~0
5+5+5

Các dòng mới trước đây l:llà một phần của 12.

Các khoảng trắng trong 14 đại diện cho các tab.


1
Tôi nghĩ rằng bạn có thể đang sử dụng không gian trong cả 12 và 14. APL có thể sử dụng các tab thay thế không?
Ørjan Johansen

@ RjanJohansen không có thêm không gian, nhưng tôi đã bao gồm nhầm các dòng tách biệt các đoạn trích
Uriel

Ý tôi là, nhân vật không gian dường như được sử dụng trong hai mục, 12 và 14.
rjan Johansen

@ RjanJohansen oh, vâng, cái cuối cùng sẽ đi với các tab.
Uriel

@Uriel một số ý tưởng: 0 0 0-> 0,0,0; ]fromhex f
ngn

7

> <> , điểm 20, 93 90 74 65 byte

(3 byte được lưu bởi Teal Pelican, rất nhiều byte được lưu bởi Jo King!)

iii((
2
3
ll{lll{[
5
6
7
8
!   00=0g
a
b
c
d
e
f
44*
'RA'%
999-9--
"&F#",,
1::+:++:+:+

Hãy thử chúng tại sân chơi cá! Bạn có thể làm cho các đoạn trích in kết quả của chúng bằng cách thêm n;vào cuối mỗi đoạn. Lưu ý rằng đoạn mã thứ 9 chứa một tab, được ăn bằng cách trao đổi ngăn xếp.

Giải trình:

  • Trong iii((, mỗi người icố gắng để có được đầu vào, nhưng vì không có gì, họ -1thay vào đó đẩy EOF = . Sau đó (là hướng dẫn ít hơn, và vì -1không ít hơn -1, nó đẩy một con chim ưng 0; nhưng (câu hỏi thứ hai -1là nếu ít hơn 0, đó là, vì vậy nó đẩy một sự thật 1.
  • 23là hiển nhiên
  • Đối với ll{lll{[, lần đầu tiên lđẩy chiều dài của ngăn xếp, nghĩa là 0lần thứ hai đẩy chiều dài mới, đưa ngăn xếp đến 0, 1. Các {xoay ngăn xếp trái, trao đổi 10. Ba ls nữa mang chồng đến 1, 0, 2, 3, 4. Sau đó {xoay cái 1ra phía trước, và hút [thứ đầu tiên 1trên ngăn xếp, đó là 4.
  • 5, 6, 78 là hiển nhiên quá.
  • Trong !\t00=0g(nơi \tđại diện cho một tab), !bỏ qua tab, sau đó 00=đẩy hai số không và kiểm tra xem chúng có bằng nhau không - vì vậy chúng ta có một sự thật 1. Sau khi đẩy cái khác 0, glấy ký tự ở vị trí 1,0của mã, đó là tab có mã ký tự 9.
  • athông qua để fmỗi push 10để 15tương ứng (có lẽ để làm cho hệ thập lục phân thoải mái).
  • 44*đẩy hai 4s và nhân chúng lại với nhau, cho 16.
  • 'RA'đẩy mã ký tự của RA(82 và 65 tương ứng) vào ngăn xếp, sau đó %tính toán 82 mod 65 = 17.
  • 999-9--đánh giá để 9 - ((9 - 9) - 9) = 18.
  • "&F#"đẩy các mã ký tự của &, F#, đó là 38, 7035tương ứng. Sau đó ,là phân chia, vì vậy chúng tôi nhận được 38 / (70 / 35) = 19.
  • Cuối cùng, 1::đẩy a 1và nhân đôi nó hai lần, cộng +hai trong số chúng lại với nhau để có được 2; :+nhân đôi 2và thêm nó vào chính nó để có được 4; +thêm phần còn lại 1để có được 5; sau đó :+:+nhân đôi và thêm hai lần, dẫn đến 20.

Đây là số điểm tối đa có thể với> <>. Bất kỳ đoạn phải bao gồm một lệnh ở đâu đó có thể biến một ngăn xếp rỗng vào một chồng không trống, và chỉ có 18> <> hướng dẫn có thể làm điều đó (cụ thể là i, lvà các chữ số 0–9a–f), cộng với chế độ chuỗi. (Mỗi hướng dẫn khác hoặc là không có gì để một ngăn xếp rỗng, ><v^/\|_#x!{}rhoặc cố gắng để bật một cái gì đó và lỗi, ?.+-*,%=():~$@[]on&gp.) Vào chế độ chuỗi sử dụng một trong hai "hoặc ', vì vậy có ít nhất 18 + 2 = 20đoạn càng tốt.


Nếu bạn cảm thấy thoải mái hơn với unprintables hơn tôi, điều này là có thể trong 53 byte, nhờ Jo King: 00=, iii((i-, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 2222***, !Xll$g, 11+::+:+:++, 'Y', "Z", nơi X, YZđược thay thế bằng ký tự mã 17, 1920tương ứng.


1
Điều này thật tuyệt, tôi đã xem xét vấn đề này và không thể làm tốt ở bất cứ đâu gần nơi này nhưng tôi đã nghiên cứu vấn đề của bạn và có thể chơi golf một chút; 16 có thể được thay đổi thành; iii ((: i $ -: i $ -: i $ - i- và 1 được đổi thành; 00 = và bạn giảm cả hai dòng bằng một vài byte.
Teal pelican

@Tealpelican, làm tốt lắm, cảm ơn bạn!
Không phải là một cái cây

1
-23 byte bằng cách thay đổi 2> iii((i-16> 2222***17> sau lll{lllll{{[{n(có thể sơ sài, nhưng nếu bạn muốn xuất dưới dạng một số, ít nhất là có một ít hơn l) 18>11+::+:+:++
Jo King

@JoKing, wow, đó là một sân golf lớn! (Tôi đã đi với phiên bản 17 ít sơ sài hơn - có vẻ phù hợp hơn với các quy tắc.)
Không phải là một cái cây

1
Làm thế nào về 17 => ! ll$gnơi không gian được thay thế bằng ký tự điều khiển với giá trị 17 (Điều khiển thiết bị 1)?
Jo King

7

MathGolf , 48 51 53 số nguyên, 324 byte

î
ª∞~
c±b±+
φⁿ_¥-
5
6
7
○¢i♀/
d²
♂
A
B
C
D
E
☻
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
♥
U
V
W
X
Y
Z
♫¼¼¼¼
88888]Σ
41
╔½½½½½½½½½½½
π░3§3
22#22#
τ╥└
♦⌡⌡⌡⌡⌡⌡⌡⌡⌡
!⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠
'0$
ÿ@@@@£9
))))))))))))))))))))))))))))))))))))))))))))))))))
►◄╠•╠
"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"h 
♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

+2 điểm (và -2 byte riêng biệt được sử dụng cho 40) nhờ @maxb .

Mỗi dòng là một chương trình riêng biệt.

Sử dụng byte (92 byte riêng biệt): îª∞~c±b+φⁿ_¥-567○¢i♀/d²♂ABCDE☻FGHIJKLMNOPQRST♥UVWXYZ♫¼8]Σ41╔½π░3§2#τ╥└♦⌡!⌠'0$ÿ@£9)►◄╠•╠"h ♣(

Giải thích và liên kết TIO:

MathGolf là một ngôn ngữ chơi gôn mới chuyên về các thử thách chơi gôn. Nó có vô số các byte đơn cho các số, làm cho nó trở thành một thách thức hoàn hảo cho nó.

1) î: Đẩy giá trị 1 chỉ mục của vòng lặp, theo mặc định là 1: Thử trực tuyến.
2) ª∞~: Đẩy [1]; nhân đôi nó ([2]); danh sách nhạc pop và đẩy nội dung của nó lên ngăn xếp: Hãy thử trực tuyến.
3) c±b±+: Đẩy -2; sau đó bật và đẩy giá trị tuyệt đối của nó; đẩy -1; sau đó bật và đẩy giá trị tuyệt đối của nó; và thêm chúng lại với nhau Hãy thử trực tuyến.
4) φⁿ_¥-: Đẩy tỷ lệ vàng (1.618033988749895); khối lập phương đó (4.23606797749979); nhân đôi đỉnh của ngăn xếp; lấy modulo 2 (0.23606797749979); trừ chúng ra khỏi nhau: Hãy thử trực tuyến.
5,6,7) Các con số: Hãy thử trực tuyến. Hãy thử trực tuyến. 9) : Đẩy -3; bình phương: Hãy thử trực tuyến.
8) ○¢i♀/: Đẩy 2048; chuyển đổi thành chuỗi thập lục phân (800); đúc thành số nguyên; đẩy 100; phân phát:
10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34, 35,36,37,38) Đẩy các tích hợp cho chính các số ( ♂ABCDE☻FGHIJKLMNOPQRST♥UVWXYZ): Dùng thử trực tuyến.
39) ♫¼¼¼¼: Đẩy 10000; số nguyên chia cho 4 bốn lần: Hãy thử trực tuyến.
40) 88888]Σ: Đẩy 8 năm lần; gói chúng vào một danh sách; tổng hợp danh sách đó: Hãy thử trực tuyến.
41) Số chính nó: Hãy thử trực tuyến.
42) ╔½½½½½½½½½½½: Đẩy 86400; số nguyên chia cho 2 mười một lần: Hãy thử trực tuyến.
43) π░3§3: Đẩy PI (3.141592653589793); đúc thành chuỗi; bật và đẩy ký tự 0 chỉ mục thứ ba của nó (4); đẩy 3; đầu ra toàn bộ ngăn xếp được nối với nhau ngầm: Hãy thử trực tuyến.
44) 22#22#: Đẩy 2 hai lần; lấy sức mạnh của hai (4); làm lại lần nữa; đầu ra toàn bộ ngăn xếp được nối với nhau ngầm: Hãy thử trực tuyến.
45) τ╥└: Đẩy 2 * PI (6.283185307179586); bật và đẩy sức mạnh của 2 xuống dưới mức gần nhất (4); đẩy đỉnh của ngăn xếp + 1 mà không bật (5); đầu ra toàn bộ ngăn xếp được nối với nhau ngầm: Hãy thử trực tuyến.
46) ♦⌡⌡⌡⌡⌡⌡⌡⌡⌡: Đẩy 64; giảm 2 chín lần: Hãy thử trực tuyến.
47) !⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠: Đẩy gamma (n + 1) (1 theo mặc định); tăng 2 hai mươi ba lần: Hãy thử trực tuyến.
48)'0$: Đẩy giá trị thứ tự của ký tự '0': Dùng thử trực tuyến.
49) ÿ@@@@£9: Chuỗi đẩy "@@@@"; bật và đẩy chiều dài của nó (4); đẩy 9; đầu ra toàn bộ ngăn xếp được nối với nhau ngầm: Hãy thử trực tuyến.
50) )))))))))))))))))))))))))))))))))))))))))))))))))): Tăng thêm 1 năm mươi lần: Hãy thử trực tuyến.
51) ►◄╠•╠: Đẩy 1.000.000; Đẩy 10.000.000; bật cả hai và số nguyên - chia chúng với nhau (10); đẩy 512; bật cả hai và số nguyên chia chúng với nhau: Hãy thử trực tuyến.
52) "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"h : Chuỗi đẩy "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"; đẩy chiều dài của nó (không bật chuỗi); xóa mọi thứ khỏi ngăn xếp ngoại trừ mục cuối cùng: Hãy thử trực tuyến.
53) ♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((: Đẩy 128; giảm 1 đến bảy mươi lần: Hãy thử trực tuyến.

Sẽ cố gắng để thêm một số sau này. Tôi vẫn còn một số điều hữu ích, bao gồm modulo %và nhân *.


Tôi đang nghiên cứu giải pháp cho vấn đề này, nhưng tôi gặp khó khăn khi cố gắng tối ưu hóa 1-9. Khi bạn đạt đến 10, nó trở nên tầm thường để đạt 38. Một vài điều mà tôi nhận thấy ngay từ cái nhìn đầu tiên: 88888ΓΣαΣ-> 88888]Σhoặc 88888§§§§Σtiết kiệm cho bạn 2 lệnh với chi phí sử dụng một lệnh. Bạn cũng có thể làm một cái gì đó giống như "xxxxxx"h trong đó ký tự cuối cùng là một khoảng trắng không phá vỡ để xóa mọi thứ trừ TOS và bạn có thể sử dụng độ dài của chuỗi để tạo số. Có lẽ sử dụng một cái gì đó khác hơn là xbởi vì sau đó bạn đã nhận được Wx53, miễn là bạn có thể nhận được 35 cách khác.
maxb

Ngoài ra, tôi vừa thêm một char/ordtoán tử, hoạt động như 'A$-> 67và cũng hoạt động cho các chuỗi dài hơn (giống như các số nguyên cơ sở 256). Nó không được ghi chép tốt lắm, nhưng nếu bạn muốn cải thiện câu trả lời này, tôi có thể tạo lại phòng trò chuyện cho MathGolf cho bất kỳ câu hỏi nào.
maxb

@maxb Tôi thấy bình luận của bạn khi tôi bị ốm trên giường, nhưng bây giờ tôi có một số lần để cải thiện câu trả lời này. Cảm ơn vì 88888]Σ. Không biết về ]. Đối với "hhhhh"h , điều đó dường như không hoạt động . : S
Kevin Cruijssen

1
Tôi không biết liệu nó có thể được dán trực tiếp từ đây không, nhưng mã sẽ kết thúc bằng NBSP, ký tự không gian không phá vỡ. Lệnh đó sẽ xóa tất cả mọi thứ trừ phần trên cùng của ngăn xếp. Tôi khá chắc chắn rằng PPCG chuyển đổi nhân vật thành một không gian thông thường ở đây trong các bình luận. Hãy thử điều này
maxb

Khi nói đến mảng, tôi định nghĩa chúng một cách đệ quy trong MathGolf, với việc [bắt đầu bối cảnh mảng và ]kết thúc nó và gói các kết quả trong một mảng. Để có cấp cao nhất hoạt động giống như các cấp thấp hơn, việc ]bọc toàn bộ ngăn xếp trong một mảng có vẻ như là một ý tưởng tốt.
maxb

6

Java 8, 11 12 13, 39 byte

Java chỉ có 10 ký hiệu cho các số (0-9) và tất cả các lệnh gọi và hằng phương thức đều yêu cầu một khoảng thời gian, vì vậy tôi không chắc mình có thể nhận được trên 11 đầu ra

Rõ ràng các ký tự được chuyển sang số nguyên theo mặc định khi các thao tác được áp dụng

+1 với sự giúp đỡ của @ OlivierGrégoire

i->-~i
2
3
4
5
6
7
8
9
'P'^'Z'
11
"::::::::::::"::length
0xD

Giải thích:

i->-~i

số nguyên lambda không nhận đầu vào và trả về 1. Khi tham số không có đầu vào, giá trị mặc định được sử dụng theo bài đăng trên, cho số nguyên là 0

2
3
4
5
6
7
8
9

số nguyên

'P'^'Z'

XOR của hai nhân vật để trả về 10

11

số nguyên

":::::::::::"::length

biểu thức lambda trả về độ dài của chuỗi 12 ký tự

0xD

Hệ thập lục phân 13

Liên kết TIO nếu bạn muốn xác minh.


1
Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Dennis

Để rút ngắn số byte (-6 ký tự), 2có thể được viết dưới dạng 210dưới dạng 'P'^'Z'. Ngoài ra, điều này giải phóng các nhân vật X+*và sử dụng P.
Olivier Grégoire


Câu trả lời nâng cao hơn này không đồng ý với bạn.
Olivier Grégoire

Ngoài ra, đây là lần đầu tiên tôi thấy "yêu cầu" này trong một năm trên trang web này và không ai không đồng ý với bất kỳ sân golf nào của tôi khi sử dụng lambdas như vậy.
Olivier Grégoire

6

Gaia , điểm 25, 203 byte

§‼
..⌉+⌉
₵P~~
4
5
6
∂Ql
8
9
¶c
11
'¡ċ⌋u⌋
--⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻
7:,Σ
Ø!))))))))))))))
øøw<øøw<«øøw<«øøw<«øøw<«
⟩‘
₸ḣ₸K$₸ḣ₸/S₸₸/=$
]]]]]]]]]]]]]]]]]]]n
⇑’e
0(((((((((((((((((((((_
22
“B”“↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B”B
3₈×
ℍḥḥ

Tôi coi đây là một điểm hoàn hảo, vì không thể sử dụng thêm nilad nào cho các giới hạn của nhân vật.

Giải thích

1. §‼

§là một nhân vật không gian, bị ép buộc thành boolean, vì vậy kết quả là 1.

2. ..⌉+⌉

.là một phím tắt cho 0.5, vì vậy đây là ceil(0.5+ceil(0.5)).

3. ₵P~~

₵Plà pi, ~là phủ định bitwise. Phủ định bitwise đôi chỉ đơn giản là cắt ngắn.

4. 4

5. 5

6. 6

7. ∂Ql

∂Qlà một danh sách chứa tên của các ngày trong tuần, llà độ dài.

số 8. 8

9. 9

10. ¶c

Mã điểm ccủa linefeed .

11. 11

12. '¡ċ⌋u⌋

'¡  The string "¡"
ċ   Turn it into a list of code points: [161]
⌋   Minimum: 161
u⌋  Floored square root: 12

13. --⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻

-là một tốc ký cho -1, là phép trừ. Vì vậy, đây là -1 - -1 - -1...đủ thời gian để thực hiện 13.

14. 7:,Σ

Đẩy 7, nhân đôi :, ghép ,hai số 7 vào một danh sách và tính tổng Σ.

15. Ø!))))))))))))))

Ølà một chuỗi rỗng, vì vậy Ø!là 1. Tăng )1 14 lần.

16. øøw<øøw<«øøw<«øøw<«øøw<«

øø    Push two empty lists
w     Wrap one of them
<     [] < [[]]? (it is, so push 1)
øøw<  Do the same thing again to push another 1
«     Bitshift 1 left by 1
      Do that same thing again 3 more times to get 16

17. ⟩‘

Đóng một chuỗi với nó làm cho một số cơ sở 250 chữ. là ở giá trị byte 17 trong trang mã của Gaia.

18. ₸ḣ₸K$₸ḣ₸/S₸₸/=$

₸     10
ḣ     doubled
₸     10
K     20 choose 10 (184756)
$     Digit list
₸ḣ₸/  20/10 (2)
S     Split the digit list at index 2 ([[1 8][4 7 5 6]])
₸₸/   10/10 (1)
=     Get the first element of that split ([1 8])
$     Join together and print 18

19. ]]]]]]]]]]]]]]]]]]]n

Mỗi ]kết thúc ngăn xếp trong danh sách. Làm điều này 19 lần và có được độ sâu ncủa danh sách.

20. ⇑’e

Đóng một chuỗi với nó làm cho nó một danh sách các điểm mã codepage. ebỏ danh sách trên ngăn xếp. có điểm mã là 20 trong bảng mã.

21. 0(((((((((((((((((((((_

Giảm (0 21 lần, sau đó phủ định _.

22. 22

23. “B”“↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B”B

Chuyển đổi chuỗi “B”từ cơ sở-24, trong đó các chữ số từ 0-23 là ↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B. Kết quả là 23.

24. 3₈×

3 × 8.

25. ℍḥḥ

100 giảm một nửa , và giảm một nửa một lần nữa.


5

C, điểm 13

Đây chỉ là một loạt các hằng số nguyên.

0==0
__LINE__
3
4
5
6
7
8
9
1+1+1+1+1+1+1+1+1+1
'o'/'.' 
2*2*2*2-2-2
strlen("strlenstrlens")
  1. 0==0ước tính là 1
  2. Giả sử mã nằm trên dòng 2. __LINE__= 2
  3. Hằng số nguyên
  4. Hằng số nguyên
  5. Hằng số nguyên
  6. Hằng số nguyên
  7. Hằng số nguyên
  8. Hằng số nguyên
  9. Hằng số nguyên
  10. 1+1+1...= 1*10= 10
  11. 'o'là 111, '.'đại diện cho ASCII 0x10 không thể in được. 111/10 = 11
  12. (2<<2)= 8, 8*2= 16, 16-2-2= 12
  13. độ dài chuỗi "strlenstrlens"= 13

5

Ohm , điểm 21 22, 160 byte tổng

╓S@Ri
ΓΓ-Γ-Γ-
αê⌠
¡¡¡¡¼
5
▀lll▀l
ÑÑÑÑÑÑÑÿWÿk
ü`½½
9
..≥°
$$J
3dd
7ƒ
2≡≡≡Σ
║F
4º
0ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~
6DD++
8π
τ╛hτ*
"≤"≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤A
1111 11v11%L1111 11v11%L

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

Giải thích

1. ╓S@Ri

Đẩy các giây của ngày / giờ hiện tại ( ╓S). Lấy phạm vi bao gồm từ 1 đến giây ( @), đảo ngược nó ( R), lấy phần tử cuối cùng ( i), luôn luôn là 1.

2. ΓΓ-Γ-Γ-

Γ là -1, vì vậy đây là (-1) - (-1) - (-1) - (-1), là 2.

3. αê⌠

αêlà số của Euler (2.71828 ...), là trần. 3 là kết quả.

4. ¡¡¡¡¼

¡tăng bộ đếm, ¼đẩy bộ đếm.

5. 5

Chỉ là một nghĩa đen.

6. ▀lll▀l

▀lll▀là một chuỗi ký tự nén tương đương với "of >ic". llấy độ dài, do đó kết quả là 6.

7. ÑÑÑÑÑÑÑÿWÿk

Đầu tiên, chúng ta đẩy 7 ký tự dòng mới ( Ñ) và sau đó là một chuỗi rỗng ( ÿ). Ngăn xếp được gói trong một mảng ( W) và sau đó tìm thấy chỉ mục của chuỗi trống trong mảng đó.

số 8. ü`½½

ülà một nhân vật không gian. `đẩy giá trị ASCII của nó (32), sau đó nó được giảm một nửa hai lần ( ½½).

9. 9

Chỉ là một nghĩa đen.

10. ..≥°

..là một .nhân vật theo nghĩa đen . Nó được tăng ( ), phân tích chuỗi dưới dạng một số, mặc định là 0 vì nó không phải là số hợp lệ và tăng nó thành 1. Sau đó, chúng tôi tính 10 1 ( °).

11. $$J

$ đẩy giá trị hiện tại của thanh ghi, ban đầu 1. Vì vậy, đẩy 1 hai lần, nối các ngăn xếp lại với nhau và in.

12. 3dd

Đẩy 3 và nhân đôi nó.

13.

Đẩy số Fibonacci thứ 7.

14. 2≡≡≡Σ

Đẩy 2, nhân ba lần, để lại 7 2 giây trên ngăn xếp. Sau đó lấy tổng của stack ( Σ).

15. ║F

là dấu phân cách cho chữ gốc số 220. Vì đây là ở cuối dòng, nên nó không cần phải chấm dứt.

16.

Tính 2 4 .

17. 0ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~

òlà phủ định bitwise, ~là phủ định số học. Kết hợp các toán tử này, chúng ta có thể tăng 0 17 lần.

18. 6DD++

Đẩy 6, nhân đôi hai lần và tính toán 6 + 6 + 6.

19.

Đẩy số nguyên tố thứ 8.

20. τ╛hτ*

Đẩy 10 ( τ), lấy phần tử đầu tiên ( h) của các thừa số nguyên tố ( ), nhân số đó với 10.

21. "≤"≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤A

Tương tự như các đoạn trước, chuỗi "≤"được phân tích cú pháp là 0. Chúng tôi giảm nó 21 lần, sau đó lấy giá trị tuyệt đối.

22. 1111 11v11%L1111 11v11%L

Ở đây chúng tôi tính 1111 div 11 mod 11, là 2, sau đó in 2. Sau đó làm lại.


5

PowerShell, điểm 12, 91 byte. 14, 176 byte

[byte]!![byte]                    # type gets cast to bool false, inverted, to int = 1
-   -$?-shl$?                   # -bool true is -1, shift left, negative. (Tab not space)
3
4
5
6
7
8
9
1+1+1+1+1+1+1+1+1+1
22/2                                           # use the 2
'uuuuuuuuuuuu'.LENGTH                          # string length
0xd
@{z=@{};Y=@{};YY=@{};w=@{};v=@{};U=@{};zz=@{};S=@{};r=@{};q=@{};p=@{};J=@{};K=@{};m=@{}}|% COU*             # count items in hashtable (space)

Biên tập:

  • Cảm ơn Ørjan Johansen đã gợi ý 0xd bằng chữ hex cho 13 và sắp xếp lại 5 để giải phóng 1 + 1 + 1 + 1 .. như một tùy chọn.
  • Đã thay đổi độ dài mảng thành độ dài chuỗi, [int] thành [byte] và hashtable để sử dụng hashtables làm giá trị, giải phóng (),""Pondering 15 bằng một cái gì đó giống như "ZZZZZZZZZZZZZZZA".InDeXof("A")nhưng không thể sử dụng lại dấu chấm hoặc 'e' ..

PowerShell không thể thực hiện các biến mà không có $, không thể thực hiện lũy thừa, dịch chuyển bit, Pi, ceil (), v.v. bằng các ký hiệu cơ bản và chủ yếu là gõ coercian đến / từ bool và đến / từ các chuỗi số, vì vậy có phạm vi tương đối nhỏ để tạo số cú pháp thấp.


Bạn chưa sử dụng 0, vì vậy 13 có thể 0xd. Bạn có thể đặt 5ở vị trí bình thường của nó, giải phóng +để kết hợp 1s. Điều đó sẽ đưa bạn đến 14. Nếu bạn cần lưu các ký tự, các khóa có thể băm có thể nhiều hơn một chữ cái. Và nếu bạn có một số cách dự phòng để nhận 1s để tính tổng, bạn có thể làm 10= 1e1.
Ørjan Johansen

@ RjanJohansen - những ý tưởng hay, cảm ơn, đã chỉnh sửa câu trả lời của tôi với họ
TessellatingHeckler

Tôi tìm thấy một cách khác nhau để làm 2 : ""-(""-(""-lt(""-""))-(""-lt(""-""))). Điều đó giải phóng $?cho tổng kết, và sau đó bạn có thể làm 1e1điều tôi đề nghị.
Ørjan Johansen

Um chờ tcuộc đụng độ với cả hai phiên bản 1. (""-eq"")-(""-(""-eq""))có vẻ tốt hơn, qtrong hashtable dễ dàng được thay thế.
Ørjan Johansen

5

TI-Basic (sê-ri 83), điểm 21 22 23 24 25 (1003 byte)

1:  A=A
2:  int(tan(tan(cos(cos(cos(B
3:  tanh⁻¹(√(√(√(√(√(√(√(√(√(√(C!°√(√(C!°
        √(√(√(√(√(√(C!°√(√(√(√(√(√(C!°√(
        C!°√(√(√(C!°√(C!°√(C!°√(√(√(√(√(
        √(C!°√(C!°√(C!°√(C!°
4:  4
5:  cosh(sinh⁻¹(cosh(sinh⁻¹(...sinh⁻¹(cosh(D    with 25 repetitions of cosh(
6:  6
7:  7
8:  8
9:  9
10: ₁₀^(₁₀^(E
11: 11
12: F nPr F/sin(tan⁻¹(...(sin(tan⁻¹(F nPr F     with 143 repetitions of sin(tan⁻¹(
13: det([[G≤G]...[G≤G]]ᵀ[[G≤G]...[G≤G           with 26 repetitions of G≤G
14: ln(tanh(not(H))...tanh(not(H)))
        ln(tanh(not(H)))^⁻not(H                 with 14+1 repetitions of tanh(not(H))
15: iPart(e^(e^(e^(I
16: sum(dim(identity(sum(dim(identity(sum(
        dim(identity(sum(dim(identity(J≥J
17: K nCr K+K nCr K+...+K nCr K                 with 17 repetitions of K nCr K
18: abs(i-i-...-i                               with 20 repetitions of i
19: rand→L:log(LL...LL→M:log(L→N:N⁻¹M           with 19 L's inside the log
20: mean(seq(OOO,O,O,sinh(sinh(cos⁻¹(O
21: ππ³√(π³√(ππ³√(ππ³√(ππ³√(π³√(³√(ππ³√(π³
        √(π³√(ππ³√(π³√(ππ³√(ππ³√(ππ³√(π³√(
        π³√(³√(ππ³√(ππ
22: 22
23: 3(3(3×√(3(3(3×√(3(3×√(3(3(3×√(3×√(3×√(
        3(3×√(3(3×√(3(3(3×√(3(3×√(3×√(3(3(
        3×√(3(3×√(3×√(3×√(3(3(3×√(3(3×√(3(
        3(3×√(3×√(3(3(3×√3
24: Fix 0
    sin⁻¹(ᴇ0
    AnsAnsAnsAnsAnsAnsAns
25: 5*5

Tham khảo http://tibasicdev.wikidot.com/one-byte-tokens để biết danh sách những điều mà thách thức không và không cho phép ở đây.

Tất cả những thứ này có thể là các chương trình hoàn chỉnh, vì dòng cuối cùng của chương trình được in tự động. Nhưng (ngoại trừ 17, dài nhiều dòng), chúng cũng có thể là đoạn trích trên màn hình chính.

Tại thời điểm này, tôi thấy không có cách nào khác để nhận bất kỳ giá trị khác nào trong số các mã thông báo còn lại có sẵn. Nếu có bất kỳ cải tiến nào được thực hiện, nó sẽ phải liên quan đến việc đưa ra một số giải pháp ở trên bảo thủ hơn.

Giải thích

  • A=Alà boolean 1 vì biến Abằng chính nó.
  • Blà 0 theo mặc định, tan(tan(cos(cos(cos(Blà khoảng 2,21, và sau đó chúng tôi lấy sàn.
  • C!°là 1 độ theo radian, khoảng 0,017. Một số sức mạnh tích cực của điều này là tanh (2), khoảng 0,964. Chúng tôi mã hóa sức mạnh đó trong hệ nhị phân bằng cách nhân hàm ý √(, và sau đó thực hiện tanh⁻¹(.
  • 4 là đơn giản
  • cosh(sinh⁻¹(X1+X2
  • 6-9 là đơn giản
  • ₁₀^( là một byte tích hợp sẵn cho các lũy thừa 10 và 10 ^ 10 ^ 0 = 10 ^ 1 = 10.
  • 11 là 11.
  • F nPr Fsin(tan⁻¹(X11+1/X2
  • G≤Glà 1, [[G≤G]...[G≤G]]vectơ cột 13x1 cũng vậy. Lấy sản phẩm chuyển vị của nó với chính nó sẽ cho ma trận [[13]], có xác định là 13.
  • not(H)là 1. tanh(not(H))chỉ là một số không bằng 0 hoặc 1 và ln(XXX....X)ln(X)^⁻1sẽ đơn giản hóa với số của Xtrong nhật ký đầu tiên với điều kiện Xkhông phải là 0 (để nhật ký tồn tại) và không phải là 1 (để chúng tôi không chia bằng 0).
  • e^(e^(e^(F ước tính khoảng 15,15, và sau đó chúng tôi lấy sàn.
  • J≥Jlà 1. identity(xây dựng ma trận danh tính 1x1, dim(tìm kích thước hàng và cột của nó và sum(thêm chúng để nhận 2. Sau đó, chúng tôi làm lại, thêm kích thước của ma trận 2x2 để có 4 và thêm kích thước của ma trận 4 x 4 để có được 8 và một lần nữa, thêm kích thước của ma trận 8x8 để có 16.
  • K nCr K là hệ số nhị thức 0 chọn 0 hoặc 1. Cộng 17 17 với nhau sẽ cho 17.
  • i-i-...-iđơn giản hóa thành ⁻18i và lấy abs(18.
  • rand→Llưu trữ một số thực ngẫu nhiên cho L, nhưng chúng tôi không quan tâm nó là gì. Chúng tôi đang tính toán log(L)⁻¹log(L^19), đơn giản hóa đến 19.
  • sinh(sinh(cos⁻¹(Ilà hơn 4 một chút, do đó, seq(III,I,I,sinh(sinh(cos⁻¹(Iđưa ra danh sách {0 1 8 27 64}có trung bình số học là 20.
  • Một ví dụ khác của thủ thuật được sử dụng để có được 3. Ở đây, một số sức mạnh πnên cung cấp cho 21; chúng tôi mã hóa sức mạnh đó trong ternary bằng cách nhân hàm ý và ³√(.
  • 22 là 22.
  • Một ví dụ khác của thủ thuật được sử dụng để có được 3 và 21. Chúng tôi mã hóa sức mạnh của 3 bằng 23 trong ternary, sử dụng 3×√(làm khối lập phương và (để nhân.
  • Fix 0là cài đặt để hiển thị 0 chữ số sau số thập phân, làm tròn tất cả các giá trị thành số nguyên. sin⁻¹(ᴇ0ước tính thành π / 2 và π / 2 nhân với chính nó 7 lần cho khoảng 23,59, làm tròn thành 24.
  • 5*5là 25. (Sẽ là thận trọng hơn khi sử dụng 5để có được 5 và điều chỉnh giải pháp được sử dụng ở đó cho 25. Nhưng cách này giúp tiết kiệm rất nhiều không gian và *không phải là một ký tự rất hữu ích vì tồn tại phép nhân.)

Xmax là 10 theo mặc định, tương tự với Ymax = 10, Ymin = Xmin = -10 và một số giá trị mặc định khác.
lirtosiast

@lirtosiast Tất cả đều là hai byte.
Misha Lavrov

Tôi không chắc chắn về việc giải thích các quy tắc, nhưng tôi nghĩ bạn vẫn có thể sử dụng một trong số chúng mà không lặp lại bất kỳ byte nào (coi các ký tự là byte thay vì mã thông báo)
lirtosiast 11/11/18

Tôi mơ hồ hoài nghi về cách giải thích đó. Trong mọi trường hợp, tính các ký tự là byte, nó sẽ phải giống như Xfact = 4, vì Xmax xung đột với °. Có lẽ chúng ta có thể lấy một điểm trong số đó, một điểm khác trong số các lệnh 2 byte và điểm thứ ba trong số các lệnh chỉ có TI-84.
Misha Lavrov

4

SOGL , điểm 16 18 20, 109 byte, 47 ký tự được sử dụng

=                    push ""=""
ρ:¾/U                ceil(isPalindrome("")/(isPalindrome("")*(3/4))) -> ceil(1/(3/4)) -> ceil(4/3)
3                    push 3
MM¼÷                 100/(100*1/4)
æ⁄                   length of "aeiou"
6                    push 6
7                    push 7
Nτ                   log2(256)
9                    push 9
L                    push 10
⁹’                   byte with the 11th SOGL code point
Ιζrkk"⁸              `⁸`s UTF-8 codepoint to string, take off 1st 2 chars
'⁰                   messy compression
īuHHHHHHHHHHHHHH±    floor(0.1) `-1` 14 times, then change sign
aIIIIIIIIIIIIIII     A `+1` 15 times, A = 0
4²                   4^2
lllllllllllllllll”l  length of "lllllllllllllllll"
222222222++++++++    2+2+2+2+2+2+2+2+2
δ“○“-                429-420
Μ℮‘                  compressed string of "2ŗ" where ŗ defaults to 0

4

Brachylog , 16 số nguyên, 86 byte

1
2
3
4
5
6
7
8
9
ℕ<<<<<<<<<<
≜+₁₁
Ịbkkkkkkkị
Ḥl
ℤ₇×₂ṅ
"____**"pᶜ¹
⟦h>>>>>>>>>>>>>>>>ȧ

Hãy thử trực tuyến! (Các điều khiển đầu vào chương trình nào được chạy, từ 1 đến N)

Giải trình

                       The output is...

1                      1
2                      2
3                      3
4                      4
5                      5
6                      6
7                      7
8                      8
9                      9
ℕ<<<<<<<<<<            Strictly bigger than ... strictly bigger than 0
≜+₁₁                   0 + 11
Ịbkkkkkkkị             "12" converted to an integer
Ḥl                     The length of "Hello, World!"
ℤ₇×₂ṅ                  -(-7 × 2)
"____**"pᶜ¹            The number of unique permutations of "____**"
⟦h>>>>>>>>>>>>>>>>ȧ    The absolute value of stricly less than ... stricly less than 0

1
Chỉ cần nghĩ về Prolog: 1, vì bạn luôn cần một dấu chấm ở cuối.
sai

4

Jelly , điểm 22, 177 byte

1: Ṇ  : logical NOT. When there is no input, 0 is assumed, so this returns NOT(0)=1
2: ~A~A  : ~ is bitwise NOT and A is absolute value, implicit 0 input
         : 0~ = -1;   0~A = 1;   0~A~ = -2;  0~A~A = 2.
3: 3  : literal 3
4: -ı-²²×-Ḟ:
   -ı-     : literal complex number -1-1j
   ²²×-    : square (2j), then square(-4), then multiply by (×) negative 1 (-) to get 4+0i
   Ḟ       : get the real component, which is 4
5: 5  : literal 5
6: 6  : literal 6
7: 7  : literal 7
8: 8  : literal 8
9: ØDṪ : tail(Ṫ) of list of digits (ØD) to return 9
10: ⁵  : literal 10
11: 11 : literal 11
12: CNCNCNCNCNCNCNCNCNCNCNC : again, 0 is taken as input because there is no input
                            : C is complement and N is negate
                            : so each NC returns 1-(-n)=n+1 and is equivalent to increment, returning 12
13: “>>>>>»L    : encodes "#GlomAbducens" with “>>>>>» then returns the length in characters (13) with L
14: ‘‘‘‘‘‘‘‘‘‘‘‘‘‘   : default input is 0 again, and each ‘ increments it to get 14
15: Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;ỊS : default input is 0 again.
                                   : each Ị returns abs(0)<1 = 1
                                   : these are concatenated together with ; then summed with S to get 15
16: ⁴  : builtin literal 16
17: ,,,,,,,,,,,,,,,,,ŒḂŒḊ : Each , is the pair dyad: x,y = [x,y] and x,[y,z] = [x,[y,z]]. 
                          : Thus each , increased the depth by 1, then ŒḊ returns the depth: 17
18: 9Ḥ : 9 doubled = 18
19: E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E : each E returns areallelementsidentical([0]) = 1
                                          : 19 of these are summed with +
20: 44440b44ạ/ : 44440 base 44 = [22,42,0].
               : ạ/ takes the absolute difference of terms: ||22-42|-0| = 20
21: ”TOHH : ”T is the character literal "T". OHH returns its ascii value 84 (O) halved twice (HH) = 21
22: literal 22

Thử tất cả cùng một lúc hoặc Thử từng cái một (đối số là đầu ra mà bạn muốn).

Nhân vật không sử dụng:

¡¢£¤¥¦©¬®µ½¿€ÆÇÐÑÞßæçðȷñ÷øœþ !"#$%&'()*.:<=?@BFGIJKMPQRUVWXYZ[\]^_`acdefghijklmnopqrstuvwxyz{|}¶°¹³⁶⁷⁸⁹⁺⁻⁼⁽⁾ƁƇƊƑƓƘⱮƝƤƬƲȤɓƈɗƒɠɦƙɱɲƥʠɼʂƭʋȥẠḄḌẸḲḶṂỌṚṢṬỤṾẈỴẒȦĊĖḞĠḢİĿṀṄȮṖṘṠẆẊẎŻḅḍẹḥịḳḷṃṇọṛṣṭụṿẉỵẓȧḃċḋėḟġḣŀṁṅȯṗṙṡṫẇẋẏż«’

Bạn đang sử dụng Acho cả 24 , phải không?
Dennis

@Dennis Liên kết TIO của tôi là chính xác, nhưng lời giải thích của tôi thì khác. Đã sửa lỗi
fireflame241

1
Tôi hiểu rồi. Btw nếu bạn đặt 22¹£€Ytrong liên kết chính, bạn có thể thực thi tất cả các đoạn mã cùng một lúc. tio.run/##y0rNyan8///hzjauOsc6Ry5jLt0jG3UPbTq0icuUy4zLnMuC6/
Dennis

4

Reng, điểm 40, 149 byte

Hãy thử nó ở đây!

1.  e
2.  2
3.  ::l
4.  4
5.  5
6.  i`i`i`i`i`i`+++++
7.  7
8.  8
9.  9
10. A
11. ÇÇÇǹ
12. C
13* [[[[[[[[[[[[[mn~
14. E
15. F
16. G
17. H
18. I
19. J
20. K
21. L
22. M
23. N
24. O
25. P
26. Q
27. R
28. S
29. T
30. U
31. V
32. W
33. X
34. Y
35. Z
36. 6²
37. "%"
38* &fæ¦
39. D3*
40. 11±$1±±±±±±±±$11±$1±±±±$±$

Tất cả các chữ cái viết hoa là số, vì vậy đó là tốt đẹp. Tất cả trừ hai trong số này là đoạn trích. Hai chương trình đó là:

13. [[[[[[[[[[[[[mn~
38. &fæ¦

Liên kết được cung cấp cho phép một người nhìn thấy ngăn xếp trong khi chạy. Tôi sẽ viết một lời giải thích sau.


4

CJam, điểm 27, 168 byte

1-3: X , Y,Z

Các biến X, YZ được khởi tạo 1, 2, và 3, tương ứng.

4: ",,,,",

Đẩy chuỗi ,,,,và lấy chiều dài.

5-9: 5 , 6, 7, 8,9

Chữ số.

10-20 : A-K

Biến trước.

21: U)))))))))))))))))))))

Biến Uđược khởi tạo thành 0. Đẩy Uvà tăng nó 22 lần.

22: 22

Chữ số.

23: ';(((((((((';((((((((

Đẩy nhân vật ;và giảm 9 lần để nhận 2, sau đó đẩy ;lại và giảm 8 lần để nhận 3.

24: 4m!

Lấy giai thừa của 4.

25: TT=TT=+TT=TT=TT=TT=TT=++++

TT=đẩy 1. Mã này tương đương với 1 1+1 1 1 1 1++++.

26: N:i~W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-

Nđẩy một chuỗi chứa một dòng mới. :ichuyển đổi nó thành một danh sách mã ký tự, mang lại [10]. ~giải nén nó, cho 10. W-là tương đương với việc thêm một. Tăng 10 mười sáu lần cho 26.

27: LLLLLLLLLLLLLLLLLLLLLLLLLLL0]0#

Tìm chỉ số 0 trong danh sách trong đó 0 ở chỉ số thứ 27.

Nhân vật vẫn có sẵn: $%&*./1<>?@MOPQRSV[\^_`abcdefghjklmnopqrstuvwxyz{|}

Một vài lưu ý cho việc mở rộng tiềm năng:

  • Tôi có thể phải thay đổi 10-20 để sử dụng các biến cho thứ khác. Nếu tôi nhận được các số cao hơn 1, tôi có thể sử dụng *(và có thể là các toán tử bitwise, nhưng tôi không nghĩ rằng chúng sẽ giúp ích nhiều).

  • Tôi vẫn có S, bất cứ điều gì tốt đẹp sẽ làm cho tôi.

  • Nếu tôi thay đổi 26 thành N{}/iW-W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-, thì :sẽ có sẵn.

  • Tôi có thể đẩy một số danh sách trống và nhận thêm số không với các biến hiện có. Tôi cũng có thể nhận được số π, nhưng điều đó có vẻ không hữu ích trừ khi tôi có thể chuyển nó thành một số nguyên bằng cách nào đó, và m(cho m[) và iđã được sử dụng.

  • Về mặt thao tác mảng, tôi có thể:

    • Sử dụng bản đồ có %hoặcf
    • Sử dụng một nếp gấp với *
    • Thực hiện một số thao tác đi đường
    • Chuyển đổi cơ sở (điều này có vẻ hứa hẹn, nhưng tôi không biết làm thế nào tôi có được số cơ sở)
    • Xây dựng mảng bằng cách sử dụng |:M1|2|3|

Chỉ cần một lưu ý, bạn có thể thực hiện 21 U)))))))))))))))))))))và 22 22sẽ miễn phí 1cho một đoạn sau.
Mèo kinh doanh

@BusinessCat Cảm ơn, đã chỉnh sửa.
Esolanging Fruit

Để chuyển đổi pi thành một số nguyên, bạn có thể sử dụng thực tế là chuyển đổi cơ sở thực hiện ẩn :itrong danh sách chữ số (ví dụ: [P]1bcho 3).
Martin Ender

Nếu bạn không nhớ làm 23 một rất nhiều bạn còn có thể sử dụng ''thay cho ';và sau đó sử dụng đủ (để quấn xung quanh để các chữ số (như vậy khoảng 65k (cho mỗi chữ số). Điều đó sẽ giải phóng ;cho một cái gì đó khác, nhưng tôi không chắc nó hữu ích như thế nào.
Martin Ender

@MartinEnder Tôi sẽ làm điều đó nếu tôi thấy việc sử dụng ;, nhưng hiện tại tôi không thể.
Trái cây Esolanging

4

Haskell , điểm 13, 86 byte

pi/pi
sum[sum[]^sum[],sum[]^sum[]]
3
4
5
6
7
8
9
length"eeeeeeeeee"
11
2+2+2+2+2+2
0xD

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

Cảm ơn Ørjan Johansen vì đã tìm ra cách khắc phục thư của tôi chồng chéo trong khi vẫn giữ được số điểm mười ba. (Ngoài ra để tránh thông báo cho tôi về điều này trong khi câu trả lời này đã bị xóa.)

pi/pi1.0.
sum[]đánh giá 0, 0^0để 1sum[1,1]đến 2. 3để 9tự giải mã.
length"eeeeeeeeee"mang lại độ dài của chuỗi, đó là 10.
2+2+2+2+2+212.
0xDlà thập lục phân cho 13.


Bạn có một số chữ cái chồng lên nhau.
xnor

@xnor Cảm ơn bạn đã chỉ ra. Nên sửa ngay.
Laikoni
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.