শক্তসমর্থ র্যান্ডম নম্বর জেনারেশন

আমি কোন প্রোডাক্টর খুঁজছি, কোন বিশেষ হার্ডওয়্যার ব্যবহার করে যুক্তিসঙ্গতভাবে শক্তিশালী RNG এটি গাণিতিক পদ্ধতি (মেসেন্না টুইস্টার, ইত্যাদি) ব্যবহার করতে পারে, এটি মেশিন থেকে "এনট্রপি সংগ্রহ করতে পারে", যাই হোক না কেন। লিনাক্স / ইত্যাদিতে আমাদের একটি drand48() যা 48 র্যান্ডম বিট তৈরি করে। আমি C ++ বা C# এর জন্য একটি অনুরূপ ফাংশন / ক্লাস চাই যা 32 বিট র্যান্ডমাইজ তৈরি করতে পারে এবং কম ক্রম বিট সমানভাবে উচ্চ-অর্ডার বিট হিসাবে র্যান্ডম হিসাবে কাজ করে।

এটি ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত হতে হবে না কিন্তু এটি C- ভাষা র্যান্ড() অথবা .NET System.Random এর উপর ভিত্তি করে ব্যবহার করা যাবে না।

কোন সোর্স কোড, উৎস লিঙ্ক, ইত্যাদি প্রশংসা করা হবে! যে ব্যর্থতা, কি RNG এর প্রকার খুঁজছেন উচিত?

0
যোগ সম্পাদিত
মতামত: 2
@ বোমসসসসসস এখন আমি একটি পুনঃব্যবহারের ভোট পোস্ট করেছি। আপনি যথেষ্ট প্রতিনিধি খুব আছে বলে মনে হয়, তাই এটি করতে হবে। :-D
যোগ লেখক Chris Jester-Young, উৎস
কেন না সিস্টেম। র্যান্ডম </ কোড>? আমি জানি যে র্যান্ড </ কোড> দরিদ্র, system.random দরিদ্রও কি ভাল? যদি তাই হয়, এটা দুঃখজনক :(
যোগ লেখক Mooing Duck, উৎস
এই প্রশ্নটি বন্ধ করার পক্ষে যুক্তিটি সঠিক বলে মনে হচ্ছে না।
যোগ লেখক bames53, উৎস
আমি অনুমান করি যে এখন আপনি
কেবল গুগল
যোগ লেখক Sergio, উৎস

9 উত্তর

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

Atan2() ফাংশন, বা আয়তক্ষেত্রীয়-থেকে-পোলার রূপান্তর, যুক্তিসঙ্গত আকারের দেখুন সারণির দ্বারা সম্পূর্ণরূপে বাস্তবায়িত হয় না; কডিক এক বিকল্প।

3
যোগ

Have a look at the CORDIC algorithms in section 31.2 of the fxtbook: http://www.jjj.de/fxt/

2
যোগ

আপনি একটি PIC কোডিং হয়, কত বিট আপনার কোণ হয়? যদি আপনার একটি 8 বিট নম্বর আসছে, তাহলে একটি লেআউট আপ টেবিল সহজ হতে পারে, যদি আপনার একটি 16 বিট নম্বর আসছে, তাহলে এটি একটি ভিন্ন গল্প।

সাধারনত PICs 8 বা 10 বিট নম্বরের মধ্যে আপনি পাবেন যতটা বড়, একটি লিক আপ টেবিল সম্ভবত ঠিক আছে। একটি উচ্চ নির্ভুলতা সংখ্যা পেতে লোকেরা প্রায়শই হারিয়ে যায়, সাধারণত আপনাকে একের প্রয়োজন হয় না। আমি ডাবলসের সাহায্যে 12 বিট নম্বরের একটি সেন্সর পড়েছি এবং সত্যিই সঠিক রূপান্তরটি পেয়েছি। এটি পরীক্ষার জন্য একটি ইনপুট হিসাবে একটি ভোল্টেজ উৎস ব্যবহার করে যখন এটি পুরোপুরি কাজ, কিন্তু আপনি এটি এর ত্রুটি সঙ্গে একটি বাস্তব সেন্সর যোগ এবং আপনি সঠিকতা সময় সময় বর্জ্য খুঁজে।

একটি উচ্চ মানের পাপ/cos/tan ফাংশন ব্যবহার করে সুপারিশ করবে যেখানে ক্ষেত্রে আছে, আমি একটি PIC এক সম্মুখীন না। যদি আপনি একটি উচ্চ মানের সাইন ফাংশন প্রয়োজন হলে আমাকে ক্ষমা করে দিন, আমি ঠিক উত্তর কি 95% ক্ষেত্রে উত্তর উত্তর হবে।

1
যোগ
আমোস আমন্ত্রণ জানিয়েছে, আমি আপনার সমাধান পছন্দ করি, তবে গুণের প্রদর্শনটি সাধারণভাবে হার্ডওয়্যারের উপস্থিতির উপর ভিত্তি করে নির্বাচিত করা হয় না, সব পিআইসিগুলির হার্ডওয়্যার মাল্টিপ্লায়ারগুলি নেই বাস্তবিকই, আপনি ডিগ্রি জন্য একটি টেবিল আপ এবং একটি সরল রৈখিক পরিমাপ ব্যবহার করতে পারেন এবং এটা গুরুত্বপূর্ণ যদি এটি যে গুরুত্বপূর্ণ এছাড়াও জানি না।
যোগ লেখক Dan, উৎস
প্লাস যদি আপনি 1 ডিগ্রী সঠিকতার সাথে কোণে দেখতে পান তবে আপনাকে টেবিলে কেবলমাত্র 90 টি মানের প্রয়োজন হবে। সমস্ত অন্যদের প্রথম চতুর্থাংশের কোণ থেকে উদ্ভূত হতে পারে। যদি আপনি সাইন এবং কোসাইনের জন্য এটি করেন, তাহলে আপনি এইগুলি থেকে স্পর্শকের জন্য মানগুলি উপভোগ করতে পারেন: তান (থিটা) = পাপ (থিটা)/কোস (থিটা)। আপনি কি arcsin, arccos এবং arctan খুব করতে হবে?
যোগ লেখক svec, উৎস

একটু দেরী, কিন্তু এখানে Trig ফাংশন জন্য একটি PicBasic প্রো সমাধান। এটি একটি Cordic সমাবেশ ব্যবহার করে দ্রুত গণনার জন্য ফাইল অন্তর্ভুক্ত। সিন (x) এবং Cos (x) এর ফলাফল, অথবা about2 বিট স্পষ্টতা সঙ্গে atan2 (x, y) এর ফলাফল দেয়

http://www.picbasic.co.uk/forum/showthread.php ? T = 10528

1
যোগ

C ++ জন্য, বুস্ট। র্যান্ডম সম্ভবত আপনি যা খুঁজছেন তা সম্ভবত। এটি এমটি (অন্যান্য অনেক অ্যালগরিদমগুলির মধ্যে) সমর্থন করে এবং এটি nondet_random ক্লাসের মাধ্যমে এনট্রপি সংগ্রহ করতে পারে। এটা দেখ! :-)

0
যোগ

The Gnu Scientific Library (GSL) has a pretty extensive set of RN generators, test harness, etc. If you're on linux, it's probably already available on your system.

0
যোগ

C ++ 11 boost.random- এর উপর ভিত্তি করে একটি শক্তিশালী র্যান্ডম সংখ্যা লাইব্রেরী গ্রহণ করেছে। আপনি আপনার মান, গতি, বা আকারের প্রয়োজনীয়তাগুলি পূরণের জন্য আলাদা অ্যালগরিদমগুলির সাহায্যে অসংখ্য সংখ্যক র্যান্ডম ইঞ্জিন অ্যাক্সেস করতে পারেন। গুণমানের বাস্তবায়নগুলি এমনকি আপনার নিয়ন্ত্রক RNG যা আপনার প্ল্যাটফর্মটি std :: random_device এর মাধ্যমে প্রদান করে।

উপরন্তু অনেক অ্যাডাপ্টার নির্দিষ্ট বন্টন উত্পাদন, হাত দ্বারা যেমন ম্যানিপুলেশন করতে প্রয়োজন নির্মূল (কিছু প্রায়ই ভুলভাবে কাজ)।

#include

0
যোগ

Boost.Random is my first choice for RNG

http://www.boost.org/doc/libs/random

0
যোগ
আপনি শুধু googling দ্বারা র্যান্ডম Boost খুঁজে পেতে পারে কেন আমি কোন লিঙ্ক প্রদান না। এখন আমি এটি lib এর লিঙ্ক দিয়ে আপডেট করেছি।
যোগ লেখক Rohit Vipin Mathews, উৎস

Gnu বৈজ্ঞানিক লাইব্রেরির জন্য দেখুন। এটি LGPL এর পরিবর্তে জিপিএল এর অধীনে লাইসেন্স।

অন্যান্য লোকেরা যেমন উল্লিখিত, বস্ট র্যান্ডম শ্রেণির একটি ভাল শুরু। তাদের বাস্তবায়ন TR1- এর জন্য প্রযোজ্য PRNG কোডের সাথে সামঞ্জস্যপূর্ণ:

http://www.boost.org/doc/libs/1_35_0/libs/random/index.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1452.html

যদি আপনার G ++ কম্পাইলারের সাম্প্রতিক সংস্করণ থাকে, তবে আপনি TR1 লাইব্রেরিগুলি ইতিমধ্যেই অন্তর্ভুক্ত করতে পারেন

0
যোগ