スコアを出力してください!


54

チャレンジ:

コンセプトは非常に単純です:独自のコードゴルフスコアを出力する完全なプログラムを作成してください!

出力は、プログラムのバイトカウントと末尾の bytes

しかし、待機 ..... 1つの制限があります。

  • ソースコードにバイトカウントの数字を含めることはできません
  • あなたのスコアがあるのであれば186 bytes、あなたのプログラムは、文字を含めることはできません16または8

出力例:

315 bytes
27 Bytes
49 BYTES

追加のルール:

  • 不要な文字、スペース、改行はソースコードで禁止されていますが、出力では末尾のスペースと改行は完全に許容されます
  • 数字とbytes出力の間には1つのスペースが必要です。
  • 大文字と小文字は区別されません
  • 自己点検やソースコードの読み取りは不要
  • 標準的な抜け穴は禁止されています

  • これはなので、

バイト単位の最短コードが勝ちです!


6
これにはquineタグが必要ですか、それともコードは自己検査できますか?
アダム

3
@Dat、与えられた単語の書式設定bytes:私は意図はカウントが、それはテキストの印刷に要するバイト含めるべきであるということである疑いがあるbytes
ジェフ・シャラー

2
出力の先頭のスペースは許容されますか?
rafa11111

3
コードの長さが1バイトの場合、出力する必要があります1 bytes1 byte?(影響を受けるとは思わないが、すでに41の回答があることに留意してください)
エリックアウトゴルファー

1
@JoKingルールの大文字と小文字の区別はしませんでしたが、大文字を使用してスコアを下げると、どういうことか考えてみたいと思います。私はそれのために行くと言います!
X1M4L

回答:


41

JavaScript、19バイト

Octalは、2つの目的を果たすために発明されました。

  • Linuxでのファイル許可の設定
  • この挑戦に答える

alert(023+' bytes')

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


これは完全なプログラムとしてカウントされますか?
ericw31415

1
ericw31415 @これは、ブラウザプログラムこのメタ答えで定義されています
アーナウルド

5
+1 8進数が完全に役に立たない理由を最終的に私に明らかにしたので!
sergiol

34

Perl 5、16バイト

取得する方法は他にもたくさんあります16が、これは私の方法です

say afpbytes^PPP

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


1
これはどのように作動しますか?
coinheringaahing caird

9
彼らは文字通りのように見えるとそうでない葛藤をキーワードであれば、あなたが文字列の引用符を残すことができますPerlで@cairdcoinheringaahing(とあまり推奨されていませんが、我々はゴルフに気にしない)、バイナリ演算子を& | ^して~も適用することができます文字列とそれらの作業ASCII値のリストのような(と場合にだけ、両方の側面が文字列です)。用|^shorte文字列がで拡張されたかのように動作します\0。それは、所望の出力にXOR、という文字の組み合わせを見つけるための簡単な運動です後
トンHospel

26

7、23文字、9つのバイト

54340045141332401057403

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

これは完全に数字で構成される言語ではかなり難しい課題ですが、私はそれを管理しました…

これは、7のエンコードでわずか9バイトです。(厳密に言えば、8バイト(最後の2つの末尾の1ビットを省略することができるため23×⅜−¼)ですが、初めてバイト数に切り上げるというPPCGの要件は、実際には利点です。余分な末尾の1ビットが必要であるため、質問によって禁止されていません。)

00000000: b1c0 2530 b6a0 22f8 1f                   ..%0.."..

このプログラムを7で作成する主な課題は、10バイト未満でゴルフすることでした(使用せずに7を作成する01、かなり難しいです)。これは、標準の「Hello world」プログラムと同じ構造を使用します。

5434004514133240105 7 403
5434004514133240105コマンド0〜5はリテラルをデータ空間に追加します
                   7      データ領域の新しいセクションを開始します
                    403データスペースに追加された別のリテラル
                         {暗黙:コマンドとして最後のセクションを評価する}
                    4は6の間の空のセクションで1番目と2番目のセクションを交換
                         し、1番目のセクション3の   出力を作成するコマンドを再構築します
                       (+気にしない他のいくつかの効果)

つまり、データスペースの2つのセクションを作成することから始めます。2つのリテラルがあり、それぞれがそこに一連のコマンドをプッシュします。2番目のセクション(スタックスタイルでプッシュされるため、最初のプッシュ=最後のポップ)はコマンドのかなり任意のシーケンスですが、コマンドシーケンスを使用してプッシュされます5434004514133240105(したがって、データシーケンスを生成します5434664574733246765。テキストで7を議論するとき、通常は通常のフォントを使用しますリテラルをプッシュするコマンドの場合、対応する結果のリテラルの場合は太字になります)。最初のセクションは、コマンドシーケンスを使用してプッシュされ403、を生成し463ます。次に、最初のセクションがプログラムにコピーされます(7の暗黙の動作)。

463今だけのプッシュリテラルことがすぐに何かを(太字)コマンドではなく、(非ボールド)コマンドで構成されています。4セクションを再配置して、「文字列リテラル」を最初のセクションに入れます。次に0、7が最もよく知られている操作を実行します。データ空間のセクションを取得し、それを作成した可能性が最も高いコマンドシーケンスを再構築します。元のコマンドシーケンスがすべて0-の5場合、これは100%正確です(当然のことながら、これらのコマンドは純粋にデータをプッシュするため、実行したことの明白な証拠が残るため)5434004514133240105。元のシーケンスを取得します。最後に、3それを印刷します。

したがって、ここで確認する残りの部分は、文字列のエンコードです。これには独自のドメイン固有言語があります。

5434004514133240105
5                    change encoding: 6 bits per character
 43                  select character set: digits and common symbols
   40                '9'
     04              space
       51            select character set: uppercase letters
         4133240105  'B' 'Y' 'T' 'E' 'S'

(「数字と共通記号」文字セットには「選択文字セット:小文字」はありません。最初に別の文字セットを経由する必要があります。したがって、効果的な10 -バイト制限。)


15

Canvas、8 バイト

8 bytes+

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

より興味深い20バイトのソリューション:

bytecount.innerText#

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


3
OK、それかなり賢いです。
アダム

制限の1つは「ソースコードにバイトカウントの数字を含めることはできない」であることに注意してください。この場合、最初の解決策は無効です=)
Cyclonecode

1
@Cyclonecodeただし、「8」には通常のASCII 8はありません。このUnicodeバージョンのコードでは全角8文字ですが、実際には8xとはまったく関係のないバイト0xD5です
dzaima




6

スタックス、5 バイト

╗↑╞ô╝

実行してデバッグする

開梱すると、このように見えます。パックソースモードは、この種の些細で面白くないものにします。

5p     print 5 with no line break
`5l@   print the compressed string " bytes"

パックソースモードを使用したくない場合は6^p`5l@、7バイトで動作します。


1
パックモードを使用することは、バイトを節約する賢い方法ではあるが、最悪の場合は不正行為(そうではない)であり、せいぜい創造的でないと感じるからです。Staxの制限付きソースのすべての回答を下票で送るのではなく、このような下票をすべて残して、同様の回答をすべてカバーします。
19:34にコイナーリンガーアーイング

1
私は確かにそれが創造的でないことに同意します。しかし、私は欠点はrestricted-source言語ではなく、の概念にあると思います。これは、実際には"5 bytes"Stax を使用して作成する最も直接的な方法です。
再帰的

私はチャレンジに問題があることに同意します(そのため私はなぜそれをダウン票したのです)が、私はまだこの答えを嫌っています。ただし、それを削除しないでください(先制的な注意)、何も問題はありません。
coinheringaahing caird

6

R、16バイト

cat(4*4,"bytes")

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


スペースが足りないので17歳ではありませんか?
PmanAce

@PmanAce「出力は、プログラムのバイト数と末尾のみであるべきbytesです」。プログラムは16バイトです。
ジュゼッペ

catデフォルトでは、入力間にスペースが追加されます。
ジュゼッペ

object.size正しい形式で出力します(bytesデフォルトで含まれます)。迷惑なことに、私が見つけることができる最短は17:object.size(0)-39です。TIO
ロビンライダー

1
どうやら、Hadleyのバージョンでは、長さ1のベクトルの長さは48であるため、この16バイトコードが機能するRのバージョンが存在する必要がありますobject.size(0)/3
ロビンライダー





5

PHP + HTML、16バイト

16 bytes

はい、これは抜け穴の悪用にかなり近づいていますが、投稿する必要があると感じました。そして、PHPの使用は、この答えは技術的に意味されたチューリング完全なプログラミング言語で書かれました。もちろん、他の同様のHTMLテンプレート言語も同様に機能します。

ライブデモ(PHPなし):

16 bytes


それに私を打つ!そしてその ; 通常は省略できます!
-wedstrom

ああ、しかしそれは14/15バイトになるでしょう
-wedstrom




4

オクターブ、23バイト

printf('%i bytes',9+14)

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

この:

disp(['','67$f}xiw'-4])

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


最初の答えは問題ないようですが、... 2番目の答えはどのように機能しますか?オブジェクト指向
rafa11111

2
@ rafa11111 4(からのASCIIコード)'67$f}xiw'を引くと、のASCIIコードが得られます'23 bytes'。次に、空の文字列と連結すると、'' ASCIIコードが文字に変換されます
ルイスメンドー

2
@Luis Mendoかなり賢い!明確にしてくれてありがとう!
rafa11111

4

Petit Computer BASIC、11バイト

?9+2,"bytes

printステートメントでコンマを使用すると、カーソルが現在のタブサイズの次の倍数に移動します。SmileBASICでは、これはデフォルトで4であるため、これは出力11 bytes(2スペース)しますが、PTC BASICは代わりに3を使用したため、出力は正しい間隔になります。


4

APL(Dyalog Unicode)、12バイト

暗黙的にSTDOUTに出力される完全なプログラム。

'bytes',⍨3×4

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

,⍨ は、乗算の結果に文字列を追加します。混合タイプのデータのAPLのデフォルト表示では、数字と後続のテキストの間にスペースが挿入されます。


私は間違っているかもしれませんが、バイト数とプログラムに2がありませんか?3 * 4でも問題ありません
fyrepenguin

@fyrepenguinへえ、もちろんそうです。なんてばかげている。
アダム

4

Brain-Flak、100バイト

((((((<>))))))(((()[[]]((((()()((((([][]){}){}())[()]))[[][]])()){})()[][]))[()()[]])[]){({}<>)<>}<>

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

bytesすべてのキャップでパーツを出力します。Brain-Flakに精通している人((<>))は、最初は本当に混乱しているかもしれませんが、安心してください。スタックの高さnilad([])を乱用しているだけです0



4

空白、112バイト

まだ誰もやっていないから

   			    
	
 	   
   	 	  		
   	   	 	
   	 	 	  
   	 		  	
   	    	 
   	     

  
	
   
 
	  

 


   




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

大文字には短いバイナリASCIIコードがあるため、大文字で「BYTES」を出力します。プログラム内のコマンドは、私自身の目に見える表記法で構成されていますが、

Push 112
PrintNum
Push 0
Push 0x53
Push 0x45
Push 0x54
Push 0x59
Push 0x42
Push 0x20
Label _
PrintChr
Dup
JumpZ S
Jump _
Label S
End

ああ、すでにホワイトスペースの答えがあることに気づかなかった。ここに短いもの(104バイト)がある。。もう一度削除します。これは、強調表示と説明を追加した場合と同じです。
ケビンクルーイッセン

ああ、うーん。テキストは短いので、ループを実装すると、PrintCharを繰り返すだけでなく実際に痛いものになります。(そして、私は知っている、私はいつでも最終的なNNNを落とすことができる、しかし私は本当にエラーがないことを本当に好きだ。)
aschepler

4

Java 5または6、44バイト(フルプログラム)

enum A{A;{System.out.print(0x2C+" bytes");}}

Java 5/6は古いため、TIOリンクはありません。Java5/6では、必須のmain-methodの代わりにコード付きのenumを使用することが可能で、プログラム全体の課題に対して短くなりました。

またjava.lang.NoSuchMethodError: main\nException in thread "main"、STDOUTへの印刷後のSTDERRでのエラーは、メタに従って問題ありません(ただし、チャレンジがSTDERRへの追加エラーを許可しない場合はSystem.exit(0);、エラーを防ぐために8進数を更新する必要があります)。

@OlivierGrégoire(および彼の関連するJavaのヒント)によって提案されました。

Java 8以降、74バイト(フルプログラム)

interface M{static void main(String[]a){System.out.print(0112+" bytes");}}

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

Java 8以降、16 15バイト(ラムダ関数)

v->0xF+" bytes"

@OliverGégoireのおかげで-1バイト。

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


2
技術的には完全なプログラムではありません:)
OOBalance

@OOBalanceおっと..どういうわけか過去を読んで、修正してくれてありがとう。そこに行く私のスコア.. XD
ケビンCruijssen

1
37*2が含まれている7ため、無効です。ただし、代替ソリューションは問題ありません。
OOBalance

1
v->0xE+"bytes"またはv->0xF+" bytes"。テストはできませんが、とにかく動作するはずです。スコアと「バイト」を分離する必要があるということは何もありません。
オリビエグレゴワール

1
@OlivierGrégoire私は知っている、知っている。;)私が完全なプログラムを投稿したとき、私はあなたのtip-answerについて考える列挙としてそれを答えることを疑っていました。まだサポートしているオンラインコンパイラを知っていますか?私は...私の答えのためのテストコードとのリンクを持っていることを好む
ケビンCruijssen


4

Applescript、15バイト

はい、行きます。

9+6&”bytes”

1
しかしYour source code can not include any of the digits from your byte count
...-nicael

@nicael Dang、あなたは正しい。1秒後...
ドニエル

間違っているが、マルチバイト文字(正しく覚えていればUnicodeで3バイト)ではない場合は修正してください。これは11バイト以上ですか?
コメアリンガーアーイング

@cairdcoinheringaahing ...シュート。あなたは正しい-「2バイトで、これを15に増やします。
DonielF

これはまだ11を印刷しませんか?
破壊可能なレモン



3

バッチ、32バイト

@@echo %COMSPEC:~-10,-010% bytes

COMSPEC通常は%WINDIR%\system32\cmd.exe、末尾から10〜8文字の部分文字列を抽出します。古い16バイトの自己参照バージョン:

@echo %~z0 bytes

幸いなことに、バイト数は10の倍数ではありませんでした。


@manatwork OK、私はそれを見ていませんでした、ここに新しいバージョンがあります。
ニール

3

JavaScript、16 15バイト

x=>0xf+' bytes'

_=>5*3+' bytes'
ニール

コードとバイト数の両方が含まれてい@Neil 5その場合には...
ケビンCruijssen

@KevinCruijssen Bah、私はそれを見過ごしていたとは信じられません。
ニール

完全なプログラムであるためには、「独自のコードゴルフスコアを出力するための完全なプログラム作成してください!」
Kritixiリソス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.