長さのn倍を印刷するプログラムを生成する


16

非負の整数を指定するnと、ソリューションは、選択した言語でプログラムを出力する必要があります。その出力にはn、出力されるプログラムのバイト数の倍のバイトがあります。

ルール

  • ソリューションが出力するプログラムの言語とエンコードを指定する必要があります。また、ソリューションへの異なる入力に対して異なる言語またはエンコードを選択することはできません。出力プログラムの言語は、ソリューションの言語と同じ場合と異なる場合があります。
  • あなたの提出はあなたの言語の範囲内の整数を処理する必要があるだけですが、この規則を乱用しないでください。

これはので、バイト単位での最短の提出が勝ちです。

n4 と仮定します。その後f_8、私のソリューションは、(想像上の)言語で出力するプログラムを出力しますj3 1s+/2]!mz。プログラム出力の長さは3で、出力の長さは3 * 4 = 12なので、入力4の解は正しいです。

代わりに、それnが1で、私のプログラムが出力すると仮定しますffffpfpffp(10バイト)。ffffpfpffp選択した言語のプログラムは、10 * 1 = 10バイトの出力を生成する必要があります。


現時点では、これはかなり不十分です。例を挙げていただけますか?
DJMcMayhem

3
たちが何をすべきかを知っていると思いますが、仕様を読むたびに確信が持てなくなります。出力されたプログラムのn倍のバイト数のテキストを出力すると、テキストとプログラムを出力する必要があることを暗示しているようです。文字セットと言語は、すべての整数で一貫している必要があります。これはどの「文字セット」を参照していますか?
デニス

気にないで、私は実際に誤解をしたので、答えの1つを除いてすべてをしました。
デニス

1
@Dennisタイトルが本文と矛盾しているように見えるのは助けにはなりません。チャレンジを正しく理解していれば、おそらくその長さのn倍を出力するプログラムを出力する方が良いタイトルになります(わかりません)
Sisyphus

1
私たちは取ることができn、文字列として?
シャギー

回答:


7

JavaScript(ES6)、38バイト

n=>`(x="${n}")=>(x+1/7+1e9).repeat(x)`

デモ



3

brainfuck、348バイト

--[>+<++++++]>>--[>+<++++++]>++[-<+>]----[>+<----]>---[-<+>]----[>+<----]>-[-<+>]-[>+<---]>++++++[-<+>]-[>+<---]>++++++++[-<+>]--[>+<++++++]>+++[-<+>]<[<],[->.<]>>>>>.<<<.>>.<<<.>>>.<<<.>>>.<<<.>>...>>>.<<....<<.>>>.<<..<<.>>>..<<.......>>>>.<<<..<<.>.....>>>.<<.>>.>>.<<<<<.>>>>.<<.<<.>>.>.<<<.>>.<<<.>>...<<.>>>..>>.<<.>.<<<.>.<<.>>>.>>.<<<..>>>.

オンラインでお試しください!または、Ungolfedバージョン(つまり、私が作業しなければならなかったもの)を参照してください


免責事項

私はこれを人間が可能だと思ったよりも多くの時間を費やしました。彼女にこれをやらせてくれた彼女に感謝したい。私の救世主と同様に。

それはどのように機能しますか?

全く分からない。

どのように機能しますか?

すべての出力には、すべて同じコードの末尾スニペットがあります。

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

という3つの部分に分けてみましょう a,b,c

a : [->+>+>+<<<]>>>>               THE DUPLICATOR
b : -[<<+>>-------]<<+-----        THE ADJUSTER
c : [<[.-]>->[->+<<<+>>]>[-<+>]<<] THE PRINTER

入力iは単項で単に前面に追加されます。

iabc

(たとえば、入力が10の場合、i = '++++++++++'

Duplicator- 入力を、入力m, nと同等の2つの同一の数値に分割します

アジャスター - nプログラムの長さと等しくなるように調整します

プリンター -ASCII m*n文字を印刷します


例の入力は、newlineASCII値10であるため、入力はであることに注意してください10。あなたが他の小さな数字をテストしたい場合は、交換してください,しかし、多くは+、あなたが望むの。




1

Python 3- > HQ9 +、11バイト

'Q'.__mul__

しなければならなかった

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


HQはどこでテストできますか?
タイタス

1
まあ、Q独自のソースコードを印刷するだけです。あなたはここでそれをテストすることができます:hq9plus.alwaysdata.netを。これは深刻なエントリーすることになっていませんでした
michi7x7

これは機能しません。私が入力した1場合、あなたは出力しQ、次に出力しますQQには長さ1がありますが、コードには長さがあります11
NoOneIsHere

@NoOneIsHere「出力には、出力されたプログラムのn倍のバイトがあります。」(提出されたプログラムではない)
michi7x7

1
@NoOneIsHereこれはしていません:almnet.de/esolang/hq9plus.php(言語仕様は唯一の「ソースコードファイルのテキスト全体を印刷します」と述べ)
michi7x7

1

Java 8、175 174バイト

interface M{static void main(String[]a){System.out.printf("interface M{static void main(String[]a){int i=(88+%s)*%s;for(;i-->0;System.out.print(0));}}",a[0].length(),a[0]);}}

例:

n=1出力

interface M{static void main(String[]a){int i=(88+1)*1;for(;i-->0;System.out.print(0));}}

(長さ= 89)89個のゼロを出力します

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

n=10出力

interface M{static void main(String[]a){int i=(88+2)*10;for(;i-->0;System.out.print(0));}}

(長さ= 90)900個のゼロを出力します

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

n=100出力

interface M{static void main(String[]a){int i=(88+3)*100;for(;i-->0;System.out.print(0));}}

(長さ= 91)9100個のゼロを出力します

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

説明:

interface M{                                // Class:
  static void main(String[]a){              //  Mandatory main method
    System.out.printf("interface M{static void main(String[]a){
                                            //   Print a new program with:
      int i=(88+%s)*%s;                     //    Integer containing (88*A)+B
      for(;i-->0;System.out.print(0));}}",  //    And print that many zeroes
        a[0].length(),                      //     Where A is the length of the number
                                            //     (0-9 = 1; 10-99 = 2; 100-999 = 3; etc.)
        a[0]);}}                            //     and B is the number itself

0

RProgN 27つの 5バイト

«•.* 

末尾スペースを使用

説明した

«•.* 
«    # Yield a function from the remaining string.
 •.  # Append a space and stringify, which builds the original program (Because stringifying a function removes noops, which spaces are)
   * # Repeat the implicit input times.

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


0

CJam、8 13バイト

q_,S\" 8+*S*"

オンラインで試す

生成されたプログラムはスペースを出力するので、わかりにくいです。


これは、テキストを正しく出力するプログラムの出力に関する部分を解釈する唯一の答えだと思いますが、入力に複数の数字がある場合、比率はオフになります。
デニス

ああ、そうだ、、、
geokavel


0

Python→TECO、20バイト

答えはPythonにあり、生成されたコードはTECOにあります。Pythonは、nVV12345\VV繰り返される関数です。TECOの説明については、こちらをご覧ください。

'VV12345\VV'.__mul__

0

PHP、47 + 1バイト

<?="<?=str_pad(_,",strlen($argn)+18,"*$argn);";

1つのアンダースコアの後にスペースを続けて出力します。;で
パイプとして実行 またはで-F出力プログラムを実行します。-f-F

これは、64桁を超える入力では失敗しますが、
これはPHP_INT_MAX(現時点では)はるかに高くなっています。

しかし、入力がPHP_INT_MAX-18を超えると失敗します...まだ資格がありますか?


@HyperNeutrino:これは、PHP_INT_MAX-18を超える入力では失敗します。それは失格ですか?
タイタス


0

PHP→Python 2、40 + 1バイト

print "A"*<?=13+strlen($argn),"*",$argn;

繰り返しAs を出力するPythonプログラムを出力します。でパイプとして実行し-Fます。


0

バッチ→木炭、22バイト

これらはバイトであるため、どのエンコーディングを使用すべきかわかりません。Windows-1252として解釈されるバイトは次のとおりです。

@set/p=Á%1ñªÉñ«Ìñ¹<nul

PC-850と同じバイト:

@set/p=┴%1±¬╔±½╠±╣<nul

チャコールのコードページの同じバイト:

@set/p=A%1θ×Iθ⁺Lθ⁹<nul

結果のCharcoalプログラムはPlus(Length(Cast(n)), 9)バイト長です:

A       Assign
 %1      (String representation of n)
   θ      To variable q
        Implicitly print a number of `-`s equal to:
×        Product of:
 Iθ       Cast of q to integer
 ⁺        Sum of:
  Lθ       Length of q
  ⁹        Integer constant 9


0

JavaScript(ES8)、43 41 39バイト

n=>`f=_=>"".padEnd(${n}*(88+f).length)`

試して

生成された関数の出力は、*このスニペットでsに置き換えられるスペースの文字列です。

g=
n=>`f=_=>"".padEnd(${n}*(88+f).length)`

o.innerText=(h=n=>`Function: ${x=g(n)}\nLength:   ${x.length}\nOutput:   "${x=eval(x)().replace(/./g,"*")}"\nLength:   `+x.length)(i.value=10);oninput=_=>o.innerText=h(+i.value)
<input id=i type=number><pre id=o>


0

R、46バイト

function(n)sprintf("cat(rep('a',%d*23),'')",n)

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

文字列を返す無名関数

cat(rep('a',n*23),'')

これは23回印刷されますaaその後にスペースが続きます)n''そうしないcatと最後のスペース文字が印刷されないので、私はそれが必要でした。


0

C、94バイト

main(int c,char**a){if(c>1){c=atoi(a[1]);if(c>0&&c<0xFFFFFF){c*=94;while(c--)printf("r");}}}

これは、標準Cが書き込むべきだと言う最後の\ nを含む94バイトになります。(プログラムの長さ)*(プログラムの引数)として 'r'文字として返す

C:\>nameProg.exe 1
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

0

MATLAB(63バイト)

a=@(n)['repmat(''a'',1,',num2str(n*(15+numel(num2str(n)))),')']

例えば:

>> a(5)

ans =

repmat('a',1,80)

そして:

>> repmat('a',1,80)

ans =

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