এটি কীভাবে সনাক্ত করা যায় যে কোনও নম্বর জেনারেটর সত্যই এলোমেলো নয়?


20

আমি শুনেছি কম্পিউটারে এলোমেলো সংখ্যা জেনারেশন আসলে এলোমেলো নয়, তবে এটি সনাক্ত করার জন্য কোনও কার্যকরী অ্যালগরিদম নেই। কীভাবে এটি আদৌ সনাক্ত করা যায়?


1
এই পোস্ট আপনাকে সাহায্য করতে পারে।
আন্তোন

6
পেডেন্টিক শোনার ঝুঁকিতে, নিশ্চিতভাবে বলা সম্ভব নয় যে প্রদত্ত উত্সটি এলোমেলো নয়, যদি আপনি যা কিছু করেন তার ফলাফলগুলি পরীক্ষা করা হয়। আপনি এক ন্যায্য মুদ্রাকে বার ফ্লিপ করতে পারেন এবং প্রতিবার মাথা পেতে পারেন এবং 10 100 + 1 সেন্ট টসে লেজ পাওয়ার সম্ভাবনা এখনও 50%। উত্স পরীক্ষা করে, আমরা সাধারণত অ-এলোমেলো জিনিস সনাক্ত করতে পারি (উদাহরণস্বরূপ, সিউডোরেন্ডম সংখ্যা জেনারেটর ... আমরা বীজ এবং অ্যালগরিদম থেকে ক্রমটি অনুমান করতে পারি)। এলোমেলোতার অনেকগুলি আপাত উত্স নির্ভরযোগ্যভাবে পূর্বাভাস দেওয়ার পক্ষে যথেষ্ট বোঝা যায় না। যদিও এটি দার্শনিক। 1010010100+ +1
প্যাট্রিক 87

@ প্যাট্রিক 8787 যদি "নির্দিষ্টতা" দিয়ে থাকে তবে আপনি গণিতের অর্থ, এটি সত্য that's পরিসংখ্যানগত পরীক্ষা রয়েছে তবে এটি আপনাকে স্বেচ্ছাচারিত তাৎপর্য দিতে পারে (প্রদত্ত ডেটা "ভাল" থাকে)।
রাফেল

@ Patrick87 জাগতিক শোনালেও ... আপনি বলতে "তুমি একটি ন্যায্য মুদ্রা টুসকি করতে পরপর কাল ও মাথা প্রত্যেক সময় পেতে" ... না, আমি পারব না। এমন কোনও মডেল যা আমাকে 10 টি শীর্ষ সারিতেও দেখতে দেয় এবং এখনও বিশ্বাস করে যে এটি একটি ন্যায্য মুদ্রা বাস্তবতা খুব ভালভাবে ক্যাপচার করছে না। যদিও এটি আসলে দার্শনিক। ;-)10100103
ডন হ্যাচ

উত্তর:


15

কম্পিউটারগুলি সত্যই এলোমেলো হচ্ছে:

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

বীজ এবং গাছ-:

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

বর্তমান সিস্টেম সময়টি একটি বীজের সর্বোত্তম উদাহরণ। এটি উচ্চ এনট্রপির সাথে একটি দীর্ঘ স্ট্রিং দেয় এবং যদি সময়টিকে পর্যাপ্ত পরিমাণে দানাদার ফ্যাশনে রাখা হয় (যেমন যদি আপনার সিস্টেমের ঘড়িতে ঘন্টা ব্যবহার করা হয় তবে "সময়" বেশ দরিদ্র বীজ), আপনি সিউডোরডম সংখ্যায় খাওয়ানোর সম্ভাবনা কম করছেন unlikely একই সংখ্যা দুবার জেনারেটর।

অ্যালগরিদম যা এলোমেলো যথেষ্ট:

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

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

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

1এন

কোনও আক্রমণকারীকে বোকা বানানোর জন্য এলোমেলো যথেষ্ট:

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

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

সুতরাং আসুন আমরা বলি যে আমার সিএসপিআরজিতে প্রথম পাঁচটি বিট আউটপুট রয়েছে 10100। আপনি প্রোগ্রামটিতে যে ইনপুটটি ব্যবহার করেছিলেন তা আপনি জানেন না তবে আমি আমার সিএসপিআরজি লিখতে যে কোডটি ব্যবহার করেছি সেটিতে আপনার অ্যাক্সেস রয়েছে। তারপরে দাবিটি হ'ল পরবর্তী বিট আউটপুট 101000 বা 101001 হবে কিনা তা সিদ্ধান্ত নিতে কোনও প্রোগ্রাম লিখতে আপনার পক্ষে অসম্ভব।

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


7
এটি সামগ্রিকভাবে একটি ভাল (তবে অসম্পূর্ণ) উত্তর, তবে কয়েকটি পয়েন্ট ভুল। "সত্যিকারের এলোমেলোতা কম্পিউটারের পক্ষে অসম্ভব, কারণ তারা যা কিছু করে তা হ'ল নির্বিচারবাদী” "এটি সর্বদা সত্য নয়, কিছু প্রসেসরে একটি হার্ডওয়্যার আরএনজি অন্তর্ভুক্ত থাকে। কম্পিউটারগুলি এলোমেলো হতে পারে এমন বাহ্যিক ইনপুটটিতেও প্রতিক্রিয়া জানাতে পারে। “… ক্রিপ্টোগ্রাফির জন্য, সুতরাং আমরা বিতরণের ক্ষেত্রে তারা কতটা" এলোমেলো "তা সত্যিই যত্নশীল নই": প্রকৃতপক্ষে কখনও কখনও ক্রিপ্টোতে অভিন্ন বিতরণ গুরুত্বপূর্ণ, যেমন সিবিসির আইভি এবং ডিএসএ-এর কে প্যারামিটার।
গিলস 23'6

তিনি লিখেছিলেন "বাইরের সংযোজন ছাড়াই, কম্পিউটার যা কিছু করে তা হ'ল ডিস্ট্রিমেন্টিক"। বাইরের সংযোজনটি আপনার উল্লেখ হিসাবে ডিএনএসের মতো ডিভাইসের একটি রেফারেন্স। এই সংযোজনগুলি ব্যতীত, আমাদের কম্পিউটেশনাল ক্ষমতাগুলি এমন একটি টিএম এর সমান, যার জন্য প্রকৃত এলোমেলো অসম্ভব।
কেন্ট মুন্তে ক্যাস্পারসেন

আমি যদি সঠিকভাবে মনে করি তবে আমি গিলসের মন্তব্যের পরে এটিকে যুক্ত করেছি।
স্যামম

4

সাম্প্রতিককালে আমি এমআইটি সিএসএআইএল থিওরি অফ কম্পিউটেশন গ্রুপ ব্লগে গণনাতে এলোমেলোতা সম্পর্কে একটি দুর্দান্ত পোস্ট পেয়েছি: আপনি কি বলতে পারেন কিছুটা এলোমেলো কিনা?

একটি থেকে নিষ্কাশিত কিছু ধারনা সহ একটি পোস্ট শুরু এভি Wigderson এর বিস্ময়কর আলাপ ক্ষমতা ও গণনার মধ্যে যদৃচ্ছতা সীমাবদ্ধতা সম্পর্কে, এলোমেলোভাবে আলগোরিদিম সুন্দর এলাকা সমীক্ষণ এবং pseudorandomness এবং গণনীয় ব্যাপারটা যে কঠিন মধ্যে বিস্ময়কর সংযোগ

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

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

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


3

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

ডিহার্ড টেস্ট স্যুট বিভিন্ন পদ্ধতির সমন্বয় করে।


0

এটি কম্পিউটার বিজ্ঞানের একটি বিস্তৃত / জটিল বিষয় যা স্যামের অন্য উত্তরগুলি কয়েকটিকে সম্বোধন করে। আপনার নির্দিষ্ট প্রশ্নটি মনে হচ্ছে যদি কম্পিউটারগুলিকে PRNGs বলা হয় , অর্থাৎ সিউডো এলোমেলো সংখ্যা জেনারেটর থাকে তবে কীভাবে এটি সনাক্ত করতে পারে?

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

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

পিআরএনজিগুলি কিছু ক্ষেত্রে তাদের বিরুদ্ধে স্ট্যাটিস্টিকাল র‌্যান্ডমনেস টেস্টের একটি বিশাল স্যুট চালিয়ে অনুশীলনে (আবার তাদের "সুরক্ষা" এর উপর নির্ভর করে) ভাঙা যায়। উদাহরণস্বরূপ এটি "ডাইহার্ডার" (ব্রাউন দ্বারা) প্রোগ্রামটির যুক্তি । একটি এনআইএসটি স্যুটও রয়েছে

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

পিআরএনজি ভাঙার প্রশ্নগুলিও কলমোগোরভ জটিলতার সাথে সম্পর্কিত , এটি এমন ক্ষেত্র যা ক্ষুদ্রতম টিউরিং মেশিনগুলি সিক্যুয়েন্স তৈরি করতে পারে studies পিআরএনজি ভেঙে সিউডোরডম ক্রম গণনা করার জন্য "সংক্ষিপ্ততম" প্রোগ্রামটি অনুসন্ধানের সাথেও নিবিড়ভাবে সম্পর্কিত। এবং কোলমোগোরভ জটিলতা সাধারণভাবে গণনা করা অনস্বীকার্য।

গিলস একটি মন্তব্যে উল্লেখ করেছেন যেহেতু কোয়ান্টাম আওয়াজের সাথে সম্পর্কিত শারীরিক বৈদ্যুতিন প্রক্রিয়াগুলি থেকে তৈরি হার্ডওয়ার-ভিত্তিক আরএনজি রয়েছে । এগুলি যদি সঠিকভাবে ইঞ্জিনিয়ারড হয় অটুট।


"অযৌক্তিক পিআরএনজিগুলি এমনভাবে তৈরি করা হয় যাতে তাদের অ্যালগোরিদমগুলি সনাক্ত করা যায় না (উত্পন্ন)" - আমি মনে করি এটি সঠিক নয়। আসলে, আপনার পরের বাক্যটি এর সাথে বৈপরীত্য প্রদর্শন করে। এটি ঠিক করার জন্য আপনি কি নিজের উত্তরটি সম্পাদনা করতে চান?
ডিডাব্লু

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

1
আমার নির্দিষ্ট আপত্তি হ'ল বাক্যটি আমার কাছে ভুল মনে হচ্ছে: আপনি মনে করছেন যে আপনি বলছেন যে পিআরএনজিগুলি এমনভাবে ডিজাইন করা হয়েছে যাতে তাদের আউটপুট পর্যবেক্ষণ করা কেউ আলগোরিদমটি কী তা অনুমান করতে না পারে, তবে বাস্তবে এটি জিনিসগুলি কীভাবে কাজ করে তা নয়। বেশিরভাগ পিআরএনজি কাউকে অ্যালগরিদম শেখা থেকে বিরত রাখতে নির্মিত নয়; সাধারণত, অ্যালগরিদম সর্বজনীন। সম্ভবত আপনি বোঝাতে চেয়েছেন যে পিআরএনজিগুলি এমনভাবে নির্মিত যাতে তাদের আউটপুটটিকে সত্য-র্যান্ডম বিট থেকে আলাদা করা যায় না?
ডিডাব্লিউ

1
"যে অ্যালগরিদমটি ক্রম তৈরি করে তা কেবলমাত্র ডেটা ক্রম থেকে নির্ধারণ করা যায় না, কেবল জন্তু বাহিনী ব্যতীত, যদি অ্যালগরিদম সুরক্ষিত থাকে" - এটিও সঠিক নয়। অ্যালগরিদম সাধারণত সর্বজনীন। এটি কেবলমাত্র এমন বীজ যা অ-সর্বজনীন, এবং কেবলমাত্র এমন বীজ যা আউটপুটগুলি থেকে নেওয়া কঠিন বলে মনে করা হয়।
ডিডাব্লিউ

-1

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

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

সিউডো-এলোমেলো সংখ্যার জেনারেটরগুলি যথেষ্ট ভাল, এটি দক্ষতার সাথে গণনা করার জন্য এবং বাস্তব এলোমেলো সংখ্যার মতো আচরণ করার জন্য তারা "সিউডো-এলোমেলো সংখ্যা জেনারেশনের প্রাথমিক বৈশিষ্ট্যগুলি" অনুসরণ করে:

  • উত্পাদিত সংখ্যা অবশ্যই অভিন্ন বিতরণ অনুসরণ করবে (এই বিতরণ থেকে আপনি অন্য কোনও বিতরণ অর্জন করতে পারেন);
  • উত্পাদিত সংখ্যা অবশ্যই পরিসংখ্যানগতভাবে স্বতন্ত্র হতে হবে;
  • ক্রমটি পুনরুত্পাদনযোগ্য (এই পয়েন্টটি ক্লাসিকাল কম্পিউটারের হার্ডওয়্যারের সেই বৈশিষ্ট্যের কারণে চাপানো হয়েছে, এবং এ কারণেই তাদের "সিউডো-এলোমেলো সংখ্যা" বলা হয়);
  • ক্রম সময়কাল যথেষ্ট বড় হতে হবে;
  • সংখ্যা প্রজন্ম দ্রুত হতে হবে।

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

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

এর চারটি মান রয়েছে:
- x_0 ≥ 0
- a ≥ 0
- c ≥ 0
- m> x_0, যেখানে:

x0 হল প্রাথমিক মান, ক, গ এবং মি স্থির হয় যেখানে: এম> এ, এম> সি, এবং এটি ফর্নুলার সাথে ক্রম তৈরি করে:

x_ {i + 1} = (এ * x_i + সি) এমওডি মি

এই ধ্রুবকগুলির মানগুলি অবশ্যই সাবধানে চয়ন করা উচিত। একটি সম্ভাবনা হ'ল:

x_ {i + 1} = (1664525 * x_i + 1013904223) এমওডি 2 ^ 32, রেফারেন্স [[1-2]

এলোমেলো সংখ্যা তৈরি করতে আরও পরিশীলিত অন্যান্য অ্যালগরিদম রয়েছে, যা পূর্ববর্তী অ্যালগরিদমের কিছু সমস্যা এড়ায়, এর মধ্যে রয়েছে: [৩]

  • কিছু বীজ রাজ্যের জন্য প্রত্যাশিত সময়ের চেয়ে কম (এ জাতীয় বীজ রাজ্যগুলিকে এই প্রসঙ্গে 'দুর্বল' বলা যেতে পারে);
  • বিপুল পরিমাণে উত্পন্ন সংখ্যার জন্য বিতরণের একতার অভাব;
  • ধারাবাহিক মূল্যবোধের পারস্পরিক সম্পর্ক;
  • আউটপুট ক্রমের দুর্বল মাত্রিক বিতরণ;
  • নির্দিষ্ট মানগুলির মধ্যে যে দূরত্বগুলি ঘটে তা এলোমেলো ক্রম বিতরণকারীগুলির থেকে আলাদাভাবে বিতরণ করা হয়।

ভবিষ্যতে, শাস্ত্রীয় কম্পিউটারগুলি কোয়ান্টাম সিস্টেমে একত্রিত হতে পারে যা সত্যিই এলোমেলো সংখ্যা সরবরাহ করতে পারে এবং তাদের বিতরণ করতে পারে। [4]

তথ্যসূত্র:
[1] http://en.wikedia.org/wiki/linear_congruational_generator
[2] উইলিয়াম এইচ, এবং অন্যান্য। (1992)। "ফরআরনে সংখ্যাসূচক রেসিপিগুলি 77: বৈজ্ঞানিক কম্পিউটিংয়ের শিল্প" (২ য় সংস্করণ)। আইএসবিএন 0-521-43064-এক্স।
[3] http://en.wikedia.org/wiki/pseudorandom_number_generator
[4] http://www.technologyreview.com/view/418445/first-evidence-that-quantum-processes-generate-t সত্য-random-numbers /


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