নাভা মার্কভ চেইন ওয়ার্ড জেনারেশন


9

এলোমেলো শব্দ উত্পন্ন করার বিভিন্ন উপায় রয়েছে। আপনি একটি সেট থেকে এলোমেলো সিলেবলগুলি নিতে পারেন, আপনি এন-টিপলস, সম্ভবত নিউরাল নেটওয়ার্কগুলি (তারা কী করতে পারে না?) ব্যবহার করতে পারেন , ব্যঞ্জনবর্ণ এবং স্বর ইত্যাদির মধ্যে বিকল্প পরিবর্তন করা ইত্যাদি this । এটি এলোমেলো শব্দ উত্পন্ন করতে একটি মার্কভ চেইন ব্যবহার করে। আপনি যদি মার্কোভের চেইনগুলির সাথে পরিচিত হন তবে আপনি সম্ভবত জানেন যে কেন এই পদ্ধতিটি এত ভয়ঙ্কর।

আপনি যদি মার্কভ চেইনগুলি সম্পর্কে পড়তে চান তবে এখানে ক্লিক করুন

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

<কোড> আব্বা </ কোড> এর জন্য একটি মার্কভ চেইন

(সমস্ত চিত্রের জন্য সমস্ত প্রান্তের ওজন একরকম) আপনার প্রোগ্রাম ইনপুট পাঠ্যের উপর ভিত্তি করে মার্কভ চেইনের মাধ্যমে পথ আউটপুট দেবে। আপনি দেখতে পাচ্ছেন, এটির 1/2 সুযোগ রয়েছে, এটি আউটপুট হবে a, 1/8 সম্ভাবনা aba, 1/16 সম্ভাবনা abba, 1/32 সম্ভাবনা ababaইত্যাদি,

এখানে মার্কভ চেইনের আরও কয়েকটি উদাহরণ রয়েছে:

yabba dabba doo

এখানে চিত্র বর্ণনা লিখুন

wolfram

এখানে চিত্র বর্ণনা লিখুন

supercalifragilisticexpialidocious

এখানে চিত্র বর্ণনা লিখুন

আপনি যদি আরও উদাহরণ চান তবে এটি ব্যবহার করুন । (আমি এতে খুব কঠোর পরিশ্রম করেছি)

চ্যালেঞ্জের বিবরণ:

  • ইনপুটটি স্ট্রিংগুলির তালিকা হিসাবে বা একটি স্থান, কমা বা নিউলাইন দ্বারা পৃথক স্ট্রিং হিসাবে নেওয়া যেতে পারে
  • আপনি ধরে নিতে পারেন যে সমস্ত শব্দই কোনও বিরামচিহ্ন ছাড়াই সম্পূর্ণ ছোট হাতের অক্ষরে থাকবে (এএসসিআইআই 97-122)
  • আপনি কোনও প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন
  • পরীক্ষা করতে, আপনি সম্ভবত উদাহরণগুলি ইনপুট করতে পারেন এবং দেখতে পারেন যে সমস্ত ইনপুটগুলি মার্কভ চেইনের সাথে সামঞ্জস্য করে

এই , যাতে আপনার প্রোগ্রামটি বাইটে স্কোর হয়।

এর কোনও অংশ অস্পষ্ট কিনা তা আমাকে জানান, এবং আমি এটি আরও অর্থবোধ করার চেষ্টা করব।


এটি সম্ভবত বেশ নিখরচায় মানুষের কাছে বোধগম্য হয় কারণ চ্যাটগোট এবং মার্কি উভয়ই ভারি মার্কোভ চ্যাটবোট আইআইআরসি।
ASCII- কেবল

ইনপুট এবং এই মার্কভ চেইনের মধ্যে সম্পর্ক আমি বুঝতে পারি না। মাঝে মাঝে ব্যবহার করে ইনপুট শব্দ উত্পাদন করা অসম্ভব বলে মনে এক (প্রদত্ত চেন পথ যেমন "yabba dabba কোঁ"। কোন জন্য স্বয়ং লুপ bযাতে আপনি একটি ডবল দিতে পারছে না b। তাছাড়া একবার আপনার কাছে পৌঁছাতে একটি bএটা সম্ভব বলে মনে হচ্ছে না startঅন্য শব্দ উত্পাদন করতে ফিরে যান )। আমি বিশ্বাস করি প্রয়োজনীয়তাগুলি কী তা আপনাকে অবশ্যই স্পষ্ট করে দিতে হবে ...
বাকুরিউ

@ বাকুরিউ এর ত্রুটিটি yabba dabba dooএকটি দুর্ঘটনা। আমি যত তাড়াতাড়ি সম্ভব এটি ঠিক করব। হিসেবে শুরু করার জন্য ফিরে পেতে পারবে না, আপনি শুধুমাত্র উৎপন্ন এক একটি প্রদত্ত থেকে শব্দ সেট শব্দের। এটি কি স্পষ্ট করে?
ড্যানথম্যান

উত্তর:


5

পাইথ, 38 32 বাইট

VQJK1FZacN1k XKH]Z=KZ;WJ=JO@HJpJ

FryAmTheEggman কে 5 বাইটের জন্য ধন্যবাদ ! সত্যি কথা বলতে আমি যখন পাইথন উত্তর লিখতে শুরু করি তখন আমি দেখেছি যে কেউ একটি খুব সাদৃশ্য পোস্ট করেছে তাই আমি নিজেকে নতুন কিছু দিয়ে চ্যালেঞ্জ করার সিদ্ধান্ত নিয়েছি তাই আমি আমার উত্তরটি (যা মূলত পিতুর উত্তর ছিল) পিঠে লিখেছিলাম।

ইনপুট স্ট্রিংগুলির একটি অ্যারে ["Mary" , "had" , "a" , "little"]


নিস প্রথম পোস্ট, PPCG করার :) কিছু গলফ টিপস স্বাগতম: Fশুধুমাত্র কখনও দরকারী যখন পরিবর্তনশীল Vহবে ব্যবহার, যখন আপনি এটি করতে চান না ওভাররাইড পরার যাতে আপনি প্রথম পরিবর্তন করতে পারেন Fdকরতে Vএবং প্রতিস্থাপন dসঙ্গে Nঅন্যত্র। [)প্রায় এক উপাদান হিসাবে একই ]। কোনও তালিকায় যুক্ত না করে আপনি ingালাই aসংরক্ষণ করতে অ্যাপেনড ( ) ব্যবহার করতে পারেন । আরও সাধারণভাবে, আমি মনে করি আপনি সম্ভবত আরও কার্যকরী পদ্ধতির মাধ্যমে এই সংক্ষিপ্ততর করতে পারেন। আমি নিশ্চিত নই কিসের +kJজন্য, খালি স্ট্রিংটিতে একটি স্ট্রিং যুক্ত করে একটি নূপ হওয়া উচিত?
FryAmTheEggman

ধন্যবাদ! দুঃখের সাথে আমি আরও কার্যকরী পদ্ধতি গ্রহণ করতে পছন্দ করব আমি কার্যকরী স্টাফগুলিতে পারদর্শী নই (ল্যাম্বডা এক্সপ্রেশন সম্ভবত আমার নিকটতম অভিজ্ঞতা)। বাই দ্বারা বাইট জন্য ধন্যবাদ!
বিলম্ব করুন

4

পাইথন 2, 138 133 বাইট

from random import*
M={}
for w in input():
 P=p=1
 for k in list(w)+[""]:M[p]=M.get(p,[])+[k];p=k
while P:P=choice(M[P]);k+=P
print k

যেমন একটি স্ট্রিং এর অ্যারে লাগে ["yabba", "dabba", "doo"]

সেই ইনপুটটির সাথে উদাহরণগুলি:

do
ya
dabbbbbbbaba
do
ya
yaba
da
dabba
yabbababbababbbbababa
do

আমি এই ফলাফলটিও হাইলাইট করতে চাই।

stidoupilioustialilisusupexpexpexpicexperagilidoupexpexpilicalidousupexpiocagililidocercagidoustilililisupialis

2

রুবি, 112 107 101 99

ইনপুটটি স্টিডিন, নিউলাইন-বিভক্ত স্ট্রিং।

কিউপেসট্যাক্স এটিকে গল্ফ করে দিয়ে অনেক সাহায্য করেছে!

M={}
while gets
k=''
$_.each_char{|c|M[k]||=[];M[k]<<c;k=c}
end
k=''
print k=M[k].sample while M[k]

1
আমি কৃতিত্বের প্রশংসা করব: ডি (গল্ফিং সাহায্যের জন্য "কিউপ্যাজট্যাক্সকে ধন্যবাদ" বা এমনটি এখানে প্রায় সাধারণ বলে মনে হচ্ছে)
ফান্ড মনিকার লসুইট 21

1

মতলব, 160 বাইট

যেমন স্ট্রিংগুলির সেল অ্যারে হিসাবে ইনপুট নেয় {'string1','string2','string3'}

s=input('');n=[];l=96;for i=1:numel(s);n=[n 96 double(s{i}) 123];end
while(l(end)<123);p=n(find(n==l(end))+1);l=[l p(randsample(nnz(p),1))];end
char(l(2:end-1))

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

ইনপুট {'yabba','dabba','doo'}ফলাফল পছন্দ করে da। এখানে দশ রানের ফলাফল পাওয়া যায়: yabababbbababa, da, doo, doooooo, ya, da, doooo, ya, do, yaba

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