ダブルタイムはダブルタイムではありません


36

この課題に基づいています。

リズムゲームでオス!、難易度修飾子「Double-time」は実際に速度を50%だけ増加させます。

あなたの仕事は、正の偶数(0より大きい)を出力するプログラムを作成することです。ソースコード内の各バイト/文字(選択したもの)が複製されると、1.5倍した数を出力します。

たとえば、ソースコードがABC6を出力する場合、AABBCC9を出力する必要があります。

元のチャレンジのルールに従う:

ルール

  • 完全なプログラムを作成する必要があります。
  • 初期ソースは少なくとも1バイトの長さが必要です。
  • 両方の整数は基数10でなければなりません(他の基数または科学表記法で出力することは禁止されています)。
  • プログラムは入力を受け付けてはなりません(または、未使用の空の入力を持たせてはなりません)。
  • 整数を末尾/先頭のスペースで出力できます。
  • ソースのコピー間で改行を使用することはできません。
  • これはなので、各言語で最も少ないバイト勝ちます!
  • デフォルトの抜け穴が適用されます。

これは元の課題よりもささいなことではないと思いますが、創造的でユニークな答えが見つかることを願っています!


@Fatalize write a program that outputs a positive even integerはい、できます。すべての偶数全体の整数をもたらすために1.5を掛けすることができます
Skidsdev

私には馬鹿みたいだ。
エリックアウトゴルファー

@EriktheOutgolfer非常に似ていますが、これはもっと難しいものになると確信しています(明らかな何かを見逃さない限り)。
TheLethalCoder

9
文字を複製すると、些細な言語が実行不能になる場合があります。単一文字のコマンドスタイルや式ベースの言語ではない解決策があるのだろうか。
キーガン

3
@TheLethalCoderおそらく最大の障害はfull programです。複製されたプログラムがまだ有効なエントリポイント/機能を持っていると想像するのは困難です。
キーガン

回答:


22

パイロン7 5 4バイト

TIOでランダムな言語を選択し、それを使用しました

46vt

説明:

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

46    # Stack is [4, 6]

v     # Reverse the stack [6, 4]

t     # take top of stack 4

倍増:

4466   # Stack is [4, 4, 6, 6]

vv     # Reverse the stack twice so it's the same [4, 4, 6, 6]

tt     # take top of stack 6 and again which is 6 again

officialaimmのおかげで2バイト節約

Veedracのおかげで1バイト 節約


1
ねえ、4/6vt...のようにうまく機能
officialaimm

18
私は心をこめてランダムTIO言語を選ぶと挑戦のためにそれを学習の戦略を承認
Skidsdev

@officialaimmあなたは正しい、ありがとう。
LiefdeWen

1
4/6 <-4を何も割らない-> 4; そして、6。44 // 66 <-4を4で割った-> 1。何も何も分けない->何もない。そして6と6。よくやった。
V.クルトワ

1
46vt同じことをしませんか?
Veedrac

21

ゼリー、2バイト

!‘

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

説明:

!‘ Implicit 0
!  Factorial
 ‘ Increment

倍増バージョン:

!!‘‘

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

説明:

!!‘‘ Implicit 0
!    Factorial
 !   Factorial
  ‘  Increment
   ‘ Increment

3回目を行うと、3-> 4ではなく3-> 4から始まりますか?
tuskiomi

@tuskiomiいいえ、そうすることは期待されていません。
エリックアウトゴルファー

14

LibreOffice Calc、8バイト

=A2+3
19

名前を付けて保存し*.csv、LibreOffice Calcで開きます。A1で22を取得します。


それらを倍増:

==AA22++33

1199

A1で33を取得します


1
賢い言語選択!
ジュゼッペ

11

MATL、3バイト

TnQ

オンラインでお試しください!またはバージョンを倍増

説明

MATLでは、スカラー値(数値、文字、論理値)は、その値を含む1×1配列と同じです。

通常版:

T    % Push true
n    % Number of elements of true: gives 1
Q    % Add 1: gives 2

倍増バージョン:

TT   % Push [true, true]
n    % Number of elements of [true, true]: gives 2
n    % Number of elements of 2: gives 1
Q    % Add 1: gives 2
Q    % Add 1: gives 3

7
答えをTnQ ...:D [私たちは時々 、お礼のための短い形式としてtnqを使用する]
officialaimm

8
@officialaimm :)[ n配列から最初の要素を取得するためにそれを使用することがあります...]
ルイスメンドー

10

vim、5

i1<esc>X<C-a>

倍増なし:

i1<esc>  insert the literal text "1"
X        delete backwards - a no-op, since there's only one character
<C-a>    increment, giving 2

倍増:

ii11<esc>   insert the literal text "i11"
<esc>       escape in normal mode does nothing
XX          since the cursor is on the last character, delete "i1"
<C-a><C-a>  increment twice, giving 3

10

この答えが有効かどうかわからない。誰かがここからアイデアを得るかもしれない場合に備えて、ここに投稿してください。

-pフラグ付きのNode.js、7バイト

ことでアレックス・ヴァルガ

3/3*22

33//33**2222

-pフラグ付きNode.js、11バイト

古いもの:

3*2*0/1+22

33**22**00//11++2222

出力22および33。


どうやって33をするのですか?TIOはそれができないようです。それは00にロック
V.クルトワ

1
方法:
3/3

@AlexVargaとても甘い。
tsh

@ V.Courtois厳密モードを使用しています
-tsh

1
@EdmundReedは-p式の値を出力するフラグが必要です
-tsh

10

Python 2 REPL、11バイト

(3/1)*(2/1)

これは単に3 * 2 = 6と評価されます。複製された

((33//11))**((22//11))

3 ** 2、つまり3の2の累乗、または9に評価されます。


サイトへようこそ。このpythonは出力を生成しないため、有効な答えではありません。ただし、回答をPython REPLに変更すると、出力が生成されるため、有効な回答になります。この回答を削除するか、言語をpython 2からpython 2 replに変更する必要があります。
小麦ウィザード

@WheatWizardありがとう、そして助けてくれてありがとう!私はこれを正しくしましたか?
カールシルトクラウト

8

APL、7バイト

⊃⍕⌊3×⍟2

印刷し2ます。

⊃⊃⍕⍕⌊⌊33××⍟⍟22

印刷し3ます。

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

ワーアート?

シングル:

3×⍟2         → 2.079441542  ⍝  3 * ln 2
⌊2.079441542 → 2            ⍝  floor
⊃⍕           → '2'          ⍝  format and take first character

ダブル:

⍟⍟22          → 1.128508398  ⍝  ln ln 22
×1.128508398  → 1            ⍝ signum
33×1          → 33           ⍝  33 * 1
⌊⌊33          → 33           ⍝  floor
⊃⊃⍕⍕          → '3'          ⍝  format and take first character

コメントを縦に並べてください。それとも、別の設定があるのでしょうか、それともこのようなループを引き起こしているのでしょうか?
ケビンCruijssen

@KevinCruijssenそれはあなたのブラウザのフォントだと思いますが、ブラウザはとにかくAPLを等幅としてレンダリングしません。その鉱山prntscr.com/fwp0l0
Uriel

ああ、それはそれでも読みやすくて、素晴らしい答えです。:)
ケビンクルイッセン

私にとってはモノスペースとしてレンダリングされます。おそらくフォント(prnt.sc/fwrnz1)に依存しているだけでしょう。しかし、コメントは間違いなく揃っていません:P
therealfarfetched

@therealfarfetchdのおかげで、私は最後の3行を更新しました
ウリエル


5

CJam、4バイト

],))

通常どおりお試しください!

倍にしてみてください!

説明

通常:

]     e# Wrap the stack in an array: []
 ,    e# Get its length: 0
  ))  e# Increment twice: 2

ダブル:

]         e# Wrap the stack in an array: []
 ]        e# Wrap the stack in an array: [[]]
  ,       e# Get its length: 1
   ,      e# Get the range from 0 to n-1: [0]
    )     e# Pull out its last element: 0
     )))  e# Increment 3 times: 3

過負荷は
扱い

AB],動作します。
geokavel


4

ニーム、2バイト

𝐓>

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

説明:

𝐓> Implicit 0
𝐓  Factorial
 > Increment

倍増バージョン:

𝐓𝐓>>

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

𝐓𝐓>> Implicit 0
𝐓    Factorial
 𝐓   Factorial
  >  Increment
   > Increment

5つの答えのうち4つ...あなたは本当にこの1つでそれを行っています!
TheLethalCoder

5
@TheLethalCoder少なくともまだ15ではありません。;)
アウトゴルファーのエリック


3

R、11バイト

8*(!0)+1*!1

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

!は否定であり、**べき乗(のエイリアス^)です。数値はブール値に変換されます:0to FALSE、他のすべてはto TRUE。ブール値を整数に変換されます:FALSE0TRUE1、そう!0==1!1==0!!00==0!!11==1

8×1+1×0=8880+111=12


1
私はちょうどに頼って解決策を考え出すしようとしていた***、あなたはそれに私を打ち負かします!
ジュゼッペ

@Giuseppe私は自分のソリューションが最適であるとは確信していません(周りに括弧が必要なの!0は面倒です)。そこでの短いものになるかもしれない-*、私は...まだ、そのような解決策を見つけていない
ロビン・ライダー

2

キュービックス、6バイト

O.1)W@

プリント 2ます。

  O
. 1 ) W
  @

を押し1)増分し、W左にジャンプしOて出力し2@プログラムを終了します。

2倍になったのは明らかOO..11))WW@@に、キューブ上の次のとおりです。

    O O
    . .
1 1 ) ) W W @ @
. . . . . . . .
    . .
    . .

12回プッシュし、2回)インクリメントし、W再び左にジャンプします。これにより、右側のO北方向に配置され、が出力され3、次のコマンドで@プログラムが終了します。

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

オンラインで倍増!


2

クライン8 6バイト

/3+@4\

シングルダブル

説明

シングルの場合、プログラムは非常に単純なパスに従います。最初のミラーはそれを2番目のミラーに偏向し、2番目のミラーは4はプログラムの最後までます。

doubleはもう少し複雑です。ここにあります:

//33++@@44\\

最初の2つのミラーは同じように機能しますが、IPを最初に偏向する二重化のために新しいミラーがあり、最初のミラーの複製によってキャッチされ、最後に向かって偏向されます。実行されるのは、33++6と評価されるものだけです。


2

TI-Basic、3バイト

シングル:

int(√(8

最後の式は暗黙的にTI-Basicで返される/印刷されるため、 2

倍増:

int(int(√(√(88

返品/印刷3

TI-Basicはトークン化された言語です。int(√(、および8メモリ内の各1バイトです。


技術的には、チャレンジスペックには各キャラクターが2倍になったことが明示されていますが、これを許可し、スペックを更新します
Skidsdev

2

Ruby REPL、8バイト

";3#";22

REPLは最後に評価された値のみを出力します:22

倍増:

"";;33##"";;22

今回33は最後に評価された値です。文字列は再び破棄され、a #はコメントを開始します。


2

> <>、19 8バイト

32b*!{n;

プリントは22
オンラインそれをお試しください!

説明:

32b   push literals onto the stack: [3,2,11]
*     multiply the top two values: [3,22]
!     skip the next instruction
{     (skipped)
n     pop and print the top value from the stack (22)
;     end execution

倍増:

3322bb**!!{{nn;;

プリントは33
オンラインそれをお試しください!

説明:

3322bb push literals onto the stack: [3,3,2,2,11,11]
**     multiply top values (twice): [3,3,2,242]
!      skip next instruction
!      (skipped)
{{     rotate the stack to the left (twice): [2,242,3,3]
nn     pop and print the top two values from the stack (33)
;      end execution

古いバージョン:
通常:

11+!vn;
    n
    ;

プリントは2
オンラインそれをお試しください!

説明:

1    push 1 on the stack: [1]
 1    push 1 on the stack: [1,1]
  +    add top two values of the stack: [2]
   !    skip the next instruction
    v    (skipped)
     n    print the top value of the stack (2)
      ;    end execution

倍増:

1111++!!vvnn;;
        nn
        ;;

プリントは3
オンラインそれをお試しください!

説明:

1111    push four 1's on the stack: [1,1,1,1]
    +    add top two values of the stack: [1,1,2]
     +    add top two values of the stack: [1,3]
      !    skip the next instruction
       !    (skipped)
        v    change direction of execution (down)
         n    print the top value of the stack (3)
          ;    end execution


5
改行も複製することになっていると思います。
エリックアウトゴルファー

@EriktheOutgolferもう改行はありません。
KSmarts

1

Zsh、14バイト

<:|echo 22
3
:

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

このように複製されたソースコードで何かを印刷するために、ゴルフ以外の言語で完全なプログラムを取得するのは困難です。ファイルとheredocsは暗黙的にに渡されるため、Zshはこれに非常に役立ちますcat。両方の場合の最初の行を見てみましょう。

<:|echo 22            # Give the file : on stdin to cat. cat pipes to 'echo 22', which ignores stdin
<<::||eecchhoo  2222  # Start heredoc on following lines with EOF string '::', pass to cat.
                      # Since cat exits 0, 'eecchhoo 2222' is not executed

3プログラムでない限り、最初のプログラムはのみを印刷します22。2番目のプログラムは33、余分な改行で囲まれて印刷されます(重複のため)。


場合3機能/プログラム/別名で、この18バイトのソリューションは、まだ動作します!

<:|echo 22\\c\
3
:

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

最後\は行の継続であるため、改行は破棄され、事実上echoステートメントが作成され echo '22\c3'ます。これ\cにより、エコーはその後印刷を停止します22(これにより、改行も抑制されます)。


1

Perl 6、14バイト

'|d 3#';say 22

オンラインでお試しください! 倍にしてみてください!

これは、便利な名前のデバッグ関数ddを使用して、倍増したプログラムをSTDERRに出力します。ロジックを分離するために、二重化されたプログラムを引用符で囲み、二重化されたときに互いにキャンセル#し、無効になった通常のプログラムをコメントアウトするコメント文字を付けます。




弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.