# 8 দিনের র‌্যান্ডম গল্ফ: একটি অসীম তালিকা পরিবর্তন করুন


23

সিরিজ সম্পর্কে

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

হোল 8: একটি অসীম তালিকা পরিবর্তন করুন

আপনার এমন একটি ফাংশন বা প্রোগ্রাম লিখতে হবে যা ইনপুট হিসাবে অসীম তালিকাকে নিয়ে যায় এবং সেই তালিকার একটি পরিবর্তিত সংস্করণ দেয়।

অসীম I / O সম্পর্কে

এই চ্যালেঞ্জটির জন্য আপনি ইনপুট নিতে এবং আউটপুট উত্পাদন করতে পারেন এমন বেশ কয়েকটি উপায় রয়েছে:

  • আপনি হয় ইতিবাচক পূর্ণসংখ্যার একটি তালিকা, বা এর একটি স্ট্রিং উপস্থাপনা, বা একটি স্ট্রিং বা মুদ্রণযোগ্য ASCII অক্ষরের তালিকা (0x20 থেকে 0x7E, অন্তর্ভুক্ত) নিতে পারেন। আউটপুট ফর্ম্যাট অবশ্যই ইনপুট বিন্যাসের সাথে মেলে। আপনি যে বিকল্পটি চয়ন করেন তা বিবেচনা না করেই আমি এখন থেকে ডেটাটিকে "তালিকা" হিসাবে উল্লেখ করব।
  • আপনি অসীম স্ট্যান্ডার্ড ইনপুট স্ট্রিম থেকে তালিকাটি পড়তে পারেন এবং অসীম মানক আউটপুট স্ট্রিমে অবিচ্ছিন্নভাবে আউটপুট লিখতে পারেন। সমাধানটি আউটপুট স্ট্রিমটি নিয়মিতভাবে লিখিত এবং ফ্লাশ হয় তা নিশ্চিত করার জন্য কোনও নির্দিষ্ট মান বা মানগুলির ক্রমের উপর নির্ভর করতে হবে না (উদাহরণস্বরূপ আপনি যখনই 5ইনপুট তালিকায় থাকবেন তখন কেবল আউটপুট লিখতে পারবেন না )। অবশ্যই, আপনি যদি কোনও তালিকার একটি স্ট্রিং উপস্থাপনা পড়ে থাকেন তবে তালিকা বিভাজকের মুখোমুখি হওয়া পর্যন্ত অপেক্ষা করা ভাল fine
  • যে ভাষাগুলি তাদের সমর্থন করে, আপনি একটি ফাংশন লিখতে পারেন যা একটি অলস অসীম তালিকা বা স্ট্রিং গ্রহণ করে এবং ফেরত দেয়।
  • তাদের সমর্থন করে এমন ভাষায় আপনি একটি অসীম জেনারেটর প্রয়োগ করতে পারেন যা অন্য জেনারেটরটিকে ইনপুট হিসাবে গ্রহণ করে।
  • বিকল্পভাবে, আপনি কোনও ফাংশন লিখতে পারেন যা কোনও আর্গুমেন্ট নেয় না এবং প্রতিবার যখন বলা হয় তখন একটি আউটপুট মান দেয়। এই ক্ষেত্রে, আপনি ধরে নিতে পারেন যে কোনও ফাংশন সংজ্ঞায়িত করা হয়েছে যা কোনও আর্গুমেন্ট নেয় না এবং প্রতিবার যখন বলা হয় পরবর্তী ইনপুট মানটি প্রদান করে। আপনি ফাংশনটির নাম নির্দ্বিধায় চয়ন করতে পারেন।

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

এলোমেলোতা সম্পর্কে

অসীম ইনপুটটির অবস্থান i তে যে কোনও মান v পড়তে হবে তার জন্য অবশ্যই অসীম আউটপুটটির i-9 থেকে i + 9 পজিশনের কোনওটিতেই শেষ হওয়ার ইতিবাচক সম্ভাবনা থাকতে হবে (যদি না যে অবস্থানটি নেতিবাচক না হয়) )। এই সম্ভাবনাগুলি বিভিন্ন আউটপুট পজিশনের জন্য বা এমনকি বিভিন্ন ইনপুট পজিশনের জন্য এক হতে হবে না। এটি ঠিক আছে যদি আপনার সমাধানটি আরও দূরের অবস্থানগুলিতে মানগুলি পরিবর্তন করতে পারে।

অতএব, এটি প্রয়োজনীয় নয় যে আপনার সমাধানটি প্রথম মানটির খুব নীচে তালিকার নীচে পরিবর্তন করতে পারে, বা এটি খুব দেরী মানটিকে প্রথম অবস্থানে নিয়ে যেতে পারে, যদিও এটি ঠিক আছে, যতক্ষণ না সমস্ত অবস্থান থেকে 9 পদক্ষেপ রয়েছে as ইনপুট সম্ভব।

উদাহরণস্বরূপ, আপনি যদি ইনপুট হিসাবে নিম্নলিখিত স্ট্রিংটি নেন, তবে আউটপুটটিতে অবশ্যই শেষ হতে হবে এমন ___সমস্ত অবস্থান নির্দেশ করে X:

                  ___________________
 abcdefghijklmnopqrstuvwxyzXabcdefghijklmnopqrstuvwxyz...

যদি আপনার ভাষায় অন্তর্নির্মিত এলোমেলো সংখ্যা জেনারেটরের অভাব হয় বা আপনি এটি ব্যবহার করতে না চান তবে আপনি ইনপুট হিসাবে অতিরিক্ত বীজের মূল্য নিতে পারেন এবং বীজটি ব্যবহার করে আপনার নিজস্ব উপযুক্ত আরএনজি প্রয়োগ করতে পারেন । এই পৃষ্ঠাটি এটির জন্য সহায়ক হতে পারে।

আপনার সমাধান প্রকৃত বিতরণে নির্বিশেষে, এটি অবশ্যই অবশ্যই সীমাবদ্ধ (তবে স্বেচ্ছাচারিত) সময়ের পরে পরবর্তী মানটি তৈরি করে।

আপনার বাস্তবায়ন কীভাবে এই প্রয়োজনীয়তাগুলি পূরণ করে সে সম্পর্কে একটি সংক্ষিপ্ত বিবরণ অন্তর্ভুক্ত করুন।

স্কোরিং

এটি , তাই সংক্ষিপ্ততম বৈধ উত্তর - বাইটগুলিতে মাপা - জয় w

লিডারবোর্ড

সিরিজের প্রথম পোস্টটি লিডারবোর্ড উত্পন্ন করে।

আপনার উত্তরগুলি প্রদর্শিত হবে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে প্রতিটি উত্তর শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

(ভাষাটি বর্তমানে দেখানো হয়নি, তবে স্নিপেটের প্রয়োজন এবং এটি বিশ্লেষণ করতে পারে এবং ভবিষ্যতে আমি একটি উপ-ভাষা লিডারবোর্ড যুক্ত করতে পারি))


2
আমরা কি অনুমান করতে পারি অসীম সময় / স্মৃতি উপলব্ধ?
মেগো

ভাষাটিতে যদি এলোমেলো নম্বর জেনারেটর নামে কিছু থাকে তবে আমাদের কী এটি ব্যবহার করার দরকার আছে?
ফেয়ারসুম

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

@ ফেয়ারসাম আমার সম্ভবত একটি স্বনির্মিত এলোমেলো সংখ্যা জেনারেটরের প্রয়োজনীয়তাটি আরও কিছুটা স্পষ্টভাবে উল্লেখ করা উচিত, তবে বেশিরভাগ ক্ষেত্রে আপনি নিজের বিল্ট-ইন আরএনজির চেয়ে সংক্ষিপ্ততর রূপায়ণ বাস্তবায়ন করতে পারবেন না?
মার্টিন এন্ডার

@ ফেয়ারসাম আমি সেই অংশটি কিছুটা স্পষ্ট করে দিয়েছি এবং এলোমেলোতার জন্য আমাদের স্ট্যান্ডার্ড সংজ্ঞাটির সাথে লিঙ্ক করেছি।
মার্টিন ইন্ডার

উত্তর:


13

পাইথন 3 , 78 বাইট

from random import*
l=[]
while[shuffle(l)]:l[9:]and print(l.pop());l+=input(),

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

STDIN (প্রতি লাইনে এক) থেকে ইনপুট নেয়, STDOUT- এ প্রিন্ট করে।

l10 টি উপাদান পর্যন্ত একটি বাফার রাখে । বাফার প্রতিটি পদক্ষেপে পরিবর্তন করা হয়। যখন এর দৈর্ঘ্য 10 হয়, শেষ উপাদানটি মুদ্রিত হয় এবং সরানো হয়।

যদি কোনও উপাদান wasোকানোর সাথে সাথে এটি মুদ্রিত হতে থাকে, তবে এটি বাফারে অপেক্ষা করা 9 অন্যান্য উপাদানগুলির আগে এড়িয়ে গেছে, সুতরাং এটি 9 টি স্পট বামে প্রদর্শিত হবে। কোনও উপাদান বাফারে নির্বিচারে দীর্ঘ অপেক্ষা করতে পারে, সুতরাং এর অবস্থানটি যে কোনও পরিমাণে ডানদিকে সরিয়ে নিতে পারে।

কোনও তালিকা থেকে এলোমেলো উপাদান উত্পাদন এবং অপসারণ করার দুর্দান্ত উপায় বলে মনে হয় না। বদলে যাওয়া ওভারকিলের মতো মনে হচ্ছে। এটি ব্যবহার করতে 2 বাইট বেশি দীর্ঘ l.pop(randint(0,9))(যা ব্যবহার করে যে তালিকার 10 টি উপাদান রয়েছে)।

from random import*
l=[]
while 1:l+=input(),;l[9:]and print(l.pop(randint(0,9)))

তা কি পাওয়ার কোনো ভালো x=choice(l);l.remove(x)সঙ্গে .A ভাষা poprandomমত

poprandom = lambda l:l.pop(randrange(len(l)))

খুব পরিষ্কারভাবে করতে পারে

from random import*
l=[]
while 1:l+=input(),;l[9:]and print(poprandom(l))

9

বেফুঞ্জ ( quirkster গন্ধ ), 4 বাইট

?,?~

,স্ট্রিম থেকে একটি অক্ষর পড়ে এবং স্ট্যাকের দিকে ঠেলা দেয়। ~স্ট্যাক থেকে শীর্ষ অক্ষর পপ করে (উপস্থিত থাকলে) এবং এটি মুদ্রণ করে। ?পরবর্তী কমান্ডটি কার্যকর করা হবে তা এলোমেলো করে। সুতরাং এখানে অ্যালগরিদমটি হ'ল "অসীম লুপে, সমান সম্ভাবনার সাথে হয় একটি চরিত্রকে চাপ দিন বা একটি চরিত্রকে পপ করুন।" আমি মনে করি এটি প্রয়োজনীয়তাগুলি পূরণ করে: একটি চরিত্রটি স্ট্যাকের মধ্যে এটির উপরে অনেকগুলি চরিত্র নির্বিচারে দেখতে পাবে, তাই এটি নির্বিচারে ডানদিকে চলে যেতে পারে, এবং স্ট্যাকটি নির্বিচারে বড় হলে এটি মুদ্রণ করা যায়, সুতরাং এটি নির্বিচারে দূরে সরে যেতে পারে বাম.


5
স্ট্যাকটি খালি থাকলে এই আউটপুটটি নাল বাইট করে না?
ফেয়ারসাম

আমি যে বাস্তবায়নটি সংযুক্ত করেছি তা কার্যকর করে না; আমি বেফুঞ্জের দ্বারা এটি সম্মতি জানাতে চাই spec
হিস্টোক্র্যাট

2
মজার, ব্রাউজারটি নাল বাইট খায়। এটি এর পুটচর ("\ 0") প্রয়োগের কথা বলে, তবে এফএফ এটি HTML থেকে >> document.getElementById("output").innerHTML = "a\0b" >> document.getElementById("output").innerHTML "ab"
শুদ্ধ করে

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

4

সি (জিসিসি) , 94 বাইট

L;i;f(s){srand(s);int B[9]={0};for(L=0;;)L>9&&putchar(B[i=rand()%10]),B[L>9?i:L++]=getchar();}

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

ঠিক আছে, একটি টিআইও লিঙ্কটি বেশি অর্থবোধ করে না। পরীক্ষার স্বাচ্ছন্দ্যের জন্য, আমি নিম্নলিখিত সি প্রোগ্রাম তৈরি করেছি যা এলোমেলো অক্ষর আউটপুট, বা একটি স্ট্রিং অসীম পুনরাবৃত্তি করবে।

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(int argc, char** argv){
    srand(time(NULL));
    if(argc < 1) {
        for(;;){
            printf("%c", rand() % 95 + 32);
        }
    } else {
        char* s = argv[1];
        int i = 0;
        for(;;){
            if(s[i] == 0)
                i = 0;
            printf("%c", s[i++]);
        }
    }
}

এই প্রোগ্রাম হিসাবে উল্লেখ করা হবে iro

প্রোগ্রামের সঠিকতা

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


3

সিলোস , 149 বাইট

b=1
lbla
x=15+b*15
b=1
lblb
readIO
queue 0 i
x-1
if x b
a=0
lblx
x=rand*2
queuePop 0
if x X
printInt m
a+1
b=15-a
if b x
GOTO a
lblX
queue 0 m
GOTO x

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

মূলত এটি আর্গুমেন্টের মাধ্যমে অনলাইন ইন্টারপ্রেটারে ইনপুট গ্রহণ করে রাখে, তবে অফলাইন অফিসিয়াল দোভাষীর সাহায্যে এটি আপনাকে একবারে (30 প্রথম ব্লক) 15 টি ব্লকের কনসোলে (অসীম) টাইপ করতে দেয়।

এটি ইনপুটটিকে অস্থায়ী কাতারে লোড করে এবং ভাগ্যবান 15 বাছাই করে (এলোমেলোভাবে, তবে সম্ভাব্যতা বা বিতরণের ক্ষেত্রে সমানভাবে বিতরিত হয় না)।

বাকিগুলি নতুন ইনপুটগুলি সারি পূরণ করার কারণে রয়ে গেছে, প্রথম ইনপুটটি শেষ পর্যন্ত পুরোপুরি বদলে যেতে পারে, (মূলত আমি মনে করি অক্ষরগুলি একটি সাধারণ বিতরণ অনুসরণ করে)। এটি লক্ষণীয় যে এই প্রোগ্রামটি পাইথনের চেয়ে দ্বিগুণ এবং সম্ভবত জাভার চেয়ে "গল্ফিয়ার" is


ফলাফলগুলি আরও ভালভাবে দেখতে আমার কাছে একটি অ-সঙ্গতিপূর্ণ সংস্করণ রয়েছে যা স্ট্রিং হিসাবে ইনপুট নেয় (তবে এটি কেবল ৮,০০০ বা এর চেয়ে বেশি অক্ষর নিতে পারে))

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

শুধু মজাদার জন্য, এখানে পোস্টটি স্ট্রিং সংস্করণ দিয়ে খাওয়ানো হয়েছে।

 [.L.Ooy "9beS.IS]," 14 টিএস বি 1
 nly

  = করব
   x = 1 বি 15 1
5 বি এ * বি = এলবি আরডি # + এলবি ইএআই ই ই 
 এক্স
 ifquu   
1 0x খ
   =

    ই
0
   আমি lblxa -d * 2
    quu x = rn 
   x জিয়া পি 0
   pnInt ওরা
   mf = iePit
  বা ঘ
   জিটিও 1 এফবি এক্স + ওএ


 qe -lblX u0 m GOOue  
[rlT 

 tnn5! I.STii] [এসএলও ie

এইচটিপিএসথ্যাথেক্স]: আইব.ও.এম / জুজহ .. tcraa.IOo / TytonieSu:wl/.L lnn!: টিটি / আইএস
[Hsto.un ইন / nuslprxRUCoDsio /]: e#NzZn6j4c/2xNQFnF7y0aLzkrosd9Dov2yxJNx774HBrgPUdi9CySI09sCLw5TJwB7jlB1XVeQFE7m1VMsIQvDOjBmdtME3umNzYXs9unFbqRamVDfUDw@RT3NHoL7/i04bz16DCoP4eulOU7jPD8OmYjATpynkuMDuBPYmtnIJzseyyhaNkMyQgXG2R782vqMDIiUm6Kq4Q3mJkxlUsR1rrldPw./l28Z SL.XS - IONuscOT "
senallyxMz.stiitkp ingN "
 ইয়েস্টেইনট অন হিইনিলাইনপ্রিট (ও ই ই টগর টিটগপ্নমন্টুওন এরিউইট আরএইচ অফ অফ, ভেনসিল ইনট্রিটা.এটআর ইওলোকস টিরিলউইউথফ্ল্যাপ্টলি টাই হোনসো (ই ওট সেন্টফাইন আইভেলবিসি ১৫ অ্যাটলি) নাইটলোফ টেকনিক্স)
এইচ এস 0 টি তে 
 lodshipo alauttt.mpra কোয়েট আমি একটি lck eooy ডি র্যান্ডমিন পি 15 পুনরুক্তি (ইউও একুল, আনবট্টি drbuteaynistinems oftrlyordisrprob অসুস্থ অ্যাডিশন এইচ আইট্টমিন.টেট রি)
 একটি nwit u ree nusfil th queusen 
pte ftip, ae uldsfuesis ob hl rlelth weual t tc hdyoend, f tbaaly thi an elnkhecarcthe (sc ho ho noreiItrolwaaldibtio lmiru.t 'iereaf) tsng tetntiottssht prasnon hogIms কেবল ত্রিয়েটিসিওনসিওরিসিপিয়ানসিওসিপি।
 tte s / "gt 
obterelIe tsvea non-omhTrehs a plntvesion hcahihk une tets sriprics at rwvritcaw aa g (hoee n onl kein n00 orscat, 0 cter)।

[তিয়োওস এটি অনাইন! হ্রাইস:।রুশ ভাষায়] পি // ণ / lsslo # jVd (tinnexi3E @ KDpit / LrhtwXwVEUuscxPmJjFFCaNimMzlHiQEcMmdVIT7vqs8mNgxU3mD / J1AwXকুই / ivbao1j @ nb4I6 / m93655bThmb4cy5TUX3xvI018cZzrXItuO5B @ NX5JD / HzyE @ জি @ D5eqrGem3l0HPGRutZfpi2PzVA @ d3CVRTm4zJxnZdcFSTEO0JOT9KhDI6byjnLhS0cNmGz7hJrTdAgORT8Ndvv7DgZSbJdkp9v5al8qMyNCb9tXe0ChrShXRTOt @ 7fFgV3zTkbVbsD @ JpKina2oKgNVakjsjLCpD29u7l0XVRWalVTyArF1FqypQAxXb / BedqUqpJGOPVyxOjLj0jXup8cE277L2I6 @ lSowK5pA7nGldRBiJwyKxF6z2c3kW / sJ4EYBbbpSuBxs55nyI9sdnu @ nJJeGqtKprGEUbc6NDGMjjO2tN / KuKTWh2WWbbRRLVaq / P6KqkoMNWGRgTQZLlbXfQI050bY0rz0xmzCVZ4vowjpV0dCmkDFq0VNa5GSDzVn5Qw7idwPTxu5xTAtLQCDN / YIApfAn4dsDmYksCqUU27sRggpzRK4SmdjmPUPQO4j5FmgHMFRWS2eI1CfA2YIcf7JlylFjdZypVTH0IJu4ZJHiUviyBFKqhrkCjgXAAB8d710NhHgDwcJksuvPPprcfzHPTaJGFX8OIExW / cBZjaPiY7a4WD6rTYmOouBVucROlwvuBJiHWdJQjjbobNGTd7M1P6z8dw / এ @ GU02hgjCcrjjQHkAdS6r7UjQ6wAPqB @ sIgxkKcbZDixeWS6mn160CKQpn7aUwGLK22u9I0oX6YIwPMhFVaX5uYon0AyoNTCZvnmtilVhV3 / pgTGc7r39lIS5PmqM / NGnUSLnTw9eTJ7qqrNQKsJHz @ Tt8mDZVWKCKTkBro1PuQAksDdN1yaVGiVXElRW9i5M11cINmxNGYAg9TD7sxtEDI2OkKMaBXgvO5dOplUQQIdpb2w66NePBScMmEnAX8ydGSiiHlss @ hOLZzInnIoTevRtEm / TGHWOkly5ljMK4FkgDDSWCWBW3YwmEVYCIBV @ GMIg3TZtGwMFWXVxQwBb5iD6PfS7h7Sric1ib5ZYIvW6n3tlaK7 / 6 @ 3OAHy4LjOuW @ tzaBP3 @ mFbJpHsVsQKPfeui / O1 @ aBcbZ4TK96T8tp3QjeA1vDXMKBIqdK @ HZs2vsMlQE36YmrBEnVRUvAGNuCt44e0RB0sL0MkNu1Q5wOwliTT2JQzVrOnHAmSXIU // sqjdG6jdT2r1v @@ lGjouzkGWoD4zhnzJBxo0OT6OTbBDgeDFRnY8TMXZbMPdxsCtbXeUxIBqST4VRwkpbgwChBcJxMx6hLIVZhfuylDvF1l26Nbl3xRLgQnatSCMigx @ PCT6lcG1ebdk / 86UBUFp9UkxjoCGSJnlxMtUdHf6IjkMnil5aua9L @ xXsdHEKW @ 8JpVqlgKsr12bAKG2Typfv @ Yy4CkUydETWphcdmdpWq7egtxqP8pYI2rSaSuYBwW0tNTdXn4qcjnZ9JKhuVwaWRycwCWt247LSflsCHsB3u0KoLTQJzL1uMl0duij / IF7LCc5FSpIPW7gcjOYj @ jQdpQHv0WUz / IbMhS0XmFiWm1i0cTbxXjsjLxt6nGmQNQoKfREklc8pTFyHub7jUg8TR4QrZ2w3YjaLWNi @ FFerCnNgY0LqgrA6qkWg8H / 7Pv6YhtqeZzvoB0yD5Wm1eLL1Vf / SouI0Q / fox7eQlXieZB1F1v2 / এ / btqyVPtubWhDIKH8WaTlry43N6HgOEzX5HOjv1 @ lamBeZlJpqJnG3B2LZe8sXUafdAcVvVjBBlqxbEThCdjpelc7YVuYXOqM8MyVV3iPxbqYu @ nmbHnoKpK1Eww11sA9aiwN8kMe0ioVO7qnucL1A8wHJ4wTsdltrm3CC4bpCd5hMhyDGXSdGgdKvnCKUpNB9nH @ wXLgu5iUEcfJbDKZFjx6gI9i8fCcUFiQXxeSbKnwhT6 @ V / I6yS / Ew9k @ tgI68 / LO @ 4jjx0PZBpSo5vWLCDi4zb @ TJejQQPtvlgde98MDGJ4vUW3T @ iJTA89gGhUJIgy @ MDBpaz3s7PT2ZIwStVANsxpCmhghh68huncD0VdumQt0lT / Su6HW3kMLFfo / FphQ0QhtoZ5iRN / @ Hz / DmHq8UZEgiblprekkw1I366fMhePmDclSxirOlYH2Hwe3fom3aoe1 @ yaQYwi5ZPd2FcITXO7cu9 @ 6tiHZJc7lKSB8e3 / mXx34xYH / 8F @ TUxx / 5vs5yHsYBL4ekscycqT1BnuV19 / "SFE / iRAIL.O NqUXAm। T3zDreu)। এস Oঅক্সস। "dঘঘ

2
আপনার শিরোনাম লিডারবোর্ডটি ভেঙে দিতে পারে - আপনি যদি র‌্যান্ডম গল্ফ অফ দি প্রতিযোগিতায় অংশ নিতে চান তবে মানক বিন্যাসটি ব্যবহার করা ভাল ধারণা হবে idea
wizzwizz4

@ wizzwizz4 সংশোধন করা হয়েছে
রোহান ঝুনঝুনওয়ালা

3

অ্যাসেটো , 24 বাইট, প্রতিদ্বন্দ্বী

প্রতিযোগিতা না করায় আমি দোভাষীতে একটি বাগ ঠিক করতে হয়েছিল।

^




OYpO
r^`!
?d0=   >

লাইনগুলির একটি অসীম স্ট্রিম নেয় এবং এলোমেলো ক্রমে এগুলি দেয়। প্রতিটি উপাদানের যে কোনও এলোমেলো পয়েন্টে ঘটার সম্ভাবনা রয়েছে।

আমরা ?নীচে বাম কোণে একটি দিয়ে শুরু করি , যা আমাদের এলোমেলো পথে চালিত করে। যদি তা নীচে বা বাম হয় তবে আমরা ডানদিকে পিছনে ধাক্কা দেব।

যদি আমরা উপরের দিকে চলে যাই তবে আমরা rএকটি মান সন্ধান করি, স্ট্যাকটি ( Y) Oস্টাফল করব , এবং শক্ত কাগজে ফিরে যাব।

যদি আমরা ডানদিকে চলে dযাই তবে আমরা শীর্ষ স্ট্যাকের মানটি পৃথক করি, 0সমতার জন্য একটি পরীক্ষা করি এবং যেহেতু আমরা স্ট্রিংগুলি পড়ছি, আমাদের কখনও পূর্ণসংখ্যা 0 থাকতে পারে না)। মানগুলি সমান হলে এর অর্থ আমরা স্ট্যাকের নীচে পৌঁছে গেছি (যা থেকে আমরা মুদ্রণ করতে চাই না)। আমরা তুলনা ( ) অস্বীকার করি !এবং p( `)) জিনিসগুলি সমান না হলে কেবল ছদ্মবেশী । তারপরে আমরাও ফিরে এসে Oলাফাতে থাকি the


3

রুবি, 43 বাইট

l=[];loop{l<<gets;l[9]&&$><<l.shuffle!.pop}

আমার আসল উত্তরটি একটি অলস-মূল্যায়িত অসীম তালিকা ব্যবহার করেছে, তবে এটি সংক্ষিপ্ত। আচ্ছা ভালো.


2

এমএটিএল , 11 বাইট

`rEkN*?D}iT

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

হিস্টোক্র্যাট এর বেফুঞ্জ উত্তর পোর্ট ।

ব্যাখ্যা: (-১ বাইটের জন্য লুইস মেন্ডোকে ধন্যবাদ)

`         T % Start do-while (`) .... true (T)
 rEk        % 50-50 chance of outputting or inputting:
            %   Random number between 0...1, multiplied by 2 and converted to logical. 
    N       % Check if there is anything on the stack to output
     *?     % If there is anything on the stack and (*) we want to output:
       D    % Output. Sadly, D errors when the stack is empty, requiring the N*
        }i  % Else, input.

এটি সীমাবদ্ধ সময়ে প্রায় অবশ্যই আউটপুট দেয় এবং প্রায় অবশ্যই সীমাবদ্ধ স্মৃতি প্রয়োজন

সম্পূর্ণতার জন্য, এখানে একটি 15-বাইট সংস্করণ রয়েছে যা একটি 10-উপাদান বাফার রাখে এবং এ থেকে একটি এলোমেলো উপাদান আউটপুট দেয়:

`htnt9>?Yr&)wDT

আমি এই সংস্করণটি খুব বুদ্ধিমানের জন্য পছন্দ করি (যতক্ষণ না গল্ফিংয়ের ভাষাগুলি আইডেম্যাটিক হতে পারে) tn...Yr&), যা তালিকা থেকে একটি এলোমেলো উপাদানকে পপ করে এবং সেই উপাদানটি ছাড়াই তালিকাটি ফিরিয়ে দেয়। তবে, এই চ্যালেঞ্জটির নির্দিষ্ট রসদ প্রচুর পরিমাণে বাইট যুক্ত করে ( wপ্রদর্শনের জন্য প্রয়োজনীয় , t9>?তালিকাটি পর্যায়ে পূর্ণ কিনা তা পরীক্ষা করতে ...)।


2

অ্যালিস , 7 বাইট

a&IdU,O

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

এটি অসীম সময় এবং মেমরির সাথে একটি অনন্ত ইনপুটটিতে কাজ করা উচিত তবে অনুশীলনে এটি পরীক্ষা করা এত সহজ নয় :)

ব্যাখ্যা

a&I         Push 10 characters from the input to the stack.
     d        Push the depth of the stack.
      U       Pop a number (d), push a random number in [0,d)
        ,       Pop a number (n), move the element which is n elements below the top to the top of the stack.
         O    Output the character on top of the stack.

                Execution loops back to the beginning of the line.

প্রতিটি পুনরাবৃত্তিতে 10 টি অক্ষর ইনপুট থেকে পঠিত হয় এবং কেবলমাত্র একটি আউটপুটে যায়, সুতরাং সঞ্চালনের সময় মেমরির ব্যবহার রৈখিকভাবে বৃদ্ধি পায়। একটি সসীম ইনপুট দিয়ে এটি দ্রুত EOF এ পৌঁছেছে, যেখান থেকে দশ -1 প্রতিটি পুনরাবৃত্তিতে স্ট্যাকের দিকে ঠেলে দেওয়া হবে। অক্ষর হিসাবে -1 আউটপুট দেওয়ার চেষ্টা করার কোনও প্রভাব নেই, তবে ইনপুটটির সমস্ত অক্ষর যুক্তিসঙ্গত সময়ে মুদ্রিত হওয়ার সম্ভাবনা কম।

অবস্থান আমি আউটপুট অবস্থান পর্যন্ত ইনপুট যে কোন অক্ষর দ্বারা গ্রহণ করা যেতে পারে 10 , অন্তত একটি সীমার প্রয়োজন চ্যালেঞ্জ এই মেনে থেকে ই-9 থেকে আমি + 9


2

সি, 214 বাইট

c;i;char B[19]={0};char*I;
S(p,q){if(B[p]-B[q])B[p]^=(B[q]^=(B[p]^=B[q]));}
R(n){while(n--)putchar(B[c]),B[c]=*I,c=++i%19,I++;}
main(c,v)char**v;{srand(time(0));I=v[1];R(19);i=9;for(;;){S(i,rand()%19);R(1);i=++i%19;}}

কিভাবে এটা কাজ করে

অনলাইন চেষ্টা করুন (ইউনিক্স)

#include <stdio.h>
#include <unistd.h>

// animation speed
#define ANIMATION_SLOW 600000
#define ANIMATION_NORMAL 400000
#define ANIMATION_FAST 200000

c;i;char Buffer[19]={0};char*input;
Swap(p,q){if(Buffer[p]!=Buffer[q])Buffer[p]^=(Buffer[q]^=(Buffer[p]^=Buffer[q]));}
Read(n){while(n-->0)putchar(Buffer[c]),Buffer[c]=*input,c=++i%19,input++;}

main(int argc, char**argv)
{
    // initialization
    srand(time(0));
    input=argv[1];
    Read(19);i=9;

    // shuffle machine
    while(1)
    {
        usleep(ANIMATION_NORMAL);
        Swap(i,rand()%19);
        Read(1);
        i=++i%19;
    }
}

আপনার চিত্রের "অদলবদল" অর্থ কী?
মার্টিন এন্ডার

@MartinEnder এটা মানে হল যে Viসঙ্গে অদলবদল করা হয় Vjযেখানে j = RAND [ i-9, i+9 ]প্রশ্ন মানদণ্ড সন্তুষ্ট v which is read at a position i of the infinite input, there must be a positive probability for it to end up in any of the positions i-9 to i+9 of the infinite output
Khaled.K

আহ যে জ্ঞান করে তোলে, ধন্যবাদ।
মার্টিন এন্ডার

আমি কী জিজ্ঞাসা করতে পারি আপনি কোন চিত্রটি আপনার চিত্রটি তৈরি করতে ব্যবহার করেছেন?
দাদা

1
@Dada Gliffy
Khaled.K


1

বাশ , 17 বাইট

xargs -n9 shuf -e

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

xargs অবিচ্ছিন্নভাবে STDIN থেকে 9 টি অক্ষর নেয় এবং এলোমেলো প্রেরণ করে

একটি অসীম তালিকা তৈরি করতে পারে:

yes {a..z}

যা abcde .. z অসীম সময়ে মুদ্রণ করে।

পরীক্ষাটি এর দ্বারা করা যেতে পারে:

yes {a..z} | xargs -n9 shuf -e 

xargs shuf -eপ্রয়োজনীয়তাগুলি পূরণ করে কিনা তা নিশ্চিত নন
মার্কোসমে 15'17

1

আর, 70 বাইট

x=NULL;repeat{x=sample(c(x,scan()));if(sum(x|1)>9){cat(x[1]);x=x[-1]}}

খালি ভেক্টর দিয়ে শুরু হয় x। অসীম লুপে এটি STDIN থেকে একটি নতুন মান নেয়, তারপরে ভেক্টরকে বদলে দেয়। তারপরে এটি নির্ধারণ করা হয়েছে যে বিল্ট আপ তালিকার দৈর্ঘ্য 10 বা ততোধিক। যদি এটি হয় তবে এটি মুদ্রণ শুরু করতে পারে। এইভাবে ভেক্টরটির 10 টি ইনপুট রয়েছে এবং প্রতিটি পুনরাবৃত্তির সাথে এটি বদলে যায়। সুতরাং ইনপুটটির জন্য 10 টি আগে মুদ্রণ করা সম্ভব এবং অসীম অনেক জায়গায় পরে (এর সাথে জ্যামিতিক বিতরণ অনুসরণ করা p=1/10)। যখন বাফার যথেষ্ট দীর্ঘ হয়, প্রথম উপাদানটি ভেক্টর থেকে মুদ্রিত হয় এবং সরানো হয়।


1

জাভাস্ক্রিপ্ট, 78 বাইট

for(l=[];;){l.push(prompt());l.length==10&&alert(l.splice(Math.random()*9,1))};x.sort(()=>Math.random()<0.5);alert(x)}

এক্সনরের উত্তর হিসাবে একই পদ্ধতি ব্যবহার করে।


0

পার্ল 5 , 39 বাইট

কোড + -nপতাকা 38 বাইট ।

print splice@F,rand 10,1if 9<push@F,$_

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

@Fঅ্যারেতে প্রতিটি উপাদান যুক্ত করুন (সহ push@F,$_)। যখন @F10 টি উপাদান থাকে ( pushঅ্যারেতে উপাদানগুলির সংখ্যা প্রদান করে, তাই 9<push...), একটি এলোমেলো উপাদান মুছে ফেলা হয় এবং মুদ্রণ করা হয় ( splice@F,rand 10,1উপাদানটি মুছতে, printমুদ্রণ করতে)।
দশম উপাদানটি পড়ার পরে আউটপুটটি ঘটতে শুরু করে। সুতরাং, প্রতিটি উপাদান তার আসলটির আগে কমপক্ষে 9 টি অবস্থান দেখাতে শুরু করতে পারে এবং ডানদিকে অনন্তভাবে স্থানান্তরিত হতে পারে।


0

স্মাইলব্যাসিক, 61 58 বাইট

@L
B$=B$+R()IF I>8THEN R=RND(9)?B$[R];:B$[R]="
I=I+1GOTO@L

অসীম তালিকার প্রতিটি অক্ষর বাফারের শেষে যুক্ত হয়। যখন বাফার দৈর্ঘ্য 11 হয়, একটি এলোমেলো অক্ষর মুদ্রিত এবং সরানো হয়।

ফাংশন Rপরবর্তী অক্ষর উত্পন্ন করে।


-1

প্রোলোগ, 70 বাইট

s(L):-get0(C),(length(L,9)->random_select(H,L,R),put(H);L=R),s([C|R]).

দুঃখিত, আমি এটিকে কীভাবে ডাকব তা বলিনি: s ([])। যেমন একটি খালি তালিকা সহ।
পিটার রিইন্টজেস

পিপিসিজিতে আপনাকে স্বাগতম! আপনি কিভাবে এটি কাজ করে তা ব্যাখ্যা করতে পারেন? আপনি "উদাহরণস্বরূপ একটি খালি তালিকা সহ" বলতে চাইছেন তা নিশ্চিত নই। সমাধানগুলির অসীম তালিকা সহ কাজ করা উচিত (এবং কেবলমাত্র কাজ করা প্রয়োজন)।
মার্টিন ইন্ডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.