ভাল র্যান্ডম উত্পন্ন পিএইচপি

আমি জানি যে শুধুমাত্র র্যান্ড() ব্যবহার করে, যদি আপনি জানেন যে আপনি কি করছেন, এবং সার্ভারে অ্যাক্সেস আছে।

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

আমি একটু পরীক্ষা করার জন্য এই ব্যবহার করেছি:

$i = 0;

while($i < 10000){
    $rand = rand(0, 100);

    if(!isset($array[$rand])){
        $array[$rand] = 1;
    } else {
        $array[$rand]++;
    }

    sort($array);
    $i++;
}

আমি ফলাফল সমানভাবে বিতরণ করা পাওয়া, এবং প্রতিটি সংখ্যা উত্পন্ন হয় বার সংখ্যা একটি বিজড় প্যাটার্ন আছে।

0
ro fr hi
Php7 এ একটি নতুন ফাংশন আছে, যা ঠিক আপনার কি প্রয়োজন
যোগ লেখক Salvador Dali, উৎস

6 উত্তর

random.org has an API you can access via HTTP.

RANDOM.ORG একটি সত্য র্যান্ডম সংখ্যা পরিষেবা যা রেগুলেশন তৈরি করে   বায়ুমন্ডলীয় গোলমালের মাধ্যমে।

0
যোগ

@ কেজি এ পরিবর্তন, ইণ্ডোচ থেকে র্যান্ডের জন্য বীজ হিসাবে মিলিসেকেন্ড ব্যবহার করে?

0
যোগ
Sooooo, আজকের দ্রুত মাল্টি-কোর কম্পিউটারের সাথে, আপনি আবার বীজ আবার ব্যবহার করার একটি চমত্কার সম্ভাবনা আছে, একাধিক বার? Humongous লাল পতাকা - আপনি একটি বর্গ চাকা reinventing করছি, এমনকি srand() </কোড> কোন আর্গুমেন্ট সঙ্গে একটি ভাল ("আরো র্যান্ডম") কাজ করে তোলে।
যোগ লেখক Piskvor, উৎস

A new PHP7 there is a function that does exactly what you needed: it generates cryptographically secure pseudo-random integers.

int random_int ( int $min , int $max )

ক্রিপ্টোগ্রাফিক র্যান্ডম পূর্ণসংখ্যা তৈরি করে যা ব্যবহারের জন্য উপযুক্ত   যেখানে পক্ষপাতিত্বপূর্ণ ফলাফলগুলি সমালোচনামূলক (যেমন, একটি জুজু ডেককে ছোঁড়া)।

PRNG এবং CSPRNG (এবং তাদের পার্থক্য) সম্পর্কে আরও বিস্তারিত বিবরণের জন্য পাশাপাশি কেন আপনার মূল উপায়ে আসলে একটি খারাপ ধারণা, দয়া করে আমার পড়ুন আরেকটি অত্যন্ত অনুরূপ উত্তর।

0
যোগ

একটি দরিদ্র র্যান্ডম উত্স যোগ, বৃদ্ধি, বা ছাঁটা আপনি একটি খারাপ র্যান্ডম ফলাফল দেবে। একটি ব্যাখ্যা জন্য র্যান্ডমাইজ এবং র্যান্ডম নাম্বারের ভূমিকা দেখুন।

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

একটি সমাধান হল একটি সত্য র্যান্ডম জেনারেটর যেমন random.org ব্যবহার করা। অন্যথায়, যদি আপনি লিনাক্স / বিএসডি / ইত্যাদিতে থাকেন তবে / dev / random ব্যবহার করতে হয় র্যান্ডমাইজ মিশন সমালোচনামূলক হলে, আপনাকে একটি হার্ডওয়্যার র্যান্ডম জেনারেটর ব্যবহার করতে হবে।

0
যোগ

আমি randomness ছাপ থেকে সতর্ক হতে হবে: মানুষ কম র্যান্ডম ডিস্ট্রিবিউশন পছন্দ করবে যেখানে অনেক পরীক্ষা আছে। মনে হচ্ছে মনে হয় র্যান্ডমাইজ উৎপাদন বা আনন্মান করাতে মন খুব ভাল নয়।

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

চারমিল্যাব এলোমেলোটি চেক করতে একটি পরীক্ষা প্রোগ্রাম প্রদান করে। আপনি আপনার বিভিন্ন myRand() প্রোগ্রামগুলি চেক করতে এটি ব্যবহার করতে পারেন।

আপনার শেষ প্রোগ্রামের জন্য, যদি আপনি 10000 মান তৈরি করেন, কেন আপনি দশ হাজারের মধ্যে চূড়ান্ত মূল্য নির্বাচন করবেন না? আপনি একটি উপসেট নিজেকে সীমাবদ্ধ এছাড়াও, আপনার $ মিনিট এবং $ সর্বোচ্চ 10000 এর বেশি হলে এটি কাজ করবে না।

যাইহোক, আপনার প্রয়োজন র্যান্ডমাইজ আপনার অ্যাপ্লিকেশন উপর নির্ভর করে। র্যান্ড() একটি অনলাইন গেম জন্য ঠিক হবে, কিন্তু ক্রিপ্টোগ্রাফি জন্য OK না (পরিসংখ্যান প্রোগ্রামের সঙ্গে পুঙ্খানুপুঙ্খভাবে পরীক্ষিত না কিছু যাইহোক ক্রিপ্টোগ্রাফি জন্য উপযুক্ত হবে না)। তুমি বিচারক হউ!

0
যোগ

ধারণার অনুরূপ র্যান্ডম সংখ্যার অন্য উপায়, UUID পাওয়ার মত

পিএইচপি সংস্করণ 5.3 এবং উপরে

openssl_random_pseudo_bytes(...)

অথবা আপনি RFC4122 ব্যবহার করে নিম্নলিখিত লাইব্রেরির চেষ্টা করতে পারেন

0
যোগ