কেন 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 কোর বাক্সে চূড়ান্তভাবে প্রার্থিত হতে পারে। একটি থ্রেড-লোকাল আরও স্কেলযোগ্য হতে পারে।