এন-তম সংখ্যার জন্য এন টাইমস প্রোগ্রাম


10

Aইনপুট হিসাবে ধনাত্মক পূর্ণসংখ্যার অ্যারে দেওয়া , এমন একটি প্রোগ্রাম তৈরি করুন যা বারবার পুনরাবৃত্তি করার পরে অ্যারের মান (1-সূচক) মান kআউটপুট করে k

উদাহরণস্বরূপ, অ্যারেটি যদি হয় [1,11]তবে আউটপুট এমন একটি প্রোগ্রাম হওয়া উচিত যা আউটপুট হয় 1এবং যখন দুবার পুনরাবৃত্তি হয়, আউটপুট 11print(end="1");পাইথন 3 এর মতো কোড : print(end="1");1 টি print(end="1");print(end="1");প্রিন্ট করে এবং 11 টি প্রিন্ট করে

সমস্ত পরীক্ষার কেস জয় করার জন্য কোড দৈর্ঘ্যের ক্ষুদ্রতম যোগফল। আপনার মেটা কোডটি 60 এর দশকে 500 পরীক্ষার কেস সমাধান করবে এবং আপনার সমাধান কোডের প্রতিটি 10 ​​এর দশকে ফিরে আসবে। মেটা কোড এবং সমাধান কোড একই ভাষায় হওয়া উচিত নয়, তবে আপনার মেটা-প্রোগ্রাম উত্পন্ন সমস্ত সমাধান একই ভাষায় হওয়া উচিত।

প্রিটেস্ট ডেটা এবং জেনারেটরটি এখানে দেখা যায় । 7 দিন পরে জমা দেওয়ার সময় যোগফল (উদাহরণস্বরূপ 12:34 মানে 1234) এলোমেলো বীজ হতে ব্যবহার করবে এবং চূড়ান্ত পরীক্ষার কেস হিসাবে অন্য একটি পরীক্ষার কেস তৈরি করবে।


GMT + 8 এ চূড়ান্ত বীজ 7335, সুতরাং চূড়ান্ত পরীক্ষার ডেটা এখানে


1
"কে বার জন্য পুনরাবৃত্তি" মানে কি? নিউসোর্সকোড = পুনরায় উত্সকোড কে? যেমন উত্সকোড = "এবিসি", কে = 3, তারপরে নিউসোর্সকোড = "এবিসিএবিসিবিসি"?
tsh

print(end="1");2 বার পুনরাবৃত্তি হয়print(end="1");print(end="1");
l4m2

1
"কোড দৈর্ঘ্যের যোগফল" এর অর্থ কী? আমাদের কি একাধিক প্রোগ্রাম জমা দেওয়া উচিত?
tsh

আপনি এমন একটি প্রোগ্রাম জমা দিন যা 500 প্রোগ্রাম উত্পন্ন করে
l4m2

2
@ এমিগনা নো, প্রতিটি তালিকার জন্য এটি একটি একক প্রোগ্রাম উত্পন্ন করে। বলুন যে প্রোগ্রাম ঠিক আছে x। তারপরে xতালিকার প্রথম উপাদানটি দেওয়া xxউচিত , তালিকার দ্বিতীয় উপাদানটি দেওয়া xxxউচিত, তৃতীয়টি দেওয়া উচিত, ইত্যাদি।
ক্রিস

উত্তর:


4

পাইথন 3 , স্ট্যাক্স উত্পন্ন করে

এটি বিভিন্ন কৌশল ব্যবহার করে। বেশিরভাগ কৌশলগুলি কেবলমাত্র কিছু শর্তে প্রয়োগ হয় তবে একটি ফলব্যাক কৌশল রয়েছে যা সর্বদা ব্যবহারযোগ্য। শেষে, ক্ষুদ্রতম প্রার্থী প্রোগ্রামটি নির্বাচিত হয়।


from functools import reduce
from math import sqrt

symbols = " !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}"

def uncycle(arr):
    for size in range(1, len(arr)):
        if all(e == arr[i % size] for (i, e) in enumerate(arr)):
            return arr[:size]
    return arr

def constant(val):
    return "A" if val == 10 else str(val)

def shift(val):
    if not val: return ""
    return constant(abs(val)) + "+-"[val < 0]

def encode(a, offsetMode):
    result = "";
    if offsetMode:
        for i in range(len(a) - 1, 0, -1):
            a[i] -= a[i - 1]
    for i in range(len(a)):
        parts = []
        signBit = (a[i] < 0) * 2
        continuing = (offsetMode and i == len(a) - 1) * 1
        remain = abs(a[i])
        while remain > 22:
            parts.insert(0, remain % 46 * 2 + continuing);
            remain //= 46
            continuing = 1

        parts.insert(0, remain * 4 + signBit + continuing)
        result += "".join(symbols[p] for p in parts)
    
    return result

def cram(arr):
    flat = encode(arr, False)
    offset = encode(arr, True)
    return offset if len(offset) < len(flat) else flat;

def issquare(num):
    root = int(sqrt(num))
    return root * root == num

def isgeometric(arr):
    r = arr[0]
    return all(r ** (i + 1) == e for (i,e) in enumerate(arr))

def generateProgram(arr):
    candidates = []
    rotated = uncycle(arr)
    rotated = rotated[-1:] + rotated[:-1]

    deltas = [b - a for a,b in zip(arr, arr[1:])]

    # single constant strategy
    if len(arr) == 1:
        candidates.append(constant(arr[0]))

    # repeated constant
    elif len(set(arr)) == 1:
        num = arr[0]
        if num == 10: candidates.append("A")
        if num % 2 == 0: candidates.append(constant(num // 2) + "H")
        if issquare(num): candidates.append(str(int(sqrt(num))) + "J")
        candidates.append(constant(num - 1) +  "^")

    # repdigit
    if len(arr) == 2 and 10 < arr[1] == arr[0] * 11 < 100:
        candidates.append(str(arr[0]) + "p")

    # single digits
    if max(arr) < 10:
        candidates.append("".join(map(str, rotated)) + "E|X@")

    # max 10
    if max(arr) == 10 and rotated[0] != 1:
        candidates.append("".join(str(e - 1) for e in rotated) + "E|X@^")

    fns = [
        ("", lambda x: x),
        ("H", lambda x: 2 * x),
        ("^", lambda x: x + 1),
        ("J", lambda x: x * x),
        ("Hv", lambda x: 2 * x - 1),
        ("H^", lambda x: 2 * x + 1),
        ("^H", lambda x: 2 * x + 2),
        ("HJ", lambda x: 4 * x * x),
        ("JH", lambda x: 2 * x * x),
        (":T", lambda x: x * (x + 1) / 2),
        ("|F", lambda x: reduce(lambda a, b: a*b, range(1, x+1))),
        ("J^", lambda x: x * x + 1),
        ("^J", lambda x: x * x + 2 * x + 1),
    ]
    for (stax, fn) in fns:
        if all(fn(i + 1) == e for (i,e) in enumerate(arr)):
            candidates.append("|X" + stax)

    # fixed delta
    if len(set(deltas)) == 1:
        delta = deltas[0]
        start = arr[0] - delta
        if start == 0:
            candidates.append(shift(delta))
        if delta == 1:
            candidates.append("|X" + shift(start))
        elif delta == -1:
            candidates.append("|x" + shift(start))
        elif delta > 1:
            candidates.append("|X" + constant(delta) + "*" + shift(start))
        elif delta < -1:
            candidates.append("|x" + constant(-delta) + "*" + shift(start))

    # geometric series
    if isgeometric(arr):
        candidates.append(constant(arr[0]) + "*")

    # prefix
    if len(arr) == 2 and arr[1] // 10 == arr[0] < 10:
        candidates.append("." + str(arr[1]) + "|X(")

    # suffix
    if len(arr) == 2 and arr[0] % 10 == arr[1] < 10:
        candidates.append("." + "".join(map(str, arr)) + "|X)")

    # uncycled cram
    candidates.append('"' + cram(rotated) + '"!|X@')
    
    candidates.sort(key=len)
    return candidates[0]

while True:
    arr = eval(input())
    prog = generateProgram(arr)
    print(prog)

এটি অনলাইন চেষ্টা করুন!

আপডেট: বৈধকরণ প্রতিটি প্রোগ্রামের প্রতিটি গুণকে আলাদাভাবে চালিত করতে সময় সাপেক্ষ হবে। এগুলি একই সাথে চালানো সম্ভব। এটি করতে, কোডের একটি ছোট অংশ ব্যবহার করা আবশ্যক। এটি কয়েকটি জিনিসের জন্য দায়ী।

  1. অন্তর্নিহিত আউটপুট যদি কোনও হয় তবে। সাধারণত, একটি স্ট্যাক্স প্রোগ্রামের শেষে, অন্য কোনও আউটপুট না থাকলে স্ট্যাকের শীর্ষটি মুদ্রণ করা হয়। একই উত্স ফাইলে একাধিক প্রোগ্রাম চলাকালীন, এটি অবশ্যই স্পষ্টভাবে করা উচিত।

  2. উভয় স্ট্যাক সাফ করুন।

  3. নিবন্ধগুলি পুনরায় সেট করুন। এই প্রোগ্রামগুলির জন্য কেবল এক্স রেজিস্টার ব্যবহার করা হয়।

এই বয়লারপ্লেট প্রতিটি পৃথক প্রোগ্রাম কার্যকর করার পরে প্রয়োগ করা উচিত।

|d{P}{zP}?0XLd

উদাহরণস্বরূপ, ইনপুট [5,2,7,3]স্ট্যাক্স প্রোগ্রাম উত্পাদন করে 3527E|X@। চারটি গুণই একবারে পরীক্ষা করা যায়।

3527E|X@
|d{P}{zP}?0XLd

3527E|X@3527E|X@
|d{P}{zP}?0XLd

3527E|X@3527E|X@3527E|X@
|d{P}{zP}?0XLd

3527E|X@3527E|X@3527E|X@3527E|X@
|d{P}{zP}?0XLd

এটি অনলাইন চেষ্টা করুন!

এইভাবে, কিছুই বিরতি ধরে না করে একই প্রোগ্রামে সমস্ত প্রোগ্রামের সমস্ত বহুগুণ পরীক্ষা করা সম্ভব। যদি এটি 500 টি করা হয়ে থাকে তবে এটি সম্ভবত সবচেয়ে কার্যকর স্টাক্স প্রোগ্রাম হবে।


চূড়ান্ত স্কোর 7862
l4m2

4

পার্ল 5 -p , পার্ল 5 -p , ওভারহেড 19 17 13 উত্পন্ন করে

-1 ডম হেস্টিংসকে ধন্যবাদ

একটি ইনপুট জন্য স্কোর হবে length of the input + 13। স্পষ্টতই আরও বড় ইনপুটগুলির জন্য স্ব-সংক্ষেপণ প্রোগ্রাম উত্পন্ন করে উন্নত করা যেতে পারে, তবে আমি বিরক্ত করব না।

এসটিডিনের এক লাইনে কমা দ্বারা পৃথক ইনপুট অ্যারে দিন Give

#!/usr/bin/perl -p
chomp;$_="}{\$_=($_)[\$%++]"

এটি অনলাইন চেষ্টা করুন!

nকোনও ইনপুট ছাড়াই আউটপুট সংক্ষিপ্ত সময়ে চালান (যেমন / dev / নাল থেকে পুনঃনির্দেশ)

এটি ইনপুট জন্য চালানোর নমুনা উপায় 2,6,4,7এবং ফলস্বরূপ প্রোগ্রাম 4 বার পুনরাবৃত্তি:

perl -p '}{$_=(3,6,4,7)[$%++]}{$_=(3,6,4,7)[$%++]}{$_=(3,6,4,7)[$%++]}{$_=(3,6,4,7)[$%++]' < /dev/null

এটি অনলাইন চেষ্টা করুন!

যদি আপনি ফলাফল পছন্দ না করে STDIN থেকে পড়ার চেষ্টা করছেন ওভারহেড 17 দিয়ে এই সংস্করণটি ব্যবহার করুন:

#!/usr/bin/perl -p
chomp;$_="1/!say+($_)[\$-++],"

এটি অনলাইন চেষ্টা করুন!

এটি ইনপুট জন্য চালানোর নমুনা উপায় 2,6,4,7এবং ফলস্বরূপ প্রোগ্রাম 4 বার পুনরাবৃত্তি:

perl -E '1/!say+(2,6,4,7)[$-++],1/!say+(2,6,4,7)[$-++],1/!say+(2,6,4,7)[$-++],1/!say+(2,6,4,7)[$-++],'

এটি অনলাইন চেষ্টা করুন!

প্রয়োজনীয় আউটপুট মুদ্রণের পরে এই সংস্করণটি ক্র্যাশ হয়ে গেছে


আমি নিশ্চিত যে আমি বেশিরভাগ স্কোরিং পেয়েছি, তবে এই প্রোগ্রামটি কি 1 বাইট কম : s/ /,/g;$_="die say+($_)[\$-++],"?
ডম হেস্টিংস

@ ডোমহাস্টিংস প্রকৃতপক্ষে এটি করে।
টন হসপেল

চূড়ান্ত স্কোর 17106
l4m2

3

05AB1E , 05AB1E উত্পন্ন করে

¸»“"ÿ"#.g<“ƵƒçJ

এটি অনলাইন চেষ্টা করুন!

ইনপুট জন্য উত্পাদিত প্রোগ্রাম [5,17,7,13,2]হয় "5 17 7 13 2"#.g<è

[5,17,7,13,2] এর জন্য টেস্ট স্যুট

উত্পন্ন প্রোগ্রামটির দৈর্ঘ্য len(input) + 5


1
পরিষ্কার len(input)হয়ে উঠতে, পূর্ণসংখ্যার গণনা নয়, তবে স্ট্রিংয়ের দৈর্ঘ্য এগুলি ধারণ করে। আমি প্রথমে ভুল বুঝেছিলাম।
পুনরাবৃত্তি

চূড়ান্ত স্কোর 14606
l4m2

3

এপিএল (ডায়ালগ ইউনিকোড)

নামবিহীন উপসর্গ লাম্বদা। একটি প্রোগ্রামের বডি ফেরত দেয়।

 {
     1=≢⍵:⍕⍵  single element

     (2=≢⍵)∧(⍵[2]=11×⍵[1]):⍕⍵[1]  2, 22 etc.

     1=≢∪⍵:'⊢',⍕⊃⍵  all the same

     (⊢≡⊃×⍳∘≢)⍵:'+',⍕⊃⍵  linear

     ((⌊=⊢)!⍣¯1⊢⊃⍵)∧(1∧.=1↓⍵):'!',⍕!⍣¯1⊃⍵  factorial followed by all 1s

     (⍵[2]∧.=1↓⍵)∧(⍵[1]=10|2⊃⍵):(⍕⊃⍵),'⌈',(⊃⍕2⊃⍵)  b ab ab ab

     e←{∊⍉2 2'+×',⍕¨⍵}¨⍸(⊃⍵)=∘.×⍨⍳10
     b←⍵∘≡¨e(({0::⍬  ⍎⍵}¨,\)⍴∘⊂)¨⍨(≢⍵)
     ∨/b:⊃b/e

     Q←{'''',⍨⍵/⍨1+''''=⍵}
     (5∧.≤⍵)∧(≢⍕⍵)>6+(+/14=⍵)+≢⍵:'{⍺←⎕AV⍳⊃⋄1⌽⍺⊢⍵}''',Q AV[⍵]  string fallback

     (≢⍕⍵)>9+(+/5=⍵)+≢⍵:'{⍺←¯4+⎕AV⍳⊃⋄1⌽⍺⊢⍵}''',Q AV[4+⍵]  offset string fallback

     '{⍺←⊃⋄1⌽⍺⊢⍵}',⍕⍵  fallback
 }

এটি অনলাইন চেষ্টা করুন!

পদ্ধতি

এটি বিভিন্ন পদ্ধতি অন্বেষণ করে এবং সর্বশেষে সর্বজনীন প্রয়োগযোগ্য পদ্ধতিতে ফিরে আসার পরে প্রথম ব্যবহারযোগ্য একটিকে ফেরত দেয়।

একক উপাদান

তালিকার যদি একটি মাত্র উপাদান থাকে তবে তা যেমন হয় তেমন ফেরত দেওয়া হয়।

2, 22 ইত্যাদি

11 গুণ বড় সংখ্যাটি তৈরি করতে কেবল একটি একক সংখ্যা পুনরাবৃত্তি করা যেতে পারে,

একই

আমরা কেবল সর্বমোট ( ) নম্বরটি ফিরিয়ে দিই ।

রৈখিক

f (n) = k × n সিকোয়েন্স প্রথম টার্মের আগে একটি প্লাস .োকান।

ফ্যাক্টরিয়াল সমস্ত 1s এর পরে

যখন প্রথম সংখ্যা এন =! মি এবং পরবর্তী সংখ্যাগুলি 1 হয়, তখন !mসমাধান হয় কারণ !mএন হয় এবং m!m1 হয় এবং !11 হয়।

বি আব আব আব

যেহেতু সমস্ত দ্বি-সংখ্যার সংখ্যা সমস্ত একক-সংখ্যার চেয়ে বড়, একটি চলমান সর্বাধিক, যেখানে প্রথম সংখ্যার সামনের অংশটি দ্বিতীয় সংখ্যার পিছনে আঠালো থাকে, এটি একটি সমাধান।

তিন লাইন কোড

ধরণের কোনও সূত্র +a×bবৈধ কিনা তা পরীক্ষা করে দেখুন ।

স্ট্রিং ফ্যালব্যাক

5 বছরের কম বয়সী সংখ্যাগুলির দীর্ঘ সিকোয়েন্সগুলি (কারণ 4 টি একটি লাইন ব্রেক) এসবিসিএসের অক্ষর হিসাবে এনকোড করা যেতে পারে।

অফসেট স্ট্রিং ফ্যালব্যাক

যদি 5 বছরের কম বয়সী সংখ্যা থাকে তবে এগুলি এড়াতে আমরা 9 ​​দ্বারা স্থানান্তরিত করব।

পিছু হট

স্ট্রিং "{⍺←⊃⋄1⌽⍺⊢⍵}"এবং স্ট্রিংযুক্ত ( ) ইনপুটটির সরল স্ট্রিং সংক্ষিপ্তকরণ । উদাহরণস্বরূপ [3,1,4]প্রোগ্রামের মূল অংশটি ফেরত দেয় {⍺←⊃⋄1⌽⍺⊢⍵}3 1 4

ধনুর্বন্ধনী অংশটি একটি দ্বিধাবিভক্ত ফাংশন যার অর্থ এটি কোনও উপসর্গ ফাংশন বা ইনফিক্স ফাংশন হতে পারে। সুতরাং এর বামতম উদাহরণটি উপসর্গ মোডে এবং ইনফিক্স মোডে সমস্ত অন্যান্য চলবে। মোডের মধ্যে পার্থক্যটি হ'ল , বাম আর্গুমেন্টকে নির্দেশ করে কিনা এর একটি মান আছে। যদি এটি না হয় তবে এটি ফাংশনটি নির্ধারিত হবে (প্রথম)।

ফ্যালব্যাক পদ্ধতির ব্যাখ্যা

{... } নামবিহীন ল্যাম্বদা:

⍺←⊃ যদি কোন বাম যুক্তি না থাকে ( ) প্রথমে ফাংশনটি বরাদ্দ করুন

 তারপর:

এই মুহুর্তে, নীচের কোডটির অর্থ সংখ্যার তালিকা (ইনফিক্স কল) বা ফাংশন "প্রথম" (উপসর্গ কল) হয় কিনা তার উপর নির্ভর করে দুটি ভিন্ন জিনিস means

 যদি সংখ্যার একটি তালিকা হয়:

  ⍺⊢⍵ ডান যুক্তির পক্ষে বাম যুক্তিটি বাতিল করুন

  1⌽ যে এক ধাপ বাম দিকে ঘোরান

 যদি "প্রথম" ফাংশনটি হয়:

  ⊢⍵ সঠিক যুক্তি উপস্থাপন

   এর প্রথম উপাদানটি বেছে নিন

  1⌽ এটিকে এক ধাপ ঘোরান (কোনও স্কেলারের কোনও বিকল্প নেই)

ফ্যালব্যাক পদ্ধতির উদাহরণ রান

3 1 4এর কোডটি কার্যকর করা {⍺←⊃⋄1⌽⍺⊢⍵}3 1 4, "প্রথম" ফাংশনটি বরাদ্দ করে এবং এভাবে প্রথম উপাদানটি প্রদান করে; 3

এক্সিকিউট করা {⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4ডানদিকের ল্যাম্বডাকে বাম দিকটিকে 3 1 4তার বাম আর্গুমেন্ট হিসাবে "ক্যাপচার" করতে দেয় , সুতরাং একটি মান রয়েছে যা তার পক্ষে বাতিল করা হয় 3 1 4যার পরে একটি পদক্ষেপ বাম দিকে ঘোরা হয় 1 4 3এবং ফলস্বরূপ ফলন দেয় । এরপরে এটি বাম দিকের ল্যাম্বডায় একমাত্র যুক্তি হিসাবে ব্যবহৃত হয়, যেখানে "প্রথম" ফাংশন হয়ে যায়, ফলাফলটি প্রথম উপাদান হিসাবে নিয়ে আসে; 1

এক্সিকিউটিং {⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4ডানদিকের ল্যাম্বডাকে মাঝেরটিকে 3 1 4তার বাম আর্গুমেন্ট হিসাবে "ক্যাপচার" করতে দেয় যা ডান আর্গুমেন্টের পক্ষে ফেলে দেওয়া হয় 3 1 4, যা যখন এক ধাপ বাম দিকে ঘোরা হয় 1 4 3। এরপরে এটি মাঝের ল্যাম্বদার ডান যুক্তি হিসাবে একসাথে 3 1 4বাম দিকের যুক্তি হিসাবে ব্যবহৃত হয়। বাম আর্গুমেন্টটি ডান জন্য বাতিল করা হয়, যা এক ধাপে বাম ফলন ঘোরায় 4 3 1। এটি তখন বামতম বাঁদিকের একমাত্র যুক্তি হয়ে ওঠে , সুতরাং "প্রথম ফাংশন" হয়ে ওঠে, প্রথম উপাদানটি ফিরে আসে; 4

স্কোরিং

যখন সত্যিকারের ডেটা ব্যবহার করে পরীক্ষার সময় হয়ে যায়, তখন এই পরীক্ষার জোতাটি ব্যবহার করুন (প্রিটেস্ট ডেটা দিয়ে সংযুক্ত জনসংযোগ)। পরীক্ষার কেসগুলি ইনপুট ক্ষেত্রে যায় এবং আউটপুট একসাথে সমস্ত 500 টি প্রোগ্রামের মোট বাইট গণনা হবে। (এটি একটি ত্রুটিও ফেলে দেবে, তবে এটি কেবল কারণ এটি পরে ইনপুটটিকে যেমন আছে তেমনি মূল্যায়ন করার চেষ্টা করে))


1
চূড়ান্ত স্কোর 14028
l4m2

2

কাঠকয়লা

´⎚´§´⪪⪫IA ”y¦ Lυ⊞υω

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

´⎚´§´⪪

আক্ষরিক স্ট্রিং আউটপুট ⎚§⪪

⪫IA 

ইনপুট অ্যারেটিকে স্ট্রিংয়ে কাস্ট করুন, স্পেসগুলির সাথে যোগ দিন এবং মুদ্রণ করুন।

”y¦ Lυ⊞υω

আক্ষরিক স্ট্রিং আউটপুট ¦ Lυ⊞υω

উদাহরণস্বরূপ আউটপুট 5,17,7,13,2হয় ⎚§⪪5 17 7 13 2¦ Lυ⊞υωএটি অনলাইন চেষ্টা করুন! ব্যাখ্যা:

ক্যানভাস সাফ করুন, যাতে কেবল শেষ আউটপুট দৃশ্যমান হয়।

§⪪5 17 7 13 2¦ Lυ

পূর্বনির্ধারিত তালিকার দৈর্ঘ্য নিন u। পূর্ণসংখ্যাগুলির তালিকাতে সূচক করতে এটি ব্যবহার করুন যা স্পেসে বিভক্ত হয়েছে এবং নির্বাচিত উপাদানটিকে আউটপুট দেয়।

⊞υω

পূর্বনির্ধারিত তালিকায় একটি ডামি ভেরিয়েবলটি চাপুন u, যাতে পরবর্তী অনুলিপি তালিকার পরবর্তী উপাদানটি আউটপুট করে।

মোট আউটপুট দৈর্ঘ্য = (সমস্ত তালিকার সমস্ত সংখ্যার দৈর্ঘ্য) + (সমস্ত তালিকার পূর্ণসংখ্যার সংখ্যা) + (তালিকার সংখ্যা * 9) অক্ষর (এসবিসিএস)।


2

হাস্কেল , হাস্কেল উৎপন্ন করে

main = interact $ ("main=print$("++) . (++"!!)$ -1\n +1--")

এটি অনলাইন চেষ্টা করুন! প্রথম টেস্টকেসের জন্য [5,2,7,3,2,3,15,10,7,2,14,11,16,16,3,3,4,3,8,4]এটি নিম্নলিখিত প্রোগ্রাম উত্পাদন করে:

main=print$([5,2,7,3,2,3,15,10,7,2,14,11,16,16,3,3,4,3,8,4]!!)$ -1
 +1--

একবার চেষ্টা করুন , দ্বিগুণ এবং তিনগুণ । এটি উত্স দ্বিগুণ করার জন্য আমার হাস্কেল উত্তরের মতো একই পদ্ধতির ব্যবহার করে আপনি আউটপুট দ্বিগুণ করেন

প্রতিটি উত্পন্ন প্রোগ্রামের দৈর্ঘ্য হ'ল স্ট্রিং প্লাস 25 হিসাবে ইনপুট তালিকার দৈর্ঘ্য, সুতরাং বর্তমানে উপলব্ধ টেস্টক্যাসগুলির জন্য স্কোর 12266 + 500 * 25 = 24766। এটি দেখায় যে কোডের সাথে ডেটা রেশিও মূলত সমান, এবং আমি সন্দেহ করি যে এটি যথেষ্ট পরিমাণে ছোট ছোট ডিসমপশন কোড লিখতে পারে যা স্কোর হ্রাস পাবে। তালিকা হতে পারে যেখানে আরও বড়।


1

পাইথন 2 , পাইথন 2 উত্পন্ন করে

import sys
a=`input()[::-1]`.replace(' ','')
sys.stdout.write('print%s[-open(__file__,"a").tell()/%s]#'%(a,len(a)+37))

এটি অনলাইন চেষ্টা করুন!

ইনপুট জন্য

[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]

উত্পন্ন প্রোগ্রাম হয়

print[29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10][-open(__file__,"a").tell()/98]#

যা 98 বাইট।

এই সমাধান থেকে অভিযোজিত"আমি দ্বিগুণ উত্স, আপনি আউটপুট দ্বিগুণ!" ।

দামিত, আমি এই উত্তরটি লেখা শেষ করার আগে দুটি সংক্ষিপ্ত উত্তর পপ করলাম।


একটি অতিরিক্ত নিউলাইন শেষে রয়েছে, যা এটি kসময়ের জন্য আউটপুট দেয়
l4m2

প্রত্যাশিত আচরণটি "এ '\ n' অক্ষরটি শেষে লেখা হয়, যদি না মুদ্রণ বিবৃতিটি কমা দিয়ে শেষ হয়।" আমি জানি না কেন টিআইও স্টাডাউটে অতিরিক্ত নিউলাইন দেখায়।
বুবলার

"কিছু" পেছনটি সরিয়ে ফেলতে পরিবর্তন printকরা sys.stdout.writeহয়েছে।
বুদ্বুদ

চূড়ান্ত স্কোর 30606
l4m2

1

জাভা 8, পাইথন 2 উত্পন্ন করে

interface M{static void main(String[]a){int l=a[0].length();System.out.print("print"+a[0]+"[open(__file__,'a').tell()/"+(l+35+(l+"").length())+"]#");}}

এটি অনলাইনে চেষ্টা করুন।

অর্থাত [3,4,5,6,7]এই পাইথন 2 প্রোগ্রাম উত্পন্ন করে:

print[3,4,5,6,7][open(__file__,'a').tell()/48]#

অনলাইনে একবার চেষ্টা করে দেখুন ; অনলাইনে দুবার চেষ্টা করে দেখুন ; অনলাইনে তিনবার চেষ্টা করে দেখুন

জেনারেট করা পাইথন প্রোগ্রাম উপর ভিত্তি করে তৈরি @ Mr.Xcoder 's উত্তর তৃতীয়বার কবজ চ্যালেঞ্জ

ব্যাখ্যা:

জাভা 8 কোড:

interface M{                    // Class
  static void main(String[]a){  //  Mandatory main-method
    int l=a[0].length();        //   The length of the first argument
                                //   (Note that this is the length of the input as String,
                                //   not the size of the array)
    System.out.print(           //   Print:
      "print"                   //    Literal "print"
      +a[0]                     //    Appended with the argument
      +"[open(__file__,'a').tell()/"
                                //    Appended with literal "[open(__file__,'a').tell()/"
      +                         //    Appended with an integer that is formed by:
       (l                       //     Getting the length we got earlier
       +35                      //     +34 for the rest of the Python 2 code + 1
       +(l+"").length())        //     + the length of the length (<10→1; 10-99→2; etc.)
       +"]#");}}                //    Appended with literal "]#"

পাইথন 2 কোড:

print                        # Print
 [3,4,5,6,7]                 #  From this array
 [                           #   The `k`'th item,
  open(__file__,'a').tell()  #   where `k` is the length of its own source code
  /                          #   divided by
  48                         #   the length of its own source code (once) + 1
 ]#                          # With a trailing comment, so we can repeat the program

0

পার্স 5 এ বাশ, আউটপুট প্রোগ্রামগুলি

বাশ প্রোগ্রাম যেমন বলা যেতে পারে script.sh 1,2,3

পার্ল প্রোগ্রামটি -Eপতাকা সহ ডাকা উচিত ।

echo "shift@a;@a=($1)unless@a;END{say\$a[0];exec'true'}"

এর perlইনপুট জন্য উত্পন্ন কোডটি 4,7,8হ'ল:

shift@a;@a=(4,7,8)unless@a;END{say$a[0];exec'true'}

বেশ প্রাণঘাতী শক্তি। অ্যারের একটি উপাদান সরিয়ে perlদেয় ( প্রথমে অ্যারের উপস্থিতি নেই তার যত্ন নেই), এটি ইতিমধ্যে সেট না থাকলে সেট করে। এটি শেষে অ্যারের প্রথম উপাদানটি প্রতিধ্বনিত করে। ( ENDব্লকটি সর্বশেষে চালানো হয়েছে)। exec 'true'প্রোগ্রাম শোধবোধ, যাতে আরও ENDব্লক মৃত্যুদন্ড কার্যকর করা হয় না।

উদাহরণ:

#Once
$ perl -E "$(bash script.sh 4,7,8)"
4

#Duplicated twice
$ perl -E "$(bash script.sh 4,7,8)$(bash script.sh 4,7,8)"
7

#Duplicated thrice
$ perl -E "$(bash script.sh 4,7,8)$(bash script.sh 4,7,8)$(bash script.sh 4,7,8)"
8

চূড়ান্ত স্কোর 34106
l4m2

0

পাইথন 2, সি ++ উত্পন্ন করে

এটি কোনও রেকর্ডকে পরাজিত করতে যাচ্ছে না, আমি কীভাবে এটি করব তা বুঝতে পেরে আমি মূলত আগ্রহী ছিলাম :) এই সত্যটি ব্যবহার করুন যে গ্লোবাল ভেরিয়েবলগুলি মূলের আগে চালিত হয়, এবং তাই কোনও বৈশ্বিক পরিবর্তনশীল বৃদ্ধি করতে পারে তবে একটি ব্যবহার করে #ifdef নিশ্চিত করার জন্য শুধুমাত্র একবারে সংজ্ঞা দেওয়া হয়েছে।

import sys
print("""#include <stdio.h>
#ifndef A
#define A
int v;
int d[]={""" + sys.argv[1] + """};
struct C{C(){v++;}};
int main(void){ printf("%d",d[v]); }
#else
C c1;
#endif
""")

0

রুনিক এনেক্যান্টমেন্টস , রুনিক উত্পন্ন করে

74akw94/85akw
R32B~~?US' Sqq1Ky1Ky
\i<{1[lil1-{S{)]{{1KyB
D'0$'´$$' $     Rl0) ?
R"{Zs$;|1|l;|y"@
"UwR'10<|I+}"$~ /' Su0
       Rakwc4akw/

এটি অনলাইন চেষ্টা করুন!

মানগুলির স্থান-বিভাজিত তালিকা হিসাবে ইনপুট নেয়।

আউটপুট একবার করা
আউটপুট দু'বার
আউটপুট চারবার করল

অবিচ্ছিন্ন সংখ্যাসূচক পঠন মোড কমান্ডটি কাজে লাগায় যা 12 জানুয়ারীতে´ প্রতিশ্রুতিবদ্ধ হয়েছিল এবং আমি এই প্রশ্নটি 14 তারিখে পেয়েছি। এই কমান্ডটি নির্বিচারে দৈর্ঘ্যের মানগুলি এনকোড করতে দেয় কারণ এই বৈশিষ্ট্যটি ছাড়াই এটি করা খুব কঠিন হবে (যেমন , কমপক্ষে অতিরিক্ত লুপের প্রয়োজন হিসাবে এটি উপস্থাপন করা প্রয়োজন); কমান্ডটি তৈরি করার সময় আমি অবশ্যই সমস্যার সমাধান করতে চাইছিলাম ।13921X3+X9+X2+´

মূল কোড ইন, |স্ট্রিং মধ্যে "{Zs$;|1|l;|y"এবং "UwR'10<|I+}"সঙ্গে প্রতিস্থাপিত হয় \n(যা গ্রিড বসে এটি পরিবর্তন করবেন যেমন তাদের কোনো দিনই would) সঙ্গে wআচার কমান্ড: 74akw, 94/Rakw, c4akw, এবং 85akw। মূল চরিত্রগুলি আক্ষরিক অর্থে যে কোনও কিছু হতে পারে। |প্রতীকী স্থানধারক হিসাবে নির্বাচিত হয়েছিল যা আমি যা চেয়েছিলাম তা দৃশ্যত উপস্থাপন করেছে। প্রতিবিম্বিতভাবে একটি এন্ট্রি পয়েন্ট যুক্ত না করে বেশ কয়েকটি বাইট সংরক্ষণ করা হয়েছে (যদি এটিগুলি অনস্ক্রোর করা হয়) যেমন একটি লোকেশনে ইতিমধ্যে উপস্থিত (অবস্থান ) এমন একটি স্থানে wR'10<লিখেন এবং তার পরে মানা থেকে দৌড়ানোর আগে জাঙ্ক দিয়ে তার স্ট্যাকটি পূরণ করতে এগিয়ে যায় ক্রম ।R0,1U"'i34

ফলাফলের আউটপুট কোডটি wদ্বিতীয় লাইনের প্রথম অক্ষরটিকে Right পুনর্নির্দেশে পরিবর্তন করতে rite কমান্ড ব্যবহার করে কাজ করে (সুতরাং কেবলমাত্র একটি আইপি একটি মুদ্রণ বিবৃতি কার্যকর করে), লম্বা এবং লম্বা প্রোগ্রামগুলির ফলে স্ট্যাক দৈর্ঘ্যের চতুর ব্যবহারের সাথে কোন সূচকটি নির্ধারণ করে পড়তে. অন্যান্য প্রতিটি আইপি একই নির্দেশে একই অবস্থান পরিবর্তন করে এবং সমাপ্ত হয়। অন্য সব কিছুই অব্যবহৃত হয়।

ফাঁসি কার্যকর

চিত্রটি পুরানো, তবে প্রবাহের ব্যাখ্যার জন্য যথেষ্ট।

প্রতিটি সম্পাদন 1Iyআইপি-র বৃহত্তর এবং বৃহত্তর স্ট্যাক ( lকমান্ড দ্বারা সৃষ্ট ) হ্যান্ডেল করার ক্ষমতা বজায় রাখে , যার আকারটি প্রোগ্রামটিকে বেস উত্স কোডের কপিগুলি কতগুলি তা নির্ধারণ করতে দেয় to চূড়ান্তটি 1সঠিক lসংখ্যায় পৌঁছানোর জন্য স্ট্যাকটি (পরবর্তী সময়ে তৈরি) ঘোরানোর সময় প্রয়োজনীয় সংখ্যার আগেরটি বৃদ্ধির জন্য ব্যবহৃত হয়। Zকমান্ড এই মান negates যাতে সঠিক দিক স্ট্যাক ঘোরে।

আসল ইনপুট অ্যারেটি তখন অবিচ্ছিন্ন পঠন মোড ব্যবহার করে এনকোড করা হয়, একই মানকে ক্রমবর্ধমানভাবে সংশোধন করা, মূল ইনপুটগুলি পড়তে এড়াতে 0 দিয়ে প্রাথমিকভাবে করা হয়। অবিচ্ছিন্ন পঠন মোডে প্রস্থান করতে এবং পরবর্তী 0 টি আবার স্ট্যাকটিকে প্রাইম করার অনুমতি দেওয়ার জন্য স্পেস এনওপি প্রয়োজন।

স্কোর প্রায় সমান উচিত 3+v.toString().length, প্রতিটি অ্যারের এন্ট্রির জন্য v, +23প্রতিটি অ্যারের জন্য। প্রায়শই (2.55*total length of input)বা 33837নমুনা ইনপুটটির জন্য, যদি আমি জিনিসগুলি সঠিকভাবে করি।

sকমান্ড সংক্রান্ত একই বিল্ডে পার্শ্ব প্রতিক্রিয়াগুলির কারণে আমার প্রত্যাশিত চূড়ান্ত প্রোগ্রামে নাবালিক পরিবর্তনগুলি প্রবর্তিত হয়েছিল , তবে একই সাথে এটি আরও ভাল স্কোরের ফলস্বরূপ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.