কেন 181783497276652981এবং 8682522807148012নির্বাচিত হয়েছিল Random.java?
জাভা SE JDK 1.7 থেকে সম্পর্কিত উত্স কোডটি এখানে রয়েছে:
/**
* Creates a new random number generator. This constructor sets
* the seed of the random number generator to a value very likely
* to be distinct from any other invocation of this constructor.
*/
public Random() {
this(seedUniquifier() ^ System.nanoTime());
}
private static long seedUniquifier() {
// L'Ecuyer, "Tables of Linear Congruential Generators of
// Different Sizes and Good Lattice Structure", 1999
for (;;) {
long current = seedUniquifier.get();
long next = current * 181783497276652981L;
if (seedUniquifier.compareAndSet(current, next))
return next;
}
}
private static final AtomicLong seedUniquifier
= new AtomicLong(8682522807148012L);
সুতরাং, new Random()কোনও বীজ প্যারামিটার ব্যতীত প্রার্থনা করা বর্তমান "বীজ বিশোধক" গ্রহণ করে এবং এটির সাথে এক্সওআরওস লাগবে System.nanoTime()। তারপরে এটি 181783497276652981পরের বারের জন্য সংরক্ষণ করার জন্য আরেকটি বীজ অদ্বৈতকরণ তৈরি করতে ব্যবহার করে new Random()।
আক্ষরিক 181783497276652981Lএবং 8682522807148012Lধ্রুবকগুলিতে স্থাপন করা হয় না তবে এগুলি অন্য কোথাও উপস্থিত হয় না।
প্রথমে মন্তব্যটি আমাকে একটি সহজ নেতৃত্ব দেয়। নিবন্ধটির জন্য অনলাইনে অনুসন্ধান করা প্রকৃত নিবন্ধটি দেয় । 8682522807148012কাগজে উপস্থিত হয় না, তবে 181783497276652981উপস্থিত হয় - অন্য সংখ্যার একটি স্ট্রিং হিসাবে 1181783497276652981, যা 181783497276652981একটি 1প্রেন্টেন্ট সহ।
কাগজটি দাবি করেছে যে 1181783497276652981এমন একটি সংখ্যা যা লিনিয়ার কংগ্রেসিভ জেনারেটরের জন্য ভাল "যোগ্যতা" দেয়। এই নম্বরটি কি জাভাতে সহজেই অনুলিপি করা হয়েছিল? না 181783497276652981একটি গ্রহণযোগ্য মেধার আছে?
এবং কেন 8682522807148012বেছে নেওয়া হয়েছিল?
উভয় সংখ্যার জন্য অনলাইনে অনুসন্ধান করলে কোনও ব্যাখ্যা পাওয়া যায় না, কেবলমাত্র এই পৃষ্ঠাগুলির 1সামনেও বাদ পড়ার বিষয়টি লক্ষ্য করা যায় 181783497276652981।
এই দুটি সংখ্যা হিসাবে কাজ করতে পারে যে অন্যান্য সংখ্যা চয়ন করা যেতে পারে? কেন অথবা কেন নয়?
8682522807148012ক্লাসের পূর্ববর্তী সংস্করণটির একটি উত্তরাধিকার, যা 2010 সালে করা সংশোধনীতে দেখা যায় । 181783497276652981Lএকটি ত্রুটি লক্ষ্য প্রকৃতপক্ষে হবে বলে মনে হয় এবং আপনি একটি বাগ রিপোর্ট দায়ের করতে পারে।
seedUniquifierএকটি 64 কোর বাক্সে চূড়ান্তভাবে প্রার্থিত হতে পারে। একটি থ্রেড-লোকাল আরও স্কেলযোগ্য হতে পারে।

