রোলিং কুইন ডাইস


19

এমন একটি প্রোগ্রাম তৈরি করুন যা নিজেই আউটপুট হয়।

যাইহোক, যদি উত্স কোডটি এন বার পুনরাবৃত্তি করা হয় (যার অর্থ সোর্স কোডের একটি অনুলিপিটি এন -1 বার শেষ হওয়া উচিত ) তবে মূল উত্স কোড আউটপুট করার 1 / n সম্ভাবনা থাকতে হবে, আউটপুট আউট করার সম্ভাবনা 1 / n উত্স কোডটি দু'বার পুনরাবৃত্তি হয়েছে, উত্স কোডটি আউটপুট দেওয়ার 1 / n সম্ভাবনাটি তিনবার পুনরাবৃত্তি করা হয়েছে ..., এবং উত্স কোড এন বার আউটপুট দেওয়ার 1 / n সম্ভাবনা।

উদাহরণস্বরূপ, যদি আপনার প্রোগ্রামটি হয় foobarতবে তা সর্বদা সঠিকভাবে আউটপুট করা উচিত foobar। যাইহোক, যদি আপনি চালাতে foobarfoobarfoobarfoobar, তাহলে সেখানে outputting প্রতিটি একটি ¼ সুযোগ থাকা উচিত foobar, foobarfoobar, foobarfoobarfoobarএবং foobarfoobarfoobarfoobar

  • প্রতিটি সম্ভাব্য আউটপুট বিতরণ সমান হতে হবে
  • মানক I / O পদ্ধতি প্রয়োগ এবং স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ করা ছাড়াও, মানক কোইন বিধিগুলি প্রয়োগ হয় (নিজস্ব উত্স অ্যাক্সেস করতে পারে না ইত্যাদি)
  • এটি কোড গল্ফ তাই বাইট জিতে সংক্ষিপ্ত উত্তর

সিউডোরডম কি যথেষ্ট ভাল?
wastl

1
@ ওয়াস্টল ইয়েপ, ঠিক আছে
জেমেগস্ট

2
আপনার সংজ্ঞাটি কিছুটা বন্ধ। যদি আপনি এটি 1 বার পুনরায় foobarfoobarfoobar
পুনঃনির্ধারণ

1
@Veskah foobarfoobarহয় foobarএকবার না দুই বার, পুনরাবৃত্তি।
নিট

@ নীট আপনি উত্স দিয়ে শুরু। আপনি যদি এটি আবার ব্যবহার করেন তবে আপনি এটি একবারে পুনরাবৃত্তি করেছেন তবে দুটি উদাহরণ রয়েছে।
ভেসকাঃ

উত্তর:



9

জেলি , 24 22 বাইট

“Ṿ;ẋŻɼLX¤¤µ”Ṿ;ẋŻɼLX¤¤µ

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

এটি এক্স 4 চেষ্টা করুন!

“Ṿ;ẋŻɼLX¤¤µ”Ṿ;ẋŻɼLX¤¤µ
“Ṿ;ẋŻɼLX¤¤µ”              String literal: Ṿ;ẋŻɼLX¤¤µ
            Ṿ             Uneval. Return “Ṿ;ẋŻɼLX¤¤µ” (with quotes)
             ;            Append the initial string. Yields the source code. 
                ɼ         Apply the preceding link to the register and store the 
                          result in the register.
               Ż          Prepend 0. 
                          Each time Żɼ is used when the source code is repeated
                          the register's length increases by one. 
                          We can't use ‘ because it closes string literals.
                 L        Length. Returns the number of times the source code has
                          been repeated up till now.
                  X       Random element. If ɼ results in n, X returns a random 
                          integer between 1 and n.
                   ¤      Combines ŻɼLX as a nilad. 
              ẋ           Repeat the source code a random number of times between
                          1 and n.
                    ¤     Close everything from the initial string literal as a
                          nilad. 
                     µ    Start a new monadic chain. The register gets updated
                          once for time the code is repeated but only the final
                          repetition will result in output.

5

05 এ বি 1 ই , 32 বাইট

"34çìDJ¼32ôн¾L×Ω"34çìDJ¼32ôн¾L×Ω

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

ব্যাখ্যা

"34çìDJ¼32ôн¾L×Ω"                   # push this string
                 34ç                # push a "-character
                    ì               # prepend it to the string
                     DJ             # duplicate and join the copy to the string
                       ¼            # increment the counter
                        32ô         # split the string into pieces of size 32
                           н        # take the first one
                            ¾L×     # repeat it for each in [1 ... counter]
                               Ω    # pick one at random

সুযোগ পেলে আপনি কি একটি ব্যাখ্যা যুক্ত করতে পারেন?
শেগি

@ শেগি: আমাকে স্মরণ করিয়ে দেওয়ার জন্য ধন্যবাদ :)
এমিগানা 25'18

2

গোল> <> , 21 বাইট

:QoaonC|P\Sx*F2ssS"
0

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

ব্যাখ্যা:

:Q     |     If the top of stack is 0, skip to next |
             Top of stack is implicitly 0
        P    Increment top of stack
         \   Redirect pointer down]
0:QoaonC|P\Sx*F2ssS"  Increment for each copy of the source code
0:QoaonC|P\Sx*F2ssS"


         \   Redirect back to the right
          Sx*  Multiply the number of copies of the source code by a random number between 0 and 1
             F      Repeat that many times
              2ss   Push a double quote
                 S" Print the source code minus the quote, newline and 0
 :Q       If top of stack is not 0
   oaonC  Print the quote, a newline and a 0 to complete the source code and continue the loop
        \Sx*   Error on the * for some reason

1

এলিস , 35 বাইট

"d3a*h-&;adddd12h&}Uh*t&w.odt,k@
 !

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

ব্যাখ্যা

"

2 ডি ভাষায় অনেকগুলি কুইনের মতো, এটি শুরু হয় "যা নিজের কাছে আবৃত হয় এবং নিজেই বাদে পুরো প্রথম লাইনটিকে ধাক্কা "দেয়।

d3a*h-&;

উত্স কোডের এক বা একাধিক অতিরিক্ত অনুলিপি যুক্ত করা স্ট্রিং আক্ষরিক শেষে কিছু অন্তর্নিহিত স্পেস স্থাপন করবে। এটিকে প্রকৃতপক্ষে একটি কুইন তৈরি করতে আমরা স্ট্যাকটি 31 টি অক্ষরে ছাঁটা করি।

addd

একটি নতুন লাইন চাপুন, তারপরে স্ট্যাকের উচ্চতাটি তিনবার। স্ট্যাকের উচ্চতার হিসাবে চাপানো মানগুলি 32 (দ্বিতীয় লাইনের স্থান), 33 ( !দ্বিতীয় লাইনের মধ্যে) এবং 34 (প্রাথমিক ") are

d

মূল উত্স কোডের দৈর্ঘ্য হিসাবে এবার স্ট্যাকের উচ্চতাটিকে আবার চাপ দিন (35)।

1

1 এ একটি কাউন্টার শুরু করুন এটি উত্স কোডটির পুনরাবৃত্তির সংখ্যা গণনা করবে।

2h&}

ডানদিকে তিন বার ঘুরিয়ে (অর্থাত্ বাম দিকে ঘুরুন)। উত্স কোডের প্রতিটি অতিরিক্ত পুনরাবৃত্তি hএটির মতো একই কলামে একটি অবদান রাখবে }, এইভাবে কাউন্টারটিকে বাড়িয়ে তুলবে । যখন আইপি ফিরে আসে }, একই দিকে চালিয়ে যেতে আবার ডানদিকে ঘুরুন।

Uh

0 থেকে এন -1 পর্যন্ত অভিন্ন র্যান্ডম নম্বর নিন, তারপরে মূল উত্স আউটপুট দেওয়ার সময় সংখ্যা পেতে 1 যুক্ত করুন।

*t&w

পূর্বে ধাকানো স্ট্যাকের উচ্চতা (কোডের দৈর্ঘ্য) দ্বারা গুণ করুন, তারপরে নিম্নলিখিত বারটি পুনরাবৃত্ত ঠিকানাটি বহু বার বিয়োগ করে একবার চাপিয়ে দিন repeat

.o

এটিকে বিনষ্ট না করে স্ট্যাকের শীর্ষস্থান আউটপুট করুন।

dt,

নীচে স্ট্যাক এন্ট্রি শীর্ষে সরান।

k@

পুনরাবৃত্তি করুন, তারপরে লুপটি শেষ হওয়ার পরে শেষ করুন।


1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 62 বাইট

(f=a=>b=>b?f(a+.5):`(f=${f})(1)`.repeat(1+Math.random()*a))(1)

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


1
হয় আমি খুব দুর্ভাগ্য, অথবা এটি মূল উত্স কোডের দুটি অনুলিপি মুদ্রণ করতে পারে না।
নাইট্রডন

@ নাইট্রডন ধন্যবাদ, স্থির
l4m2

1

কাঠকয়লা , 58 বাইট

≔´θ´⎚´×´⊕´‽´L´⊞´O´υ´ω´⁺´⪫´⁺´´´≔´θ´´´´´θθ⎚×⊕‽L⊞Oυω⁺⪫⁺´≔θ´´θ

এটি অনলাইন চেষ্টা করুন! ভার্ভোজের কোনও সংস্করণ নেই কারণ বর্তমানে ডের্বোবোসিফায়ার চোক করে "´"। বেশিরভাগই গল্ফ থেকে চারকোলের কুইনের উপর ভিত্তি করে আপনি দুর্দান্ত ভালোর জন্য একটি কুইন! । ব্যাখ্যা:

≔´θ´⎚´×´⊕´‽´L´⊞´O´υ´ω´⁺´⪫´⁺´´´≔´θ´´´´´θθ

আক্ষরিক স্ট্রিং ধার্য θ⎚×⊕‽L⊞Oυω⁺⪫⁺´≔θ´´θকরতে θ

পূর্ববর্তী কোনও আউটপুট সাফ করুন, যাতে কেবল শেষ আউটপুট কার্যকর হয়।

×⊕‽L⊞Oυω

পূর্বনির্ধারিত অ্যারে খালি স্ট্রিং পুশ করুন। এটি অ্যারে দৈর্ঘ্যটিকে এখনও পর্যন্ত প্রক্রিয়া করা পুনরাবৃত্তির সংখ্যার সমান করে তোলে, সুতরাং এর দৈর্ঘ্যটি ধরুন, একটি এলোমেলো সংখ্যার অন্তর্নিহিত একচেটিয়া পরিসীমাটি নিন, 1 যুক্ত করুন এবং নিম্নলিখিত স্ট্রিংটিকে বহুবার পুনরাবৃত্তি করুন।

⁺⪫⁺´≔θ´´θ

আক্ষরিক স্ট্রিং শুরুতে যোগ করার θ, তারপর সন্নিবেশ আক্ষরিক ´গুলি প্রতিটি অক্ষর মধ্যে, তারপর আরেকটি কপি প্রত্যয় θ

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