এলোমেলো সংখ্যা / শব্দের ক্রম উত্পন্ন করার জন্য সিকের স্টোকাস্টিক সংস্করণ?


10

কিছু সময় আগে আমি স্টুডাউটের সিউডো এলোমেলোভাবে উত্পন্ন সংখ্যাগুলির ক্রম মুদ্রণের জন্য একটি সেক-জাতীয় সরঞ্জাম ব্যবহার করেছি। আপনি একটি ব্যাপ্তি, বীজ এবং নমুনার সংখ্যা এবং আরও অনেক কিছু নির্দিষ্ট করতে পারেন।

আমি এই সরঞ্জামটির নামটি ভুলে গেছি। যে কেউ আমাকে সাহায্য করতে পারেন?

সম্ভবত আপনি আরও একটি উন্নত সরঞ্জাম জানেন যা উদাহরণস্বরূপ, বিভিন্ন সম্ভাব্যতা বিতরণ বা এমনকি বিভিন্ন বর্ণমালা এবং দৈর্ঘ্য / অক্ষর বিতরণের অধীনে এলোমেলো শব্দের ক্রম প্রজন্মকে সমর্থন করে।

উত্তর:


11

আপনি জট মানে?

$ jot 
jot: jot - print sequential or random data
usage:  jot [ options ] [ reps [ begin [ end [ s ] ] ] ]
Options:
    -r      random data
    -c      character data
    -n      no final newline
    -b word     repeated word
    -w word     context word
    -s string   data separator
    -p precision    number of characters

আপনি যদি উবুন্টু ব্যবহার করেন তবে প্যাকেজটি অ্যাথেন-জট। একটি সহজ উদাহরণ:

$ jot -r 10 12 27
26
13
22
18
25
12
13
23
15
23

বাই।


হ্যাঁ, Jot যে কমান্ড ছিল, ধন্যবাদ! আবার, আমি আরও উন্নত সিকোয়েন্স উত্পন্ন সরঞ্জামগুলির আরও পরামর্শগুলির প্রশংসা করি।
ম্যাক্সচলেপজিগ

2

আপনার যা প্রয়োজন তা করার জন্য যদি আপনার কোনও ছোট স্ক্রিপ্ট লিখতে আপত্তি না থাকে, তবে আমি ওপেন সোর্স পরিসংখ্যান সিস্টেম আর -তে এটি করার পরামর্শ দেব ।

উদাহরণস্বরূপ, 100 গাউসীয়-বিতরণ সংখ্যার একটি তালিকা পেতে এই ওয়ান-লাইনারটি বিবেচনা করুন:

$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...

আসুন এটি ভেঙে দিন।

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

rnorm()"স্বাভাবিক" বা গাউসিয়ান বিতরণ সহ এলোমেলো সংখ্যার একটি তালিকা পেতে আর ফাংশন। এটি তিনটি প্যারামিটার অবধি নেয়, যার মধ্যে প্রথমটি প্রয়োজনীয়, আপনি কত নম্বর চান। আমরা ১০০ এর জন্য জিজ্ঞাসা করেছি other

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

আমরা পূর্ববর্তী অপারেশনের ফলাফলটি write()ফাংশনে পাস করি , যা কোনও ফাইলের জন্য ডিফল্টরূপে ডেটা লিখে দেয়, তবে আমরা এই ফাইলটিকে দ্বিতীয় প্যারামিটারের জন্য একটি ফাঁকা স্ট্রিং পাস করে ওভাররাইড করে দিয়েছি, তাই এটি টেবিলটি এখানে লিখে রাখে পরিবর্তে টার্মিনাল। পরবর্তী প্যারামিটারটি কেবল 1এটি বলে যে আমরা আমাদের আউটপুটটি একক-কলাম বিন্যাসে চাই।

আর বেস সিস্টেমের মধ্যে অনেকগুলি এলোমেলো সংখ্যা জেনারেশন ফাংশন রয়েছে। উদাহরণস্বরূপ, আমরা jotএই স্ক্রিপ্টের সাহায্যে lcpriani এর উত্তরে কমান্ডটি নকল করতে পারি :

$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'

এখানে আমরা runif()12 থেকে 27 পর্যন্ত 10 টি অভিন্ন-বিতরিত এলোমেলো নম্বর পেতে ব্যবহার করছি Like যেমনটি rnorm()আমরা উপরে ব্যবহার করেছি, এই ফাংশনটি ভাসমান-পয়েন্টের মানগুলি ফেরত দেয়, তাই round()স্ক্রিনে লেখার আগে আমাদের তাদের নিকটতম পূর্ণসংখ্যার মানগুলিতে তাদের কাছে রাখতে হবে।

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

আর একটি সম্পূর্ণ প্রোগ্রামিং এনভায়রনমেন্ট, সুতরাং এটি হতে পারে আপনি টেক্সট ফর্ম্যাটে আপনার নম্বরগুলি আর এর বাইরে বের করার দরকার নেই। আপনি সম্পূর্ণরূপে আর এ সমস্যা সমাধান করতে সক্ষম হতে পারেন a এটি একটি শট দিন।


প্রদত্ত বিরতি থেকে এক্স এলোমেলো নম্বর পাওয়ার আর কি উপায়? যেমন 100 এবং 200 এর মধ্যে এলোমেলো সংখ্যা (যেমন সাধারণ বিতরণ থেকে)?
maxschlepzig

আমি jotউপরের উত্তরে lcpriani এর কমান্ড নকল করার তথ্য যুক্ত করেছি । মানগুলির সীমাবদ্ধতার ক্ষেত্রে rnorm(), এটি সাধারণ বিতরণে কাজ করে না। যদি আপনি 0 এর ডিফল্ট গড় এবং 1 এর এসডি নেন, তবে 1000 এখনও একটি সম্ভাব্য রিটার্ন মান, এটি মাত্রাতিরিক্ত অসম্ভব। আর আপনাকে এমন কিছু লিখতে দেবে যা প্রদত্ত সীমার বাইরে থাকা জিনিসগুলি সরিয়ে দেওয়ার জন্য মানগুলিকে ক্ল্যাম্প করবে তবে আপনি সম্ভবত সাধারণ বিতরণটির অপব্যবহার করবেন।
ওয়ারেন ইয়ং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.