どれくらい高く数えられますか?


154

チャレンジ:

あなたの仕事は、できる限り多くのプログラム/関数/スニペットを書くことです。それぞれが整数を出力/印刷/返します。最初のプログラムはinteger 1、2番目のプログラムなどを出力する必要があります2

プログラム間で文字を再利用することはできません。したがって、最初のプログラムが:の場合、x==xその文字x=他のプログラムで再び使用することはできません。注:1つのプログラムで同じ文字を何度も使用できます。

得点:

勝者は最高の数を数える提出物になります。同点の場合、勝者は合計で最も少ないバイト数を使用した提出物になります。

ルール:

  • すべての整数に単一の言語のみを使用できます
  • スニペットは許可されています!
  • 公平に保つには、選択した言語の1バイトを使用してすべての文字をエンコードする必要があります。
  • 出力は10進数でなければなりません。科学表記または他の形式で出力することはできません。小数点の後ろに表示れるすべての数字がである限り、フロートの出力は問題ありません0。だから、4.000受け入れられます。出力に表示されない限り、FPAによる不正確さは受け入れられます。
  • ans =、先頭と末尾のスペース、改行などが許可されます。
  • 正しい出力がSTDOUTに返される限り、STDERRは無視できます。
  • STDOUTが空の場合のみ、整数をSTDERRに出力することを選択できます。
  • シンボルに依存しない言語(Lenguageなど)は許可されません
  • 大文字と小文字は区別されa != Aます。
  • プログラムは独立している必要があります
  • 空白は再利用できません
  • 出力にはASCII数字を使用する必要があります

説明をお勧めします!


4
Headsecks言語は、すべての文字の下位3ビットのみを考慮し、64のスコアを自明に達成します。完全にではなく、部分的にシンボルに依存しません。最後の規則は、部分的にシンボルに依存しない言語もカバーすべきだと思いますが、それをどのように表現するのかわかりません。
デニス

1
スニペットルールに関して、使用/インポートを含める必要がありますか?また、静的なインポートは許可されていますか(スニペットの一部にすることなく)?
ケビンCruijssen

1
@KevinCruijssenでは、すべてのプログラム/機能に必要な定型的なものを省略できます。たとえば#include <iostream>、C ++の他の定型的なものは必要ありません。あなた必要ですfrom numpy import *。注:私はプログラマーではないため、すべてのニュアンスがわかりません。何か不明な点がある場合は、チャットで話し合うことができます:)
Stewie Griffin

1
@tuskiomiを好きなように投票する権利がありますが、私の意見では良いルールです。空白文字は、他の文字と同様に単なるバイトです。なぜ彼らは異なって扱われるべきですか?また、言語Whitespaceは、スペース、タブ、およびラインシフトのみを含むため、地滑りで勝ちます。なぜあなたがダウン投票したのか言ってくれてありがとう:
スティーヴィー・グリフィン

1
@StewieGriffin少なくともスペースは許可しますが、ちょっと、私はあなたではありません。
-tuskiomi

回答:


146

JavaScript(ES7)、スコア17、176バイト

彼らはそれができなかったと言ったので、私はそれをやった:D(@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

未使用の文字:

#&,:?@ABDGHIJKLMOPQRTUVWYZ\_bcdfijkmopqrsuvwyz|

18は不可能だと思いますが、17についても同じことを言いました...

説明

JavaScriptは非常に弱い型付けの言語です。数値以外の値に対して数学演算を実行しようとすると、JSは最初に数値に変換するのが最も困難になります。これにより、多くの興味深いソリューションが可能になります。後で使用できるように、できるだけ数字を使用しないようにしました。

  1. **ES7のべき乗演算子です。数に強制空の文字列となり0、これは計算0 ** 0され、1JavaScriptに記載の方法。
  2. 少しばかげているが、それは動作します。/~/は正規表現リテラルであり、を~/~/返す-1ため、これは~(-1 / -1) / -1= ~(1) / -1= -2 / -1= 2です。(アイデアの@ GOTO0へのクレジット)
  3. 単に3
  4. 今、単純に4
  5. NaNそう、falsyある!NaNIS true、に相当します1。したがって、式は1 - -1 - -1 - -1 - -1= 1 + 1 + 1 + 1 + 1=になり5ます。
  6. 単に6
  7. 単に7
  8. 単に8
  9. 単に9
  10. これは、少しのJSF ***マジックを使用します。+[]0ので[[]][+[]][[]](つまり[])の最初の要素を返し、++これをにインクリメントし1ます。次に+[+[]]、配列を追加します。この配列[0]文字列に強制され、を作成し"10"ます。
  11. 単に11。私はもともと11&11113と33/311のために使っていましたが、私がどれほど愚かであるかを再び認識しました...
  12. この戦略は任意の数で機能し12ます.length。長さの文字列を作成して使用します。
  13. これを取得するためにしばらく2sと>sをいじりました。私は再び幸運に恵まれました:222 >> 2is 5555 >> 2is 13です。
  14. これはかなりトリッキーです。基本的な考え方は1416進数(0xE)で作成することですが、0別の場所に数字が必要です。代わりに、結果を``^``文字列に追加しますxE。数値に強制変換された空の文字列は0ですので、0 ^ 0=を返します0。次に、結果が空の文字列とXORされ、両方の値が数値に変換されます。"0xE" ^ ""です14
  15. これは非常に簡単0XFになりました15。値がの16進リテラルです。
  16. 最もトリッキーですか?最初に変数CCSS == CSS(つまりtrue)に設定します。次に、結果を取得して<< C4回実行12 ** 4ます。これは基本的にで乗算されます。
  17. JavaScriptは2 53で整数の精度を失い始めます。これにより555...555%550またはではない数値を返すことができます5。ここで遊んでいると偶然ラッキーになりました。

多くの数字で機能する戦略:

  • -!NaN任意の数(現在は5)で動作しますが、非常に速く大きくなります。
  • ~/~/非常に速く非常に大きく2なりますが、任意の数(現在)で動作します。
  • +[]任意の数(現在10)で動作しますが、10またはではるかに簡単11です。
  • .length 任意の数で動作します。
  • `${-``}xE`-`` あなたがそれを正しくすれば、ほとんどどんな数でも動作するでしょう。
  • C<<C2の累乗(現在16)、またはを含め|た場合はintで動作します。

3
それはかなり素晴らしいです:)
スティーブベネット

1
window.ようなプロパティの1つを使用する巧妙な方法があるかもしれませんがdefaultPixelWidth、それらはすべてlまたはのいずれかを含むようですe。もう1つ0を取得できますURL | URLが、あまり役に立ちません。
スティーブベネット

1
「フォーカス」も見つけましたが、18に到達する方法がまだわかりません。「フォーカス」はfunction()です。「focus&focus」は0です。「focus(URL)」は未定義です。
Xantix

1
現在増加している演算子は次の+ - * ~ < x X length
とおりです。– l4m2

1
数字の欠如は、主にこれらの記号に限定されています。任意の数にのいずれかが含まれます1 2 3 4 5 6 7 8 9 + - * ~ < x X length。それを解決する前に18
l4m2

90

ゼリー、47整数、519バイト

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

すべての行は個別の完全なプログラムです。

オンラインでお試しください!(テストスイートと交差点チェッカーを含む)

使い方

コマンドライン引数を持たないすべての完全なプログラムは、メインリンク(最後の行で定義されている)をniladically、つまり入力なしで実行します。チェーン内の最初のリンクがniladである場合、それは消費され、呼び出され、メインリンクの引数と戻り値の両方が結果に設定されます。チェーン内の最初のリンクはモナドかダイアドであれば、それがされていない消費と暗黙の引数と戻り値0が代わりに使用されます。どちらの場合も、チェーンの残りの部分は単項で実行されます。

Jellyは、いくつかのケースで出力を破壊します。特に、シングルトン配列は周囲の括弧なしで印刷されるため、42[42]であり、印刷後に区別できません。これは何度か使用します。

1 – 10

e

存在している戻り値場合は原子テストを0には、引数に属し0。そうなので、1をe返します。

BI$⁼#

BI$は、クイックリンク、具体的には$バイナリアトムBインクリメントアトムのクイックグループ化によって形成される単項連鎖Iです。組み合わせて、整数を基数2の数字の配列に変換し、結果の数字の前方差分を計算します。配列に要素が1つしかない場合、前方差分はなくI、空の配列(偽)を返します。少なくとも2桁ある場合、I空でない配列(真)を返します。

迅速には#、以前のクイックリンクを消費し、それを適用する0...、1、2、十分な一致が発見されるまで、マッチの配列を返します。必要な量はによって計算され、戻り値/引数0をそれ自体と比較して1を生成します。したがって、プログラム全体は、基数2の2桁の最初の非負整数である[2]を返します。

⁾⁾⁾Ụ^/

⁾⁾⁾文字列リテラル、具体的には文字列isです。グレードアップ原子は、それに対応する値によって、そのインデックスをソートします。両方の文字が等しいため、これにより[1、2]が生成されます。結果の配列はビット単位のXOR ^/で縮小されるため、プログラム全体は3を返します。

ı***ıḞḞ

ı引数と戻り値を虚数単位iに初期化します。*累乗ダイアドであり、その正しい引数はデフォルトでメインリンクの引数になります。従って、***ı計算するには、((I IIiが 4.81 + 0I≈原子(実引数のための実部の複雑なもののための)実部(演算4.81に)、次いで得フロア、4

5
6
7

これらの3つのプログラムは単一のリテラルで構成されており、まさに期待どおりに動作します。

.::::

リテラル.0.5の短縮形で、引数と戻り値を初期化します。整数除算ダイアドの(:メインリンクの引数に)右引数のデフォルトので、::::計算0.5 / 0.5 / 0.5 / 0.5 / 0.5を得、8

9

別のリテラル。

EȮ<

全て等しい原子をE返す1引数内のすべての要素が等しい場合、および0でない場合。整数の引数zがに促進される[Z]をので、E戻ります1暗黙の引数の0

現在、出力アトムȮ1をSTDOUTに出力します。次に、小なりアトムを使用して1と暗黙的な引数0を比較します。結果は(1 <0)= 0であり、プログラムの終了時に暗黙的に出力されます。<

11 – 20

⁻GṘ

グリッド原子はG、その引数から視覚的に満足テーブルを作成しようとします。単純な整数引数(ここでは0)の場合、単純に配列にラップします。フラット等しくない原子は、暗黙の引数を比較0(右の結果と[0] )、得1引数が等しくないからです。表現原子プリント1 STDOUTにその結果を返します。プログラムの最後に、最終的な戻り値が暗黙的に出力されるため、結果として11が出力されます。

=`p`VV×`DQV

自己は、迅速`、同一の左と右の引数でそれを呼び出すことにより、モナドへのダイアドをオンにします。まず、=`暗黙の引数0をそれ自体と比較して、1を生成します。

デカルト積の原子はp、その引数としてリストを期待し、それは整数促進1の範囲に[1、...、1] = [1] p`デカルト積取り[1]及び自体、降伏を[1、1]]

評価原子はV次いでniladicゼリープログラムとして得られた文字列を評価し、文字列に(数字や文字のみを含む)すべてのフラットアレイをオン。[[1、1]]は最初に[“ 11”]V変換され、次に文字列を評価して[11]を生成します。もう一度、Vこの配列を"11"に変換し、評価して11を生成します。

ここで、11をそれ自体で×`乗算し、121を生成します。小数原子ターン121[2、1、1] 独特の原子は第二の廃棄1を、そして再び戻り、それらを連結から生じる整数に数字のリストをオン12QV

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

~あるビットごとのNOT原子。2の補数演算により、引数z〜z =-(z + 1)にマッピングします。A絶対値アトムであるため、-(z + 1)= z + 1をマッピングします。初期戻り値が0の場合、13個のコピーが13~A返します。

⁷ṾṾṾw

定数は改行文字「\ n」を保持し、引数と戻り値を初期化します。

uneval原子は、その引数の文字列表現を作成しようとZのコードからなるジェリープログラムが戻ってくるようなZを

最初の呼び出しは、文字リテラルである文字列"” \ n"を忠実に返します。次の呼び出しは、「”」、「\ n」 –文字リテラルのペアを返します。3番目の最後の呼び出しは、"" "、" "、" ,, ""、 "\ n"(文字リテラルの5組)を返します。

最後に、ウィンドウインデックス原子はwその右引数を促進する「\ n」は文字列に「N \」で始まる部分文字列の最初のインデックスを見つける「\ n」を。これは14を返します。

⁴ḟ€⁴Ṁ

は定数16です。クイックリンクfilterfalse各々は、ḟ€)の左引数推進16範囲[1、...、16]次に、その要素を反復します。

各要素のためにZḟ⁴最初の促進、実行されるZの[z]は、次いでの出現(もしあれば)全てを除去すること、16。これにより、配列[[1]、[2]、…、[14]、[15]、[]]が生成されます。最後の配列には16が含まれているため、空です。

最後に、最大アトムは[15]を選択します。

mmmmċ

モジュラー原子m-引数と呼ばれるX(アレイ)とY(整数)は、通常、すべてのかかる| yは| 番目の要素X、場合は、最初から始まるY> 0であれば最後で、0 <Y 。ただし、y = 0の場合、xを逆に連結して返します。

左整数引数0は最初に[0]に昇格されます。最初のコピーmを連結し[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]

最後に、countアトムċは、結果の配列に暗黙的な引数0が出現する回数をカウントし、16を返します。

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

タックアトムであり、その左の引数をその右の引数に追加します。ので、次の二項あり、すべては呼び出し暗黙の引数渡し0に右引数として。最初の呼び出しは[0、0]、2番目の[0、[0、0]、および8番目と最後の[0、[0、[0、[0、[0、[0、[0、[0、 0]]]]]]]]]

は、可分原子です。引数のために、XYは、返し1であり、Xがで割り切れるY0でない場合。整数の操作はありませんので、構築された配列の各整数による除算可能性を0ḍḄテストします0はそれ自体で割り切れるため、[1、[1、[1、[1、[1、[1、[1、[1、1]]]]]]]を取得します。

現在、unbinaryアトムはフラット配列で動作します。ペア[a、b]の場合、単に2a + bを返します。前述のように、整数の何もしません:整数引数Cはに促進され、[C] 、および[C]任意の塩基単にC

への最初の呼び出し[1、1]3に減らし、したがって[1、[1、[1、[1、[1、[1、[1、3]]]]]]を生成します。次の呼び出しは[ 9] が戻る17まで[ 1、3]5に、次の呼び出しは[ 1、5 ]7に、というように減らします。

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

フラットな論理NOTアトムであり、暗黙的な引数01にマップします。+は加算アトムであるため、18個のコピーのそれぞれが+Ṇ前の戻り値(最初は0)をインクリメントします。したがって、プログラム全体は18を返します。

CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC

C補数アトムであり、引数z1-zにマッピングします。N否定アトムであり、引数z-zにマッピングします。一緒に、z-(1-z)= z-1CNマッピングします。そのため、18個のコピーが暗黙の引数0-18に変えます。yieldsの最終アプリケーション。C1 - (-18) = 19

ĖḌĖḌ

列挙原子はĖ指標値のペアを作成し、アレイ内の項目を列挙します。暗黙の引数0に促進される[0] 、次いでĖ得られる[1,0] undecimal原子得、ベース10からフラットアレイが整数に変換する[10]この特定のケースでは。

2番目の呼び出しĖの変換[10][1、10]第二は、最終的に変換する[20]

21 – 30

ṫṣȦJṫȦ⁸ȦJ

テール原子(ダイアド)左の整数の引数を促進し、その右側の引数で指定されたインデックス(1ベースおよびモジュラー)で始まり、その左引数の後置選択xの[X]を。両方の引数を0に設定して呼び出した場合、[0]を返します。

任意およびすべての原子Ȧを返す1引数はtruthyであり、任意の深さ、で何のゼロが含まれていない場合は0そう。ここでは、暗黙の引数0を返すための恒等関数として単純に使用します時分割原子はその左引数を分割[0]の右引数の発生時に0、それは返す[[]、[]]ここに。

指数原子は、J戻り値の要素を破棄し、そのインデックスに置き換えられ、範囲の降伏[1、2]この特定の場合には。Ȧそして、の両方が以前のように動作するので、それらは削減[1、2]得、最後のインデックスから始まるポストフィックスに[2]

ニラディックリンクでは、定数[]を保持します。これは解析不可能なniladです。つまり、チェーンにはまったく適合しません。その結果、前の戻り値([2])がSTDOUTに出力され、niladの値([])に置き換えられます。

以来[] falsyある、Ȧに変換する0J原子が促進0[0]は、そのインデックス(のリストを返し、[1]プログラムが終了したときに暗黙的に印刷されています)。

22

別のリテラル。Repdigitsは、それらを使用するのに最適な場所のようです。

“@ṃ»

これは、Jellyの組み込みの文字列圧縮を使用します。インデックス@Mゼリーのコード・ページでは、64220と文字列リテラルは、250個の異なる文字を含むことができるので、この最初のは、整数計算250×65 + 220 = 16470を

16470は3で割り切れるので、商16470/3 = 5490は印刷可能なASCII文字または改行をエンコードします。これらの96個と5490 = 96×57 + 18があります。これは、0ベースのインデックス18で印刷可能なASCII文字をデコードしたことを意味します。これは'2'です。

57が残っていますが、これも3で割り切れるので、商57/3 = 19 = 96×0 + 19は、0から始まるインデックス18で印刷可能なASCII文字をエンコードします。これは'3'です。

これにより0残ります。デコード処理が停止します。生成された文字は連結されて「23」を形成します

!ḤḤ!

階乗原子は、!暗黙の引数になります01。二つの呼び出しunhalve原子ターン12次に、24。最後に、4を!計算します!= 24

³HH

コマンドライン引数がない場合、定数³100を保持します。Hターン10050に、次に5025に 2回呼び出します。

ØaM

定数Øaは小文字のアルファベットを保持します。最大の原子はM、最大の項目のすべてのインデックスを生成し、以降zは最大小文字であり、結果は[26]

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

連結アトムの26コピーは、;初期戻り値0とデフォルト引数0の 26インスタンスを連結し、27個のゼロの配列を構築します。

¬論理NOTアトムであるため、ゼロの配列に1追加します。次は、配列内のすべての要素を否定し、27個の1と1個の0の配列を残します。¬

は、unbaseアトムであり、右の引数で指定されたベースの左の引数から整数に数字配列を変換します。ḅ¬単項から整数に変換するため、単純に合計を実行します。27個の配列の場合、これは27を返します。

irið8c

atom のインデックスはi、左引数0[0]に昇格させ、その配列で右引数0のインデックスを見つけて1を生成します。

範囲の原子はr、それから、昇順または降順の範囲は、その右のいずれかの引数が残って構築します。正しい引数は暗黙的な引数0であるため、これにより[1、0]が生成されます。の2回目の呼び出しは、[1、0]i0のインデックスを見つけ、2を生成します。

ð新しい二項チェーンを開始します。前のチェーンはniladicであったため、このチェーンの左右の引数はどちらも最初のチェーンの戻り値(2)と等しくなります。組み合わせの原子です。左引数8と右引数2の場合、8個の要素のセットのすべての一意で順序付けられていない2つの組み合わせをカウントし、8C2 = 8!/(6!2!)= 28を返します。c

⁶ḲĠṂ°İṂĊ

定数はスペース文字を保持し、引数と戻り値を''に設定します。言葉の原子は文字促進「」シングルトン文字列にする「」と降伏、スペースでそれを分割します[]、[]]

グループ原子Ġ基等しいすべての要素のインデックス。最後の戻り値の両方の要素が等しいため、ここでは[[1、2]]を返します。最小原子得、この配列の最小(のみ)要素を抽出[1、2]

原子が°得ラジアンに60進度の両方から整数に変換1°×2π/ 360°=π/ 180°×2π/ 360°=π/ 90 2原子が得逆数を取る180 /πを≈57.3および90 /π≈28.6

その後、もう一度最小値を取り、28.6を生成します。最後に、ceilアトムĊ28.629に変換します。

œṡ¹ẆẆTUṖṖṖṖP

アイデンティティ原子が¹返す0を暗黙の引数に0周りの分割原子がœṡ(両方の引数の両方を促進0)に[0] 、次に分割[0]に等しい隣接サブアレイの周り[0] 。これにより[[]、[]]が生成されます。

スライディングウィンドウ原子は、その引数のすべての連続したサブアレイを構築します。最初のインスタンスは[[]、[]][[[]]、[[]]、[[]、[]]]に変換し、2番目のインスタンスは[[[]]、[[]]、[[] 、[]]]
[[[[]]]、[[[]]]、[[[]、[]]]、[[[]]、[[]]]、[[[]]、[ []、[]]]、[[]、[]、[]、[]]]]

真実の原子はTtruthyのすべての要素のインデックスを示しています。最初のレベルの配列はどれも空ではないため、これにより[ 1、2、3、4、5、6 ]が生成されます。upendの原子U得、この配列を逆転[6、5、4、3、2、1]

popアトムの4つのコピーは最後の4つの要素を削除し、[6、5]を残します。最後に、製品アトムPはこの配列を30に変換します。

31 – 40

ȷ½RṪ

ȷ1×10 3 = 1000の省略形です。平方根原子½収量31.6範囲の原子Rに変換[1、...、31] 。最後に、テールアトムは最後の要素を抽出し、31を返します。

LµdddddµFL

原子はL暗黙の引数促進0[0]を得、次いで長さをとる1µ新しいモナド連鎖を開始し、結果1が引数になります。

引数xおよびyの場合、divmodアトムd[x / y、x%y]を生成します。各呼び出しにはy = 1があるため、結果は常に[x、0]になります。

最初のコールが始まるx = 1から得た、[1,0] d整数でのみ動作するため、後続の呼び出しでベクトル化します。2番目の呼び出しは[[1、0]、[0、0]]を生成し、3番目の[[[1、0]、[0、0]]、[[0、0]、[0、0]]]を生成します5番目と最後の1つは、単一の1と31個のゼロを含む深さ5の配列です。

µもう一度新しいモナド連鎖を開始し、以前の配列が引数になります。フラット原子がF単一のものと31ゼロの平坦なアレイを得、この配列をネストしません。最後Lに、結果の長さを取り、32を返します。

33

別のrepdigit、別のリテラル。

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ

ラップアトムの各インスタンスは、引数z[z]に変換します。初期戻り値が0の場合、34個のインスタンスすべてが一緒に[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[0]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] 。最後に、深度アトムŒḊは結果の配列の最大深度を計算し、34を返します。

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

ウィンドウが存在する原子は、その引数(両方ともデフォルトの両方促進0にする)[0]、** [0] **の連続サブアレイとして発生した場合、その後のテスト[0] 。そうなので、1を返します。

ɓ新しい二項チェーンを開始します。前のチェーンはniladicであったため、このチェーンの左右の引数はどちらも最初のチェーンの戻り値(1)と等しくなります。チェーンは、2つの異なるダイアディックアトム(ビットシフトæ«)およびビット単位OR|))を使用します。

3つ以上のダイアドで始まるダイアディックチェーンは、チェーンの引数で最初のダイアドを最初に呼び出します。ここで、これは1 << 1 = 2を与えます。後続の6個のダイアドはペア(いわゆるfork)にグループ化され、右端のダイアドが最初にチェーンの引数で呼び出され、次に左端のものが前の戻り値で両側に呼び出されます。

のためにæ«æ«2 <<(1 << 1)= 2 << 2 = 8を取得します。次に、8 <<(1 << 1)= 8 << 2 = 32をæ«æ«計算します。今、私たちを取得する| 32 (1 << 1)= 32 | 2 = 34|æ«

最後に、末尾|フックのように機能し、前の戻り値を左引数として、チェーンの右引数を右引数として呼び出されます。これは34を返します| 1 = 35

⁹ṚḢ²

2番目の引数がない場合、定数256を保持します。リバース原子が促進256をアレイに[2、5、6] 、それが生成する逆転[6,5、2] 。次に、先頭の原子が最初の要素を抽出し、正方形の原子²が**6²= 36 *を返します。

‘‘‘0‘‘‘‘‘‘‘

増分原子によってその引数をインクリメント1、そう‘‘‘初期戻り値ターン03。次の0は解析不能なniladです。つまり、チェーンにはまったく適合しません。その結果、前の戻り値(3)がSTDOUTに出力され、niladの値(0)に置き換えられます。

次の7つのコピーは、この07に変えますこれは、プログラムの終了時に暗黙的に印刷されます。

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

デクリメント原子はでその引数をデクリメント1、そう三〇から八コピーが初期の戻り値回し0を-38差分絶対原子との間の符号なし差算出-38及び暗黙の引数0を返す、38

-____---__________

--1の短縮形で、リンクの引数と戻り値を-1に設定します。それぞれ_は、二項減算アトムのインスタンスであり、その右引数は、欠落している場合はデフォルトで-1になります。

まず、(-1)-(-1)-(-1)-(-1)-(-1)= 3を-____-計算します。次の-1は解析不能なniladであるため、前の戻り値(3)がSTDOUTに出力され、niladの値(-1)に置き換えられます。

次に、(-1)-(-1)= 0を-_計算します。ここで、リテラル-引数を設定_し、戻り値を右引数として使用します。次の9つのコピーは、戻り値から_デフォルト引数-1を減算し、9を生成します。これは、プログラムの終了時に暗黙的に出力されます。

”(O

”(は文字リテラルであり、順序アトムOはUnicodeコードポイントを検索し、40を生成します。

41 – 47

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

3番目のコマンドライン引数がない場合、定数10を保持します。unlength原子が特に0ベースの範囲を作成し、[0、...、9]引数の10の両側に、場所に繰り返し原子x。後者は、その左の引数の要素をその右の引数の繰り返しと一致させ、各要素を対応する回数繰り返します。[0、...、9]の両方の左と右の引数として、我々はこのようになど、ゼロ、ゼロ、1 1、2つの補数を取得

アトムインデックスは、左の引数で指定されたインデックスで右の引数の要素を取得します。左引数10左)と右引数[ 1、2、2、3、3、3、4、4、4、4 、…、9](前の結果)を使用すると、4が得られます。

この時点までのチェーンの後に解析不能なniladが続くため、前の戻り値(4)がSTDOUTに出力され、戻り値は10に設定され、チェーンの残りの部分は通常どおり解析されます。

前と同じように、⁵ḶxḶ配列[ 1、2、2、3、3、3、4、4、4、4 、…、9]を生成します。今回は、引数10ソートされたアトムを呼び出し、10[1、0]にプロモートし、ソートして[0、1]を生成します。ダイアディックヘッドの原子は、現在の長さのプレフィックスフェッチ01との私達を残し、左に結果からを[1]、[]] 。印刷すると、1のみが表示されたままになります。

⁽{ʂ%⁽{}

そして、それに続く2つの文字は数値リテラルを構成します。場合JKは、ゼリーのコード・ページとで自分のコードポイントである(j、k)は<(124、250) 、我々は整数取得1001 + 250J + kは。コードのポイント'{' '}' 、及び'ʂ'がある123125、及び167、そうにリテラル評価さを残し1001 + 250×123 + 167(= 31918)右一つに評価しながら、1001 + 250×123 + 125(= 31876)

左の整数は右の整数の2倍よりも小さいため、結果は(…+ 167)%(…+ 125)=(…+ 167)-(…+ 125)= 167- 125 = 42です。

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

シャッフル原子は、その引数の要素の順序をランダム化。数値引数z事前に[1、…、z]の範囲に昇格されます。暗黙的な引数0の場合、この範囲は空であり[]を生成しますすべての原子が返す1をその引数のすべての要素が、truthyであれば0でない場合。空の配列には偽の要素が含まれていないため、ここで1を返します。

ジップ原子ż(ダイアド)は引数のとりxとし、yのペア転置[X、Y]を。整数xおよびyの場合、これは単に[[x、y]]を生成するためż、引数1および0(暗黙的な引数)で呼び出されたこの特定は[[1、0]]を返します。二項のeval原子はv、私は、文字列に左引数(数字と文字のみを含む)すべての平らな配列を回す、その後のプログラムの引数としてその右引数とモナドゼリープログラムなどの結果の文字列を評価します。["10"]以降リテラルのみで構成され、これはの正しい引数を無視し、v単に[10]になります。

コピーは迅速©に接続するvレジスタにその結果をコピー。後でリコールアトム®(nilad)が発生すると、レジスタから[10]がフェッチされます。

次の3つのżv作業は、以前と同様に、[10][[10、0][100]に…… [10000]にマッピングします。オーダー原子その左引数がので、ここで、その右のいずれかで割り切れる何回試験は、それが順算出10(とフェッチ®で)10000 = 10 4を得た、[4]

以下®は解析不能なniladであるため、前の戻り値([4])がSTDOUTに出力され、niladの値(10)に置き換えられます。次に適用して、1を生成します。(この時点で、niladの後にdyadが解析可能になるため、これが必要です。)

前と同様に、żvżvżv現在の戻り値に3つのゼロを追加し、1[1000]に変えます。最後に、ọ®順計算101000年= 10 3、及び3は、プログラムが終了したときSTDOUTに出力されます。

44

さらに別の数字、さらに別のリテラル。

111111l11&K1111111Kl11&

何よりもまず、リテラル111111は引数と初期戻り値を111111に設定します。の他の実行1もリテラルです。

l対数 atomで、右の引数で指定された底に対する左の引数の対数を計算します。正しい引数11111111を呼び出すと、ログ11 111111≈4.85が得られます

言葉の原子はK、数値/文字促進した後、スペースのリストを引数に参加し、Zをする[Z] 。ここでは、単にリンクの引数111111[111111]に変換するために使用します。(ここでは配列は必要ありませんが、アイデンティティアトムが不足しています。)ビット単位のANDアトム&は戻り値を両側に受け取り、必要に応じて整数にキャストし、ビット単位のANDを計算します。この特定のケースでは、[4.85&111111] = [4&111111] = [4]を返します。

以下1111111は解析不可能なniladであるため、前の戻り値([4])がSTDOUTに出力され、niladの値(1111111)に置き換えられます。K次に、この整数を[1111111]に変換します。(これは本当に必須ではありませんが、この時点でniladの後にdyadが解析可能になります。)

前と同様に、log 11 1111111≈5.81をl11計算し、[5.81&111111] = [5&111111] = [5]を返します。&

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

これは、複数のユーザー定義リンクで構成される唯一のプログラムです。最後のリンクはメインリンクであり、プログラムの起動時に実行されます。残りのリンクはヘルパーリンクです。クイックはÇ常に現在のリンクより上のリンクを参照し、単項で実行します。同様に、クイックはÑ常に現在のリンクのにあるリンクを参照し(ラップアラウンド)、それを単項的に実行します。

トップリンクから成る一対の原子,-引数ターンダイアドのxyと[X、Y]と- 原子S-整数の引数促進モナドZ[Z]を加算することによって配列引数を低減します。リンク,SSが整数引数nで呼び出されると、Σ[n、Σn] =Σ[n、n] = 2nを計算します。

中央のリンクは上記の原子、前述の迅速で構成さÇれ、重要でない原子生み出すモナド- 1の数値引数のためのz1≤-1≤Zが、0他のすべてのために。最初の出力(2番目の入力)は常に重要ではないため、整数引数nに 2回適用すると、基本的に1に置き換えられます。次に、この結果は(引数nで呼び出される)の戻り値とペアになり、結果のペアはで削減されます。合計で、計算しますÇSΣ[(| n |≤1)≤1、2n] =Σ[1、2n] = 2n + 1

これらの2つのヘルパーリンクを配置すると、メインリンクはその2進数を調べることで負でない整数を作成できるようになります。初期戻り値が0の場合、チェーンÇÑÇÇÇÑは最終結果(((((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

次の素数原子は、その引数より厳密に大きい最小の正の素数を発見します。初期戻り値が0の場合、15回の呼び出しでÆn15番目の素数、つまり47が計算されます。


7
ニームの38に追いつくために一日中費やしてきたので、スクロールダウンしてこれを見てください。勝負を受けて立つ!
シャギー

1
TL; DRあなたは47に数えられるようになり、あなたはJellyの魔法使いです。
カスケードスタイル

チャレンジで要求されたすべての「アトム」シングルバイトですか?ある場合、これはどのエンコードですか?
M.ヘルツカンプ

4
@ M.Herzkamp Jellyは独自のコードページを使用します
デニス

1
私は今初めて詳細な説明を読みました。これは本当に印象的です。これらのいくつかはばかげている:
スティーウィグリフィン

62

brainfuck、2、スコア255 144 10バイト

...ええ、作業するのは8文字(ターピットからターピット)しか持っていないので、最善のアイデアではありませんが、どれくらいの可能性があるか見てみましょう。これが可能だと思う。:Pこの回答は、brainfuckが使用する8つの文字のうち6つを示しています。他の2つは,、入力であり.、出力であるです。

+
>--[<->-]

オンラインで視覚化する!

説明

すべての番号が作成され、テープの開始セルに保存されます。いくつかのインタープリターでは実装されていないラッピングセルに大きく依存しています。

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
今、脳のフレークでそれを行います。:P
DJMcMayhem

38

ニーム、スコア38、327バイト

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: 𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝐥

説明:

  • 1の場合、「平等性の確認」トークンを使用します。ここでは、Neimが空の入力でポップしようとすると0になります。0と0は同等であるため、暗黙的に印刷される1をプッシュします
  • 2から9までは、数値リテラルのみを使用します。
  • 10から32まで、Neimには実際にすべてのバイトに対して1バイトの定数があります(そう、クレイジーです)。
  • 33では、incrementコマンドのみを使用します。最初のバイトで、Neimは何かをポップして増分できるようにしますが、入力が空なので、デフォルトでpoppingになり0ます。
  • 34では、同じアプローチを使用しますが、デクリメントし、絶対値を使用します。
  • 35については、ゼロ階乗が1であるという事実を活用し、1を複製して繰り返し追加することでそれを使用します。
  • 36については、0と0の共原性をチェックするために使用します。これにより、1がプッシュされます。次に𝐋、を使用して最初の素数を取得します。これにより、2だけを含むシングルトンリストが得られます。次に、最大要素(𝐠)を取得します。次に、リストを取得するまでこのプロセスを繰り返します[2 3 5 7 11]。その後、を使用𝐝してデルタを計算し、リストを作成し[1 2 2 4]ます。次に、𝐬合計(9)を取得するために使用し、0から9までの排他的範囲を計算し[0 1 2 3 4 5 6 7 8]ます。最後に、𝐬再び37を取得するために使用されます。
  • 37 αは、負の値を表す定数であり、繰り返しプッシュして減算します(空の入力でポップしようとすると0がプッシュされるという事実を利用します)
  • 38では、再び空の入力にデフォルトの0を使用して、0を自身に追加し続け、長いリストを作成してから長さを計算します。

ここで試すことができます


3
あなたは36-37の周りに何かを混ぜました。
エリックアウトゴルファー

2
ただし、これらの特殊文字は1バイト以上でエンコードされていませんか?もしそうなら、それはmothereffのバイトカウンターとチャレンジルールによると860バイトになりall characters must be encoded using a single byte in the language you chooseます。Neimはこれらの特殊文字を1バイトのみでエンコードしますか?どうやって?
ハンクレコード


2
キャラクターを1まだ使用していません。確かにあなたはそれをいくらか使うことができますか?
ベルギ

34

Python 2、15

ここから始まり、より多くを探します

先端が私が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
合計バイト数を減らす-~-~-~-~-~-~-~-~-~[[]==[]][[]<[]]ために10と0xD13を使用できます
-ovs

''is''true と評価される事実を使用して、別の数値を作成する方法はありますか?
Notts90

@ Nots90残念なことに、私はそれを利用して何かを作ろうとしています。新しい数値を作成する方法を見つけたり、ブール値を教えてくれたりした場合
スリオチリズムオザイック

1
14には閉じ括弧がありません:((()<((),))|(()<((),))<<(()<((),))|(()<((),))<<(()<((),))<<(()<((),)))<<(()<((),))
TemporalWolf

1
記録のために、あなたの最新の改訂版は次のものを使用していませんstring.printablec, 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バイト、スコア42

ShaggyETHproductionsOliverの大規模なコラボレーション。

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

これらの(有用な)文字が残っています。

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

説明

開始する前にJaptについて知っておくべきことがいくつかあります。まず、Japtには入力用に予約された6つの変数があり、それらは大文字U-Zです。これらの変数を介して入力が渡されない場合、デフォルトはすべてです0。2つ目は、このヒントで説明します。

スニペットをクリックして、オンライン通訳で試してみてください。


v

数値に適用した場合、v本方法は、整数をとるN引数として、および返し1の数はで割り切れる場合はN0でない場合。nが指定されていない場合、デフォルトは2です。0(のデフォルト値U2で割り切れるため、これにより1が得られます。


y

最初のものと非常に似ています。数値に適用すると、yメソッドは引数として整数nを取り、2つの数値のGCDを返します。nが指定されていない場合、デフォルトは2です。以来0がで割り切れる2GCD(0、2)は私たちの提供します2


Íà
Í以下のためのショートカットですn(2)2- this。入力がないため、デフォルトでにthisなり0、結果はになり2-0 = 2ます。

àの組み合わせの数を返し、3[1...this]を返します


Qiiii)iiii)âQ

Qデフォルトは単一引用符です。i文字列では、先頭に別の文字列を挿入します。#3で説明したように、それぞれiiii).i("i".i("i"))JSの場合と同等であるためi、文字列の先頭にの2つのコピーを挿入します。これを2回実行すると、文字列が得られますiiii"âQ次にをシミュレートし、文字列.search(Q)の最初のインデックス4を指定します。"


ÂHq
H32の定数です。q整数nを引数として取るメソッドは、数値に適用されると、その数値のn 番目のルートを返します。nが指定されない場合、デフォルト値は2であるためHq、32の平方根(約5.6568)が得られます。Âはのショートカットで~~、結果をフロア化して5を与えます。


LÁL
L100にプリセットされてÁおり、>>>(ゼロフィルビット単位右シフト)のショートカットです。(右のオペランドがmod 32をラップ100>>>100する)と同じで、6です。100>>>4


´Vn´VnVnVn

前述のとおり、Vデフォルトは0です。´--演算子のショートカットであるため、コードは次のJSと同等です。

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

X.n(Y)Y-Xまたは-X + Yと同等です。最初--V-1を返し、2番目は-2を返すため、これは-(-1)+(-(-2)+(-(-2)+-(-2)))とほぼ同等です。簡略化すると、1 + 2 + 2 + 2 = 7になります。


8
9

文字通り、89


A
B
C
D
E
F
G

これらはのための定数である10 - 16を含め、。


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

J-1にプリセットされています。Japtインタープリターは、どういうわけか、これを正しく解析し(J--) - (--J) - (--J) - (--J) - (--J)ます。さらに計算すると、これは(-1)-(-3)-(-4)-(-5)-(-6)、または-1 + 3 + 4 + 5 + 6 = 17と同等であることがわかります。。


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

¾ご想像のとおり、はのショートカットです.750.75の 24個のコピーを配列に入れ、合計してx0.75 * 24 = 18になります。


;Iìw

これは私のお気に入りだと思います。;プログラムの開始時に、いくつかのJapt定数の値を変更します。それIがない場合は64ですが、それがある場合I91です。ìwそれを数字のリストに変換し、リスト上で実行wし、配列を逆にしてから、数値に戻して19を得ます。


~~½e½e½e½e~½e½
½はのショートカットです.5e数値xは引数yを取り、x * 10 yを返します。したがって、発生する一連の計算は次のとおりです。

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

そして、ファイナル~~はこれを整数に底上げし、結果として20を生成します。


++T+++T+++T+++T+++T+++T
T0にプリセットされています++JSおよびJaptのインクリメント演算子です。T+++Tはとして解析されますが(T++) + T、として++T+++T解析される(++T) + (++T)ため、これはJSコードと同等です

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

結果は1 + 2 + 3 + 4 + 5 + 6で、合計は21です。


22

リテラル22


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

Äはのショートカットな+1ので、これは単純に23 1秒を合計します。


これにより[1, 2, 3, 4]、の順列の数が4になります!= 24


²は、のショートカットでp2、数値を2の累乗にします。5 ** 225です。


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

°++演算子のショートカットです。または、そのように解析できない場合は、になり+ +ます。前述のように、入力がない場合、Uデフォルトは0です。したがって、コードは#17(++U), (U++) + + (++U) + + (++U) + + (++U) + + (++U) + + (++U)と非常によく似ています:最初に増分され、その後繰り返し増分され、最終結果が1 + 3 + 4 + 5 + 6 + 7 = 26になるように繰り返し追加されます。U1


»³³

³3のp引数を持つメソッドのショートカットです。ただし、小文字が左括弧(のショートカット)の直後にある場合は、文字列になります。これにより、メソッドに渡され、関数として呼び出されます(つまり、によってマッピングされます)。ただし、この場合は、を返し、それを(の数に適用したときのべき法です)の累乗にします。これにより、27が得られます。»((.p(3)("p",3)33p


7/¼

¼おそらくご存知の.25ように、はのショートカットなので、7 / 0.25 = 28を計算します。


$'_____________________________b'$bb

$シンボルでラップされたものはすべて純粋なJavaScriptとして扱われるため、29個のアンダースコアとそれに続くの文字列がありますb。(なし$'単一文字の文字列であろう。)b文字列に適用される方法は、その文字列内のその引数の最初のインデックスを返します。#3で説明したように、最後bの文字列は文字列に変換されるため、文字列の最初のインデックスでbある29を取得します。


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

µショートカットで-=、そしてÉのため-1。効果は、0から-1のコピーを30減算することで、30になります。


"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"aa

#29と非常によく似ています。このaメソッドは、文字列に適用されると、その文字列内の引数の最後のインデックスを返します。0インデックスを使用するとa、32 a秒の文字列の最後のインデックスは31です。


Sc

Sは単一のスペースに事前定義されてcおり、単一文字の文字列では32を与える文字コードを返します。


33

リテラル33


Mg011

MgNN番目のフィボナッチ数を返します。8進数0119です。9番目のフィボナッチ数は34です。


##

#次の文字の文字コードを返します。文字コード#自体はたまたま35であるため、ここでの作業は特に簡単です。


6p

pは累乗であり、2番目の引数がない場合、デフォルトは2です。したがって、これは6 ** 2 = 36を出力します。


Rí í í í í è.

これはかなりトリッキーです。Rデフォルトは単一の改行文字です(改行であることが後で重要になります)。í引数なしの文字列では、各文字を取り、そのインデックスを追加します:かなり役に立たない変換ですが、5回の反復による結果は次のとおりです:(Rリテラル改行の代わりに使用)

R
R0
R001
R0010213
R001021304251637
R0010213042516370849210511112613314715

各エントリが次のエントリの単なる接頭辞であることに興味があります...しかし、とにかく、最後の部分、は、結果にè.一致する/./gものがいくつあるかをカウントします。文字列には38文字が含まれています。ただし、/./g改行文字以外にのみ一致するため、結果は37です。


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

バックティックは圧縮された文字列をマークし、に¥解凍しllます。l文字列ではl強度が得られるため、解凍後は38になります。


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

ああ、これはすごい。まず、我々は発生trueして¨N¨の略で>=、とNにそれを変換し、その後、入力なしで空の配列である)1を持ちます|N。そこから、それはかなりクレイジーになります:

ò    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]

¹sは、かっこに代わるものに過ぎず、省略されています。)finalがoポップし、配列内の最後の項目を返し、39を返します。


º¤¤*º¤

ほとんどは#3と同じトリックです。2の引数を持つメソッド¤のショートカットです。ただし、この場合、トランスコードされたコードは、または簡略化されます。は、数値をbase-2文字列として返します。これを暗黙的に数値に変換し、4を掛けて40を与えます。s(("s", 2).s(2) * (("s", 2) * (("s", 2))))(2).s(2) * (2 * 2).s(2)"10"* (2 * 2)


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

前のものに似ています。Åは、s引数が1のメソッドのショートカットです。ただし、この場合、各はにトランスパイルし("s", 1)、単に1を返します。1<<1<<1<<1<<1<<1であり32、そして1<<1<<1<<1ある8。これらは141を得るためにXORされます。


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

±ショートカットで+=、そしてのため===。これは、コードが実際には

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

Y===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


うわー、これは今素晴らしいです:-) Iq8を使用して8戻ることができますが、19のために何か他のものを見つける必要があります。
-ETHproductions

@ETHproductions:ちょうど使用qのために5私が使用できるようになりl、余分な番号を追加します。代替品に取り組んでいる2ので、=取り戻すことができます。
シャギー

あなたが使用することができます@Shaggy 2.のためにL>>L解放することができます6. #w s Å解放することができます;I
オリバー

2、@ obarakonの素敵なトリック。フリーアップ3のようなものも使用しました。残念ながら、私はすでに#21で使用しているので、19では機能しません
。–シャギー

私はあなたが数バイトを保存し、取り戻すために18と22を交換することができると思う*^
ETHproductions

18

PHP、スコア17、130バイト

使用される文字 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ブール定数Z(設定なし)等しい定数Z

2 FTP_MOREDATAは、値が2のPHPの定数です。

3ビット単位と文字。そしてw

4ビット単位の左シフトおよび論理的に空の配列をブール値のtrueにキャストしないで、左シフト演算子を介して整数1にキャストします

7ビットのOr文字#と$と1

9 SIGKILLは、値9のPHPの定数です

10ビットごとに右にシフトするすべてのステップは8の整数除算であるため、333333、41666、5208、651、81、10のステップがあります。

13文字列X ...の最初からchar Xをカウントします

15 16進値f = 15

17ビット単位のXorと文字列haおよびYV

すべてのスニペットは配列内のアイテムです

オンラインでお試しください!

PHP、スコア16、94バイト

使用される文字 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ブール定数Z(設定なし)等しい定数Z

2ビット単位と文字:およびw

3空の配列をゼロにキャストして整数値にキャストしたPi

7ビットのxor文字Aおよびv

10個の変数$ sが設定されていません!$ s =変数$ sの文字列長を持つ1つの連結

13111/2 = 55/2 = 27/2/2 13ビット単位の整数除算

15 16進値f = 15

すべてのスニペットは配列内のアイテムです

オンラインでお試しください!

PHP、スコア14、84バイト

使用される文字 $!_^[]()%/+~-=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ブール定数Z(設定なし)等しい定数Z

3空の配列をゼロにキャストして整数値にキャストしたPi

7 ERAは値が131116 mod 11 = 7の定数です。

10個の変数$ sが設定されていません!$ s =変数$ sの文字列長を持つ1つの連結はゼロです

13 16進値d = 13 14ビットごとのNOTおよびマイナス記号はNULLを14に上げます

すべてのスニペットは配列内のアイテムです

オンラインでお試しください!


17

R、スコア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

user2390246のおかげでもう1つ手に入れました。

使用される文字:

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


1
組み込みのデータセットの使用が許可されている場合は、14まで拡張できます。1:F^F、2 : "n"%in%"n"+"n"%in%"n"; 3-9:数字、10:1e1、11:22/2、12:T--T--T--T...、13:0xD、14:sum(mtcars$vs)
user2390246

%ビルトインデータセットの素晴らしい使用と使用の検討。なぜうまくいかないのかわかりません。
BLT

あなたはの線に沿ってコマンドを持つことができ、名前の行と列を持つデータセットがあった場合:私は、もう一つは、再びデータに建て使用して取得することが可能であるかどうか疑問でしたdataset['A','B']がすでに使用された文字が重複回避提供し、(と起こります有用な値を含める!)。残念ながら、クイックルックからわかる限り、名前付き行を持つすべてのデータセットには文字iが含まれているため、の使用と互換性がありません%in%
user2390246

うーん。2については、WheatWizardのPythonの回答からのトリックを使用できますq=""=="";q+q。それは手紙iとの使用を解放するでしょうn。...今に見て時間を持っているが、私はそこにどこかに余分な1があります賭けてはいけない
user2390246

あなたは正しいと思います。主な問題は、i、n、s、u、m、t、c、a、r、e、x、またはvを使用しないデータセットを見つけることです。
BLT

16

MATL、スコア21 22 23の数字(273バイト)

22から23の数字に拡張してくれたJ Doeに感謝します!

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@@<

オンラインでお試しください!リンク内の各スニペットは、D(表示)または]D(ループを明示的に閉じて表示)で終了し、スタックをクリアして、次のスニペットから分離します。

説明

0~

を押し0ます。否定。与えるtrue、として表示され1ます。

'bd'd

文字列をプッシュします'bd'。キャラクターのコードポイント間の連続した違い。

{P}gk

numberを含むセル配列をプッシュしpiます。数値配列(つまり、単一の数値)に変換します。切り捨てます。

HH^

22回押します。力。

5

数値リテラル。

6

数値リテラル。

7

数値リテラル。

8

数値リテラル。

9

数値リテラル。

3 3.333333333333333*

を押し3ます。を押し3.333333333333333ます。かける。浮動小数点の精度により、これはを与え10ます。

11

数値リテラル。

IEE

を押し3ます。22回掛けます。

[B]Yq

プッシュ[6](これはと同じです6)。n番目の素数を計算します。

llllllllllllllNwxwxwxwxwxwxwxwxwxwxwxwxwxwx

114回押します。スタック内の要素の数。スタックの残りをクリアします。

KUKUa-

を押し4ます。平方。同じことをする。Any:を与え1ます。引く。

4W

を押し4ます。2それに上げた。

FFFFFFFFFFFFFFFFFn

プッシュ配列[false false ... false](17回)。配列内の要素の数。

TTTTTTTTTTTTTTTTTTs

プッシュ配列[true true ... true](18回)。配列の合計。

rrrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhz

間隔(0,1)から取得した19個の乱数をプッシュします。水平方向に18回連結します。配列内の非ゼロ要素の数。

OOOOOOOOOOOOOOOOOOOOvZyX>

020回押します。スタックの内容を垂直に連結します(列ベクトルを与えます)。サイズ:配列を提供し[20 1]ます。配列の最大。

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

1j(虚数単位)を21回押します。20回追加します。で割り1jます。

22

数値リテラル

`@QQQQQQQQQQQQQQQQQQQQQQ@@<

Do ... whileループ(`)暗黙的な終了。最初の反復では、反復インデックス(@)をプッシュし、Q22回インクリメント()します23。ループ条件(@@<)は偽なので、ループは終了します。

さらなる改善のためのいくつかのアイデア

  • スニペット10の(スペース)は、 |
  • X>スニペット20に置き換えることができるpので、プレフィックスを解放し、X
  • 現在使用されておらず、潜在的に有用::A

バイト数を含めていただけますか?
Okx

@Okxが含まれています
ルイスメンドー

15

Vim 8 on Windows、スコア13、104バイト

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}表し<C-{keystroke}>、そう^Xである<C-x>以外、^@これは<C-j>。私はまだこのリストに数字を追加しようとしており<CR>、改行を表します。

注:これらのコマンドを実行するには、を使用してvimを起動し-u NONE -U NONEます。これは、設定がコードに干渉しないようにするためです。

スニペット1〜10は挿入モードで始まります。スニペット12と13は通常モードで起動します。

説明

スニペット8は:^R=&ts^@です。これを思いついた@ L3viathan ^@と、ラインフィードの代替として提案する@ nmjcman101と、に短縮&tabstopする@ØrjanJohansenに感謝しなければなりません&ts&ts次に、タブのサイズ(デフォルトでは8)に評価され、この値がエディターに挿入されます。

スニペット10は8^O^A^O^Aです。8を挿入し、10を得るために2回インクリメントします。

スニペット11は0^[^X^X^X^X^X^X^X^X^X^X^X0xです。0を書き留めて11回デクリメントし、-11を取得します。次に、マイナスを削除して11を取得します。

スニペット12は:h<CR>wwwwwwwwwwwy$:q<CR>pです。これにより、Vim 8のヘルプメニューが開き、次の情報が含まれます。

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

ws のシーケンスは12に移動し、その時点y$で番号がコピーされます。次に、を使用してエディターに貼り付けられpます。

Snippet 13はgrgKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYZZvPWWWllld|llD、@ DJMcMayhemのおかげです。これはWindowsでのみ機能します。スニペットは、ヘルプメニューでで始まるコマンドを検索しますg。次に、を使用jしてこの行に移動します。

|g?|        g?      2  Rot13 encoding operator

その後、それをコピーしてバッファに貼り付けます。その後、13以外のすべてがバッファから削除されます。


スニペットが許可されます。
リーキー修道女

^R=&tabstop+&tabstop+&tabstop<CR>Pあなたに12を与えるか、またはの<CR>ためにすでに使用されてい^Mますか?
L3viathan

1
ええ、私が<CR>言ったときに意味しました^Mが、ありがとう、^Mスニペット8から削除することを検討します:)

1
@WheatWizardコントロールキーはキーストロークとしてもバイトとしてもカウントされませんが、他のキーと組み合わせて使用​​され、これらはバイトとしてカウントされます。たとえば、Ctrl + Aはバイト0x01を提供し、Ctrl + Xはを提供し0x18ます。そして明らかに、これら2つは別々のバイトです。それは理にかなっていますか?
牛は

1
@ L3viathanでVimを起動-u NONE -U NONE&tabstopだから私はいくつかの変更、感謝:)で8スニペットでこれをスワップ8に評価
いんちき牛

13

Mathematica、スコア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

おそらく余分なスペース文字を削除する必要があります。そうでなければ、その文字を再利用したように見えます。
Ørjanヨハンセン

1
それは問題ではありません。それらを削除します。
-J42161217

2
「すべての文字は、選択した言語の1バイトを使用してエンコードする必要があります」- ⌊⌋⌈⌉各1バイトで物をエンコードするエンコードが存在しないのではないかと
思う-user202729

我々は避けることができ⌊⌋⌈⌉回して⌊E⌋Floor@GoldenRatio⌈Pi⌉4LucasL@47、と77/722/2。これは、との関数を適用することにより、少なくともさらに一歩行くことはおそらく可能です//
ミーシャラブロフ

12

05AB1E、スコア18、67バイト

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

オンラインでお試しください!


13
あなたの答えはA'ok:)
Okx

ここで3つの次のとおり„((Ç;¬= 20.0;序値に、両方を半減;尾を取る);(全角文字「((」₁.²₁P₃/ï= 21(ログ-2 256と、256を乗じ、95で除し、小数点以下を用いて除去)₂Ågttγć= 22(26回目のルーカス用語、2倍の平方根、等しい要素のチャックに分割、頭部抽出)。最後の2つは試行錯誤でした。;)
ケビンクルーイッセン

9

ピンポン、スコア127

PingPongでは、すべての文字に固有の数値が割り当てられているため、127までカウントするのは簡単な作業です。この言語は、すべての文字の値を読み取り、すべての操作が実行されるスタックの一番上にプッシュすることで機能します。PingPongは理論的に127を超えることができますが、テキストエディターで単にスペースとして表示される文字のブロックを渡す必要があるため、ソリューションから除外しました。

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、これは公平ではありません...:P
MD XF

D:この言語はこの挑戦のために行われているようにうわー、それはだ
V.クルトワ

別の奇妙な言語についてのTIL :)
ロブログ

8

オクターブ、スコア14、74バイト

限界に近づいていると確信しています。

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!)

削除する必要がありましたstrchr、私はすでに持っているので、c数10、私はまだ持っている中でj^=!、スペースと、それは可能かもしれないので、1つ以上を絞るために、左水平タブ(ASCII-9)。

水平タブはスペースとして使用することができますので、トリックは一緒に使用strchrし、nnz1つのより多くの時間を使用することができます。残っているのは小文字のみabdfgjkmoquvwxyです。これらから作成できる関数は多くありません。mod動作する可能性はありますが、文字列の入力は受け付けません

残りの文字を使用して取得するのは簡単ですが、他の文字を取得1する方法はわかりません。

すべてをテストします

おそらく有用です:fun aは、と同じ、fun('a')などfun a bですfun('a','b')。これはいくつかの場所で使用できます。

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

これを使用すると0利用できるようになりますが、私はまだそれを有用にする方法を見ることができません。

e (2.71828...)そしてj、まだ使用されていません。ただしceil、使用するには削除する必要eがあります。

選択肢(インスピレーション):

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個の整数、137の 130 128バイト

私は@ETHproductionsの回答受け取り、しばらくそれで走りました。大きく変更されているため、個別に投稿しています。アイデアは大歓迎です。:)

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

残り:
$_@#!^&|/?:, ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz

または、1のスニペットが次のように置き換えられた場合!!/!//!!/!/
$_@#^&|*?:", ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz


JavaScript(ES7)、16整数、127バイト

1バイト短くなります。: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

残り: $_@#!/^&|?:,ABDFGHIJKLNPQRVWYZcghjklmpqrsuvwyz


1
-~{}-~{}:Pを使用して2で7バイト節約しますが、全体的には、これらはかなり良いです。確かに私のものよりずっと短い
...-ETHproductions

1
そして、あなたはまだ!&/^|仕事をするためのすべてを残しています、かなり印象的です。必要であれば、あなたは使用することができ!!/!//!!/!/、貿易への1のために!/のために"*
-ETHproductions

@ETHproductions素晴らしい!
-darrylyeo

1
2はちょうど-~-~{}
GOTO

図10のように記述することができない+!![]+[+[]]限りがあるようには良い使用、!
GOTO 0

7

Dyalog APL、スコア15、89バイト

≡''
≢###
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

以前の改行l:lは12の一部です。

14のスペースはタブを表します。


1
12と14の両方でスペースを使用していると思いますが、APLは代わりにタブを使用できますか?
Ørjanヨハンセン

@ØrjanJohansenそこに余分なスペースがありませんが、私は間違ってスニペットをseperatingラインを含まなかった
ウリエル

つまり、スペース文字は2つのエントリ、12と14で使用されているようです。
ØrjanJohansen

@ØrjanJohansenああ、はい、最後のタブはタブになります。
ウリエル

@Urielいくつかのアイデア:0 0 0-> 0,0,0; ]fromhex f
ngn

7

> <>、スコア20、93 90 74 65バイト

(Teal Pelicanが3バイト、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::+:++:+:+

魚の遊び場で試してみてください!n;それぞれの末尾に追加することで、スニペットに結果を印刷させることができます。9番目のスニペットにはタブが含まれており、スタック交換によって食べられることに注意してください。

説明:

  • ではiii((、それぞれiが入力を取得しようとしますが、入力がないため、-1代わりにEOF =をプッシュします。それから小(なり命令であり、-1未満ではないので-1、偽を押し0ます。しかし、2番目(-1がより小さいかどうかを尋ねるので0、それは真実1です。
  • 2そして3明らかです。
  • の場合ll{lll{[、最初lはスタックの長さ、0つまり2番目をプッシュし、2番目は新しい長さをプッシュして、スタックをに移動し0, 1ます。{スワップ、左のスタックを回転させる10。さらに3つlがスタックをに持ってきます1, 0, 2, 3, 4。次に{1を前方に回転し、スタック上の[最初の1もの、つまりを吸い上げます4
  • 567そして8あまりにも明白です。
  • !\t00=0g(ここで、\tタブを表し)、!タブをスキップし、その後、00=それらが等しいなら二つのゼロとのチェックをプッシュする-彼らはあるので、我々はtruthyを取得します1。別のものを押した後0g位置の文字を取得1,0する文字コードとタブでのコードのを9
  • a至るまでf、それぞれのプッシュ1015それぞれ(おそらく進素敵を作るために)。
  • 44*のために2をプッシュ4し、それらを一緒に乗算します16
  • 'RA'文字コード押すRA、次に、スタックに(それぞれ82及び65)を%計算します82 mod 65 = 17
  • 999-9--に評価され9 - ((9 - 9) - 9) = 18ます。
  • "&F#"&Fおよびの文字コードをプッシュします。#これらはそれぞれ3870および35です。それから,除算なので、が得られ38 / (70 / 35) = 19ます。
  • 最後に、1::a 1をプッシュして2回複製し、+2つを加算してgetにし2ます。:+を複製し、2自分自身に追加して取得し4ます。+残り1を取得するために追加します5。次に:+:+、2回複製して追加し、結果はになり20ます。

これは、> <>で可能な最大スコアです。任意のスニペットは空でないスタックに空のスタックを点灯し、(すなわちことを行うことができますのみ18> <>指示があるどこかの指示を含んでいなければならないilと数字0–9a–f)、プラス文字列モード。(他のすべての命令は、空のスタックに対して何もしないか><v^/\|_#x!{}r、何かとエラーをポップしようとし?.+-*,%=():~$@[]on&gpます。)文字列モードに入るには、"またはのいずれかを使用する'ため、最大で18 + 2 = 20可能スニペット。


:あなたは私よりもunprintablesとより快適にしている場合は、これは、53バイトでジョー・キングのおかげで可能です00=, iii((i-, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 2222***, !Xll$g, 11+::+:+:++, 'Y', "Z"XYおよびは、Zコードを持つ文字に置き換えられ1719そして20それぞれ。


1
これは素晴らしいことです。私はこの問題を見てきましたが、この井戸の近くでは何もできませんでしたが、あなたのことを勉強して、少しゴルフをすることができました。16に変更できます。III((:私は$ - :私は$ - :私は$ - i-及び1に変更されるように、00 =あなたはカップルのバイトで両方のラインを減らす。
ティールペリカン

@Tealpelican、素晴らしい仕事、ありがとう!
木ではない

1
次の2> iii((i-16> 2222***17を変更して-23バイトlll{lllll{{[{n(大ざっぱですが、1つの数値として出力する場合は、少なくとも1つ少なくなりますl)18>11+::+:+:++
ジョーキング

@JoKing、すごい、それは大きなゴルフです!(17のあまりスケッチされていないバージョンを使用しました—ルールに沿っているようです。)
木ではありません

1
17 => ! ll$gスペースが値17の制御文字(デバイス制御1)に置き換えられる場合はどうですか?
ジョーキング

7

MathGolf48 51 53整数、324 バイト

î
ª∞~
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 
♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

@maxbの40おかげで+2スコア(およびに使用される-2個の異なるバイト)

各行は個別のプログラムです。

使用済みバイト(92個の異なるバイト): îª∞~c±b+φⁿ_¥-567○¢i♀/d²♂ABCDE☻FGHIJKLMNOPQRST♥UVWXYZ♫¼8]Σ41╔½π░3§2#τ╥└♦⌡!⌠'0$ÿ@£9)►◄╠•╠"h ♣(

説明とTIOリンク:

MathGolfは、数学的ゴルフの課題に特化した新しいゴルフ言語です。数字用のシングルバイトのビルトインがたくさんあるので、これは完璧な挑戦です。

1)î:ループの1インデックス付きの値をプッシュします。デフォルトでは1 です。オンラインで試してください。
2)ª∞~:[1]を押します。それを倍増([2]); リストをポップして、そのコンテンツをスタックにプッシュします。オンラインで試してください。
3)c±b±+:-2を押します。次に、その絶対値をポップしてプッシュします。-1を押します。次に、その絶対値をポップしてプッシュします。一緒に追加してください。オンラインで試してください。
4)φⁿ_¥-:黄金比を押します(1.618033988749895); キューブイット(4.23606797749979); スタックの最上部を複製します。2を法とする(0.23606797749979); それらを互いに引き算します。オンラインで試してください。
5,6,7)数字そのもの:オンラインで試してみてください。オンラインでお試しください。 9):-3を押します。二乗:オンラインで試してください。
8)○¢i♀/:2048を押します。16進文字列(800)に変換します。整数にキャスト。100を押します。分割:
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)数字自体のビルトインをプッシュ(♂ABCDE☻FGHIJKLMNOPQRST♥UVWXYZ):オンラインで試してください。
39)♫¼¼¼¼:10000を押します。4で4の整数で除算:オンラインで試してください。
40)88888]Σ:8を5回押します。それらをリストにラップします。そのリストの合計:オンラインで試してみてください。
41)番号自体:オンラインで試してください。
42)╔½½½½½½½½½½½:86400を押します。2から11の整数で除算:オンラインで試してください。
43)π░3§3:PIをプッシュ(3.141592653589793); 文字列にキャスト; 3番目の0インデックス文字(4)をポップしてプッシュします。3を押します。暗黙的に結合されたスタック全体を出力します。オンラインで試してください。
44)22#22#:2を2回押します。2つの力を取ります(4)。再びそれを行う; 暗黙的に結合されたスタック全体を出力します。オンラインで試してください。
45)τ╥└:2 * PIをプッシュ(6.283185307179586); 一番下にある2のべき乗をポップしてプッシュします(4)。ポップせずにスタックの上部を1押します(5)。暗黙的に結合されたスタック全体を出力します。オンラインで試してください。
46)♦⌡⌡⌡⌡⌡⌡⌡⌡⌡:64を押します。2から9をデクリメントします。オンラインで試してください。
47)!⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠:ガンマ(n + 1)をプッシュ(デフォルトでは1); 2から23回インクリメント:オンラインで試してください。
48)'0$:文字「0」の序数値をプッシュ:オンラインで試してください。
49)ÿ@@@@£9:文字列をプッシュします"@@@@"。ポップして長さを押します(4)。9を押します。暗黙的に結合されたスタック全体を出力します。オンラインで試してください。
50))))))))))))))))))))))))))))))))))))))))))))))))))):1回50ずつインクリメント:オンラインで試してください。
51)►◄╠•╠:1,000,000をプッシュ; 10,000,000をプッシュします。両方をポップし、それらを整数で割ります(10)。512を押します。両方をポップし、それらを互いに整数で除算します。オンラインで試してください。
52)"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"h :文字列をプッシュします"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"。(文字列をポップすることなく)その長さをプッシュします。最後のアイテム以外のすべてをスタックから削除します。オンラインで試してください。
53)♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((:128を押します。1から75回減少:オンラインで試してください。

後でさらに追加しようとします。モジュロ%や乗算など、いくつかの有用なものが残ってい*ます。


私はこのためのソリューションに取り組んでいましたが、1-9を最適化しようとして立ち往生しました。10に到達すると、38に到達するのは簡単になります。一目でわかるいくつかの点:88888ΓΣαΣ-> 88888]Σまたは88888§§§§Σ1つのコマンドを使用して2つのコマンドを保存します。また"xxxxxx"h 、最後の文字がTOS以外のすべてをクリアする非改行スペースである場合のように、文字列の長さを使用して数値を生成することもできます。おそらくx、それ以外のものを使用するのは、Wx別の方法で35を取得できる限り53を取得できるからです。
maxb

また、->のchar/ordように機能し、さらに長い文字列(base-256整数のようなもの)でも機能する演算子を追加しました。あまりよく文書化されているわけではありませんが、この答えを改善することに興味があれば、質問のためにMathGolfのチャットルームを再作成できます。'A$67
maxb

@maxbベッドで病気になったときにあなたのコメントを見ましたが、今ではこの答えを改善する時間があります。をありがとう88888]Σ。知りませんでした]。に関しては"hhhhh"h それはうまくいかないようです。:S
ケビンクルイッセン

1
ここから直接貼り付けることができるかどうかはわかりませんが、コードは、改行しないスペース文字であるNBSPで終了する必要があります。このコマンドは、スタックの最上部を除くすべてをクリアします。コメントで、PPCGがキャラクターを通常のスペースに変換することはかなり確信しています。これを試してみてください
MAXB

配列については、MathGolfで再帰的に定義します。[配列コンテキストを開始して]終了し、結果を配列にラップします。最上位レベルを下位レベルのように動作させるに]は、配列全体でスタック全体をラップするのが良い考えのように思えました。
maxb

6

Javaの8、11 12 13、39のバイト

Javaには数字(0〜9)のシンボルが10個しかなく、すべてのメソッド呼び出しと定数にはピリオドが必要なので、11を超える出力が得られるかどうかわかりません

操作が適用されると、デフォルトで文字が整数にキャストされるようです

@OlivierGrégoireの助けを借りて+1

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

説明:

i->-~i

入力を受け取らず、1を返す整数ラムダ。パラメータが入力を受け取らない場合、整数の場合は上記のメタ投稿に従ってデフォルト値が使用されます。

2
3
4
5
6
7
8
9

リテラル整数

'P'^'Z'

10を返す2文字のXOR

11

リテラル整数

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

12文字の文字列の長さを返すラムダ式

0xD

16進数13

確認する場合は、TIOリンク


1
コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
デニス

バイト・カウント(-6文字)を短縮するために、2のように書くことができる210のように'P'^'Z'。また、これにより文字が解放され、がX+*使用されPます。
オリビエグレゴワール


このより賛成の答えはあなたに同意しません。
オリビエグレゴワール

また、このWebサイトで1年ぶりにこの「要件」を確認するのは初めてであり、このようなラムダが使用されているときに誰も私のゴルフに異議を唱えることはありません。
オリヴィエグレゴワール

6

ガイア、スコア25、203バイト

§‼
..⌉+⌉
₵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₈×
ℍḥḥ

キャラクターの制限があるため、これ以上niladsを使用できないため、これは完璧なスコアだと思います。

説明

1。 §‼

§ スペース文字です あり、ブールに強制されるため、結果は1です。

2。 ..⌉+⌉

.はのショートカットな0.5ので、これはceil(0.5+ceil(0.5))です。

3。 ₵P~~

₵P パイ、 ~はビット単位の否定です。ダブルビットごとの否定は、単に切り捨てです。

4。 4

5。 5

6。 6

7。 ∂Ql

∂Qは、曜日の名前を含むリストで、l長さです。

8。 8

9。 9

10。 ¶c

c改行のコードポイント

11。 11

12。 '¡ċ⌋u⌋

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

13。 --⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻

-は短縮形で-1減算です。したがって、これで-1 - -1 - -1...13になります。

14。 7:,Σ

プッシュ7、複製:,2つの7をリストにペアリングし、合計しΣます。

15。 Ø!))))))))))))))

Øは空の文字列であるため、1も1 Ø!です。1を)14回インクリメントします。

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。 ⟩‘

で文字列を閉じると、それはbase-250の数値リテラルになります。Gaiaのコードページのバイト値17です。

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

]リストでスタックをラップします。これを19回行いn、リストの深さを取得します。

20。 ⇑’e

で文字列を閉じると、コードページのコードポイントのリストになります。eスタックにリストをダンプします。コードページのコードポイントは20です。

21。 0(((((((((((((((((((((_

(0を21回デクリメントし、次に否定し_ます。

22。 22

23。 “B”“↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B”B

文字列“B”をbase-24から変換します。0から23の数字は↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺Bです。結果は23です。

24。 3₈×

3×8。

25。 ℍḥḥ

100が半分になり、再び半分になりました。


5

C、スコア13

これらは単なる整数定数の集まりです。

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==01と評価されます
  2. コードが2行目にあると仮定します。__LINE__= 2
  3. 整数定数
  4. 整数定数
  5. 整数定数
  6. 整数定数
  7. 整数定数
  8. 整数定数
  9. 整数定数
  10. 1+1+1...= 1*10= 10
  11. 'o'111 '.'は、印刷できないASCII 0x10を表します。111/10 = 11
  12. (2<<2)= 8、8*2= 16、16-2-2= 12
  13. ストリングの長さ"strlenstrlens"= 13

5

オーム、スコア21 22、160合計バイト

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

オンラインでお試しください!

説明

1。 ╓S@Ri

現在の日付/時刻の秒をプッシュします(╓S)。1から秒までの範囲@R)を取得し、逆()にし、最後の要素(i)を取得します。これは常に1です。

2。 ΓΓ-Γ-Γ-

Γ -1であるため、これは(-1)-(-1)-(-1)-(-1)、つまり2です。

3。 αê⌠

αêオイラーの番号(2.71828 ...)は天井です。3が結果です。

4。 ¡¡¡¡¼

¡カウンターをインクリメントし、カウンターを¼プッシュします。

5。 5

まさに文字通り。

6。 ▀lll▀l

▀lll▀は、と同等の圧縮文字列リテラル"of >ic"です。l長さがかかるため、結果は6になります。

7。 ÑÑÑÑÑÑÑÿWÿk

最初に7つの改行文字(Ñ)をプッシュし、次に空の文字列(ÿ)をプッシュします。スタックは配列(W)にラップされ、その配列内の空の文字列のインデックスが見つかります。

8。 ü`½½

üスペース文字です。`ASCII値(32)をプッシュすると、半分になります(½½)。

9。 9

まさに文字通り。

10。 ..≥°

..リテラル.文字です。これはインクリメント()され、文字列を数値として解析し、有効な数値ではないためデフォルトで0になり、1にインクリメントされます。その後、10 1°)を計算します。

11。 $$J

$ レジスタの現在の値、最初は1をプッシュします。したがって、1を2回プッシュし、スタックを結合して印刷します。

12。 3dd

3を押して2倍にします。

13。

7番目のフィボナッチ数をプッシュします。

14。 2≡≡≡Σ

2を押して3回繰り返し、スタックに7の2を残します。次に、スタックの合計(Σ)を取得します。

15。 ║F

base-220数値リテラルの区切り文字です。これは行末にあるため、終了する必要はありません。

16。

計算2 4

17。 0ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~

òビットごとの否定、~算術否定です。これらの演算子を組み合わせて、0から17回インクリメントできます。

18。 6DD++

6を押して2回複製し、6 + 6 + 6を計算します。

19。

8番目の素数をプッシュします。

20。 τ╛hτ*

10(τ)を押しh、その素因数()の最初の要素()を取得し、10を掛けます。

21。 "≤"≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤A

前のスニペットと同様に、文字列"≤"は0として解析されます。21回デクリメントしてから、絶対値を取得します。

22。 1111 11v11%L1111 11v11%L

ここでは、1111 div 11 mod 11(2)を計算し、2を出力します。その後、再度実行します。


5

PowerShell、スコア12、91バイト。14、176バイト

[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)

編集:

  • オプションとして、13の16進リテラル0xdと1を解放するための5の再配置を提案してくれたØrjanJohansenに感謝します。
  • 配列の長さを文字列の長さ、[int]から[byte]、およびハッシュテーブルを値として使用する(),""ように変更し"ZZZZZZZZZZZZZZZA".InDeXof("A")、Pondering 15をドットまたは 'e'のようなもので再利用できないようにしました。

PowerShellは、$なしで変数を実行することはできず、基本的なシンボルを使用して累乗、ビットシフト、Pi、ceil()などを実行することはできません。低構文数の生成の範囲は比較的狭い。


0まだ使用していないので、13になります0xd。sを5自由+に組み合わせて、通常の場所に置くことができ1ます。これで14に到達するはずです。文字を保存する必要がある場合、ハッシュテーブルキーは複数の文字にすることができます。また、1を合計する予備の方法がある場合は、10=を実行できます1e1
Ørjanヨハンセン

@ØrjanJohansen -良いアイデア、おかげで、彼らと私の答えを編集しました
TessellatingHeckler

別の方法で2を見つけました""-(""-(""-lt(""-""))-(""-lt(""-"")))。これ$?で合計が自由になり、1e1私が提案したことを実行できます。
Ørjanヨハンセン

t1の両方のバージョンとの衝突を待つの(""-eq"")-(""-(""-eq""))は良いと思われますq。ハッシュテーブルの方は簡単に置き換えられます。
Ørjanヨハンセン

5

TI-Basic(83シリーズ)、スコア21 22 23 24 25(1003バイト)

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

ここでチャレンジが許可するものと許可しないもののリストについては、http://tibasicdev.wikidot.com/one-byte-tokensを参照してください。

プログラムの最後の行が自動的に印刷されるため、これらはすべて完全なプログラムにすることができます。しかし(複数行の長さである17を除く)、ホーム画面のスニペットにすることもできます。

この時点では、利用可能な残りのトークンからゼロ以外の値を取得する他の方法はありません。改善が必要な場合は、最初に上記のソリューションのいくつかをより保守的にする必要があります。

説明

  • A=A変数Aはそれ自体と等しいため、ブール値1 です。
  • Bはデフォルトで0、 tan(tan(cos(cos(cos(B約2.21であり、次にフロアを取得します。
  • C!°ラジアンで1度、約0.017です。これのいくつかの肯定的な力はtanh(2)、約0.964です。暗黙の乗算を使用してそのパワーをバイナリでエンコードし、、√(そしてを取りtanh⁻¹(ます。
  • 4は簡単です
  • cosh(sinh⁻¹(X1+X2
  • 6-9は簡単です
  • ₁₀^( 10の累乗の1バイトの組み込みで、10 ^ 10 ^ 0 = 10 ^ 1 = 10です。
  • 11は11です。
  • 5.上で使用されるトリックの別のインスタンスがF nPr F1であるsin(tan⁻¹(Xように簡略化11+1/X2、1から143回使用すると1/12になります。1をこの数で割ると12です。
  • G≤G[[G≤G]...[G≤G]]1、13x1の列ベクトルです。転置とそれ自体の積をとると、行列式が得られ、その行列[[13]]式は13です。
  • not(H)は1 tanh(not(H))です。0または1に等しくない数値です。ln(XXX....X)ln(X)^⁻1XXはない(ログが存在するように)および1ではない(分割しないように提供される)最初のログのの数に単純化されます0)。
  • e^(e^(e^(F 約15.15と評価され、その後、フロアを取得します。
  • J≥Jは1ですidentity(。1x1単位行列を構築し、dim(その行と列の次元を見つけます。sum(それらを追加して2を取得します。 8を取得し、8x8行列の次元を追加して16を取得します。
  • K nCr K は、2項係数0で0または1を選択します。17の1を合計すると17になります。
  • i-i-...-i i18iに簡素化し、 abs(すると18得られます。
  • rand→Lランダムな実数をLに保存しますが、それが何であるかは気にしません。コンピューティングしていますlog(L)⁻¹log(L^19) 19に簡素化するです。
  • sinh(sinh(cos⁻¹(I4を少し超えているのでseq(III,I,I,sinh(sinh(cos⁻¹(I、リストを与えます{0 1 8 27 64}、算術平均が20でを。
  • トリックの別のインスタンスは3を取得するために使用されますπ。暗黙の乗算とを使用して、そのパワーを3進数でエンコードし³√(ます。
  • 22は22です。
  • 3と21を取得するために使用されるトリックの別のインスタンス。3乗で23に等しい3の累乗をエンコードし、3×√(立方根として(、乗算に使用します。
  • Fix 010進数の後に0桁を表示し、すべての値を整数に丸める設定です。sin⁻¹(ᴇ0π/ 2に評価され、π/ 2に7回乗算すると約23.59になり、24に丸められます。
  • 5*525です(55を取得するために使用し、そこで使用するソリューションを25に適合させることはより保守的です。しかし、この方法は多くのスペースを節約し*、暗黙の乗算が存在するためあまり有用な文字ではありません。)

Xmaxはデフォルトで10で、Ymax = 10、Ymin = Xmin = -10およびその他のデフォルト値と同じです。
リトシアスト

@lirtosiastこれらはすべて2バイトです。
ミシャラヴロフ

私は、ルールの解釈についてはよく分からないが、私はあなたがまだ(バイトではなく、トークンなどの文字を考慮して)任意のバイトを繰り返すことなく、それらのいずれかを使用することができると思う
lirtosiast

私はその解釈について漠然と懐疑的です。いずれにせよ、文字をバイトとしてカウントする場合、Xmaxは°と競合するため、Xfact = 4のようなものにする必要があります。おそらく、その中から1ポイント、2バイトのコマンドから別のポイント、TI-84のみのコマンドから3番目のポイントを取得できるでしょう。
ミシャラヴロフ

4

SOGL、スコア16 18 20、109バイト、47文字使用

=                    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整数、86バイト

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

オンラインでお試しください!(入力は、実行されるプログラムを1からNまで制御します)

説明

                       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
あなたは常に最後にドットが必要なので、Prolog:1について考えてください。

4

ゼリー、スコア22、177バイト

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

一度に全部試す一 1つずつ試す(引数は、対象となる出力されます)。

未使用の文字:

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

24のA両方に使用していますか?
デニス

@Dennis私のTIOリンクは正しかったが、私の説明は異なっていた。修正済み
fireflame241

1
そうですか。ところで22¹£€Y、メインリンクを配置すると、すべてのスニペットを一度に実行できます。tio.run/##y0rNyan8///hzjauOsc6Ry5jLt0jG3UPbTq0icuUy4zLnMuC6/…-
デニス

4

Reng、スコア40、149バイト

ここで試してみてください!

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±±±±$±$

大文字はすべて数字なので、それは素晴らしいことです。これらの2つを除くすべてがスニペットです。プログラムである2つ:

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

提供されるリンクにより、実行中にスタックを確認できます。後で説明します。


4

CJam、スコア27、168バイト

1-3: 、XYZ

変数XYおよびZ、それぞれ、1,2、及び3に初期化されます。

4: ",,,,",

文字列,,,,をプッシュし、長さを取ります。

5-9: 、 56、、789

数値リテラル。

10-20A-K

事前初期化された変数。

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

変数Uはに初期化され0ます。U22回押してインクリメントします。

22: 22

数値リテラル。

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

キャラクター;をプッシュして9回デクリメントしてから2;もう一度プッシュして8回デクリメントして取得し3ます。

24: 4m!

4の階乗を取る。

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

TT=プッシュし1ます。このコードはと同等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改行を含む文字列をプッシュします。:i文字コードのリストに変換して、を生成し[10]ます。~解凍して、を与え10ます。W-1を追加するのと同じです。10を16回インクリメントすると26になります。

27: LLLLLLLLLLLLLLLLLLLLLLLLLLL0]0#

0が27番目のインデックスにあるリストで0のインデックスを見つけます。

まだ利用可能なキャラクター: $%&*./1<>?@MOPQRSV[\^_`abcdefghjklmnopqrstuvwxyz{|}

潜在的な拡張に関するいくつかの注意:

  • 変数を他の何かに使用するために10-20を変更する必要があるかもしれません。1より大きい数値を取得する場合、使用できます*(ビット演算子も可能ですが、それらはあまり役に立たないと思います)。

  • 私はまだ私Sに何が良いことをしている。

  • 私は26を変更した場合はN{}/iW-W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-、その後、:利用できるようになります。

  • 空のリストをプッシュして、既存の変数でさらにゼロを取得できます。πを取得することもできますが、どうにかして整数にキャストできなければmm[そして)i既に採用されていない限り、それはあまり役に立ちません。

  • 配列操作に関しては、次のことができます。

    • %またはで地図を使用するf
    • 折り目を使用する *
    • いくつかの集合演算を行う
    • ベース変換(これは有望なようですが、ベース番号を取得する方法がわかりません)
    • 以下を使用して配列を作成し|ます。M1|2|3|

ご注意ください。21 U)))))))))))))))))))))を22に22すると1、後のスニペット用に無料で使用できます。
ビジネスキャット

@BusinessCatありがとう、編集。
エソランジングフルーツ

piを整数に変換するために、ベース変換が:i数字リストで暗黙的に行う(たとえば[P]1bを与える3)という事実を利用できます。
マーティンエンダー

23をもっと長くすることを気にしない場合''';、代わりに使用(してから、桁に折り返すの(に十分なものを使用できます(各桁で約65k )。それは;他の何かのために解放されますが、それがどれほど有用かはわかりません。
マーティンエンダー

@MartinEnderの使用が見られればそれを行いますが;、現時点ではできません。
エソランジングフルーツ

4

Haskell、スコア13、86バイト

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

オンラインでお試しください!

13のスコアを維持しながら、私の手紙の重複を修正する方法を見つけてくれたØrjanJohansenに感謝します。(また、この回答が削除されている間、これについて私に通知するために彼らの邪魔にならないように。)

pi/piです1.0
sum[]to 00^0to 1、およびsum[1,1]toを評価し2ます。 3する9だけで自分自身をデコードします。
length"eeeeeeeeee"文字列の長さを返し10ます。
2+2+2+2+2+2です12
0xDは16進数です13


文字が重複しています。
-xnor

@xnor指摘してくれてありがとう。今すぐ修正する必要があります。
ライコニ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.