একটি এলোমেলো সংখ্যা জেনারেটর তৈরি করুন যা ডিহার্ড পরীক্ষায় পাস করে passes


50

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

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

আপনার প্রোগ্রামের স্কোর নিম্নলিখিত হিসাবে গণনা করা হয়:

Score = C / R

যেখানে সি অক্ষরের কোডের দৈর্ঘ্য, এবং আর হ'ল আপনার জেনারেটর পাস করা ডেইহার্ড পরীক্ষার সংখ্যা (যদি আপনার এলোমেলো সংখ্যার জেনারেটর কমপক্ষে একটি ডায়ার্ড পরীক্ষা পাস না করে তবে এর স্কোরটি অনন্ত এবং এটি অযোগ্য ঘোষণা করা হয়েছে)। আপনার জেনারেটর যদি একটি ডিহার্ড পরীক্ষায় উত্তীর্ণ হয় তবে এটি উত্পন্ন ফাইলটি পি-মানগুলির একটি পরিসীমা সরবরাহ করে যা অন্তর [0, 1) বরাবর অভিন্নভাবে বিতরণ করা হবে বলে মনে হয়।

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

সর্বনিম্ন স্কোর জয়।


ইন্টারনেট সংযোগের প্রয়োজন এমন কোডটি কি অনুমোদিত? (অনলাইনে কোনও র্যান্ডম ফাংশন অ্যাক্সেস করবে না, তবে পিং বা এপিআই কল এর মানগুলি)
এলসার

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

ডাইহার্ড স্যুটটি 10-11 মেগাবাইটের ইনপুট ফাইলগুলি প্রত্যাশা করে।
প্রিমো

পরীক্ষাগুলির লিঙ্কটি ভাঙ্গা বলে মনে হচ্ছে, এখানে একটি সম্ভাব্য বিকল্প রয়েছে।
2012campion

আমার মস্তিষ্ক-ফ্ল্যাঙ্ক উত্তর (নীচে সরানো) এর জন্য এটি কীভাবে করা উচিত? আমি মনে করি কোডটি ব্যবহারিক হতে খুব ধীর
ক্রিস্টোফার

উত্তর:


6

গণিত, 32/15 = 2.133

x=3;Mod[x=Mod[x^2,28!-67],2^32]&

বিবিএসের একটি সরল বাস্তবায়ন ।

বাইনারি ফাইল এর সাথে উত্পন্ন:

f = %; (* assigns anonymous function declared in the previous expression to f *)
Export["random.bin", Array[f, 2^22], "UnsignedInteger32"];

ফলাফলের সংক্ষিপ্তসার:

 1. BIRTHDAY SPACINGS TEST           .684805
 2. OVERLAPPING 5-PERMUTATION TEST   .757608/.455899
 3. BINARY RANK TEST                 .369264/.634256
 4. BINARY RANK TEST                 .838396
 5. THE BITSTREAM TEST                (no summary p-value)    
 6. OPSO, OQSO and DNA                (no summary p-value)
 7. COUNT-THE-1's TEST               .649382/.831761
 8. COUNT-THE-1's TEST                (no summary p-value)
 9. PARKING LOT TEST                 .266079
10. MINIMUM DISTANCE TEST            .493300
11. 3DSPHERES TEST                   .492809
12. SQEEZE                           .701241
13. OVERLAPPING SUMS test            .274531
14. RUNS test                        .074944/.396186/.825835/.742302
15. CRAPS TEST                       .403090/.403088/.277389

random.binএখানে পূর্ণ ।

এখানে সম্পূর্ণ লগ ফাইল।


28!-67কিছুটা নিষিদ্ধ। একটি ছোট মান আছে যা একটি 64-বিট পূর্ণসংখ্যায় ফিট করতে পারে?
প্রিমো

পাইথনের মতো @ প্রিমো, ম্যাথমেটিকার পূর্ণসংখ্যাগুলি ডিফল্টরূপে নির্বিচারে-যথার্থ হয়, সুতরাং এটি কোনও সমস্যা সৃষ্টি করে না।
2012compion

আমি সিটিতে বহনযোগ্যতার জন্য বিশেষভাবে ভাবছিলাম
প্রিমো

@ প্রিমো gmplib.org
2012campion

21

পার্ল 28/13 ≈ 2.15

sub r{$s^=~($s^=$s/7215)<<8}

লগ ফাইল এখানে

পার্ল 29/13 ≈ 2.23

sub r{$s^=~($s^=$s<<8)/60757}

লগ ফাইল এখানে

এগুলি কোনও ডান শিফটের পরিবর্তে ভাসমান পয়েন্ট বিভাগ ব্যবহার করে একটি জর্শিফ্টে পরিবর্তনের কিছু। তারা উভয়ই 15 টির মধ্যে 13 টি পরীক্ষায় উত্তীর্ণ হয়, কেবল 6 এবং 7 পরীক্ষায় ব্যর্থ হয়।

আমি চক্রটি কত দিন স্থায়ী তা নিশ্চিত নই, তবে নিম্নলিখিত কোডটি কোনও স্বল্প সময়ের মধ্যেই শেষ না হওয়ায় সম্ভবত এটি সম্পূর্ণ 2 32 :

$start = r();
$i++ while $start != r();
print $i;

পার্ল 39/10 = 3.9

$s=$^T;sub r{~($s=$s*$s%4294969373)||r}

দ্রষ্টব্য: আপনি যদি ব্লাম-ব্লাম-শাব-এসকে পিআরএনজির সন্ধান করেন তবে কীথ র্যান্ডালের সমাধান এর যেকোনটির চেয়ে অনেক ভাল।

নীচে আমার মূল সমাধান হিসাবে, এটি একটি প্রধান পার্থক্য সহ ব্লাম ব্লাম শাবের একটি বাস্তবায়নও। আমি একটি মডুলাস ব্যবহার সামান্য বড় চেয়ে 2 32 ( এম = 50971 • 84263 ), এবং যখনই একটি মান সম্মুখীন হয় যে একটি বৈধ 32 বিট পূর্ণসংখ্যা (যেমন, অধিক মাপের নয় 2 32 ), পরবর্তী মান ফেরৎ পরিবর্তে ঘূর্ণন। মূলত, এই মানগুলি ছাঁটাই করা হয়, বাকি আবর্তকে অব্যাহতভাবে ফেলে রাখা হয়, ফলস্বরূপ প্রায় অভিন্ন বন্টন ঘটে।

মনে হয় এটি সাহায্য করেছে। আগের মতো একই 9 টি পরীক্ষায় উত্তীর্ণ হওয়ার সাথে সাথে, এটি এখন দৃ .়তার সাথে ন্যূনতম দূরত্ব পরীক্ষায়ও পাস করে। একটি নমুনা লগ ফাইল এখানে পাওয়া যাবে


পার্ল 33/9 ≈ 3.67 (অবৈধ?)

 $s=$^T;sub r{$s=$s*$s%4294951589}

দ্রষ্টব্য: এই সমাধানটি অবৈধ হিসাবে বিবেচিত হতে পারে, কারণ সর্বোচ্চের সর্বাধিক 0.00037% পরিলক্ষিত হবে না।

ব্লাম ব্লাম শাবের একটি দ্রুত এবং নোংরা বাস্তবায়ন । আমি নিম্নলিখিত ফলাফল দাবি:

 1. passed - Birthday Spacings
 2. FAILED - Overlapping Permutations
 3. passed - Ranks of 31x31 and 32x32 Matrices
 4. passed - Ranks of 6x8 Matrices
 5. FAILED - Monkey Tests on 20-bit Words
 6. FAILED - Monkey Tests OPSO, OQSO, DNA
 7. FAILED - Count the 1s in a Stream of Bytes
 8. passed - Count the 1s for Specific Bytes
 9. passed - Parking Lot Test
10. FAILED - Minimum Distance Test
11. passed - Random Spheres Test
12. FAILED - The Squeeze Test
13. passed - Overlapping Sums Test
14. passed - Runs Test
15. passed - The Craps Test

একটি নমুনা লগ ফাইল এখানে পাওয়া যাবে , ফলাফলের যে কোনও বিতর্ক করতে নির্দ্বিধায়। ডাইহার্ডের জন্য ফাইলটি নিম্নলিখিত পদ্ধতিতে তৈরি করা যেতে পারে:

print pack('N', r()) for 1..4194304

এবং তারপরে একটি ফাইলের মধ্যে আউটপুট পাইপ করা। ন্যূনতম দূরত্ব দেখে মনে হচ্ছে এটি চলে গেছে, তবে আপনি যদি এটি একাধিকবার চালান তবে সর্বদা এটি 1.0 এর খুব কাছাকাছি থাকে যা ব্যর্থতা নির্দেশ করে।


বিস্তারিত

সাধারণভাবে, ব্লাম ব্লাম শাব একটি ভয়াবহ পিআরএনজি, তবে এটির কার্যকারিতা একটি ভাল মডুলাস চয়ন করে উন্নত করা যেতে পারে। আমি যে এম নির্বাচন করেছি তা হ'ল 7027 • 611207 । এই উভয় মৌলিক উপাদান, পি এবং কিউ , মডুলার অবশিষ্টাংশ 3 (মোড 4) , এবং গিসিডি (φ (পি -1), φ (কিউ -1)) = 2 রয়েছে যা এটি যত কম হতে পারে তত কম।

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

চূড়ান্ত নোট হিসাবে, টেস্ট 5 তার নিজের থেকে মনে হয় PRNG কতটা ভাল তার একটি মোটামুটি ভাল সূচক। এটি যদি টেস্ট 5 প্রায় পাস না করে , তবে এটি বাকীগুলিকে দর্শনীয়ভাবে ব্যর্থ করবে।


বোনাস: পার্ল 62/14 ≈ 4.43

$t=$^T;sub r{$t|=(($s=$s/2|$t%2<<31)^($t/=2))<<31for 1..37;$t}

কেবল গীকারি করার জন্য, এটি পিএসএনজি-র একটি 32-বিট সংস্করণ যা এনইএসের জন্য মূল টেট্রিসে ব্যবহৃত হয়। আশ্চর্যজনকভাবে, এটি 15 টির মধ্যে 14 টি পাস করেছে!

 1. passed - Birthday Spacings
 2. passed - Overlapping Permutations
 3. passed - Ranks of 31x31 and 32x32 Matrices
 4. passed - Ranks for 6x8 Matrices
 5. passed - Monkey Tests on 20-bit Words
 6. passed - Monkey Tests OPSO, OQSO, DNA
 7. FAILED - Count the 1s in a Stream of Bytes
 8. passed - Count the 1s for Specific Bytes
 9. passed - Parking Lot Test
10. passed - Minimum Distance Test
11. passed - Random Spheres Test
12. passed - The Squeeze Test
13. passed - Overlapping Sums Test
14. passed - Runs Test
15. passed - The Craps Test

নমুনা লগ ফাইল এখানে আগে করতে পারেন ।

স্বীকার করা, 1..37বিট একটি সঠিক প্রতিলিপি নয় trans অরজিনাল সংস্করণে, এনট্রপি রুটিন প্রতি সেকেন্ডে 60 বার আপডেট করা হয় এবং তারপরে এলোমেলো বিরতিতে অনুসন্ধান করা হয়, মূলত ব্যবহারকারী ইনপুটের উপর নির্ভর করে। যে কেউ রমকে বিচ্ছিন্ন করার চিন্তা করে তাদের জন্য এনট্রপি রুটিন শুরু হয় 0xAB47

পাইথন-স্টাইলের সিউডো-কোড:

carry = entropy_1 & 1
entropy_1 >>= 1
entropy_2 = (entropy_2 >> 1) | (carry << 31)
carry = (entropy_1 & 1) ^ (entropy_2 & 1)
entropy_1 |= carry << 31

হ্যাঁ, আমি লক্ষ্য করেছি যে আপনার অ্যালগোরিদম বিটস্ট্রিম পরীক্ষাটি "ব্যর্থ" হয়েছে, তবে আসলে 0.999999 এর নীচে কয়েকটি মান রয়েছে। তবুও, আপনার পরীক্ষাগুলি সঠিক বলে মনে হচ্ছে।
জো জেড।

যদিও একটি সমস্যা আছে, এবং তা হ'ল 4294951589 থেকে 4294967295 পর্যন্ত সংখ্যার ঘটনার কোনও সম্ভাবনা নেই (যদিও আমি মনে করি এটি ডায়ার্ড পরীক্ষাগুলিতে কিছুটা ব্যর্থ হওয়ার কারণ হিসাবে রয়েছে)।
জো জেড।

1
@ জোজেং হ্যাঁ, এটি একটি সমস্যা। এটি টেস্ট 5-এ সর্বাধিক স্পষ্ট: প্রথম রানটিতে 151 কে হারিয়ে যাওয়া শব্দ রয়েছে এবং তাদের বাকীগুলির মধ্যে কেবল 143k অনুপস্থিত রয়েছে। একটি সমাধান হ'ল 2 ^ 32 এর চেয়ে সামান্য বড় একটি মডুলাস বেছে নেওয়া এবং যে মানগুলি খুব বড় তা শূন্যের চারপাশে মোড়ানোর অনুমতি দেয়, তবে আমি ভালভাবে কাজ করে এমন একটি খুঁজে পাইনি was আমি যদি করি তবে পোস্টটি আপডেট করব।
প্রিমো

7

পাইথন, 46/15 = 3.0666

v=3
def R():global v;v=v**3%(2**32-5);return v

এলোমেলোতা উত্পন্ন করতে মডুলার এক্সফেনসেশন ব্যবহার করে। 2 ** 32-5 2। 32 এর চেয়ে কম বড় প্রাইম। (পরীক্ষা # 2 চালাতে না পেরে একই চুক্তি।)


আপনি একটি লগ ফাইল পেস্ট করতে পারেন?
প্রিমো


1
বোকা উইন্ডোজ। এটা সব occurances রূপান্তর করা হয় \rএবং \nকরতে \r\n, যা স্পষ্টত ফলাফল skews। একটি সমাধান হ'ল সরাসরি ব্যবহার করে ফাইলটি লিখতে f = open('file.bin', 'wb')এবং f.write
প্রিমো

এই নতুন স্কোরটি আগের স্কোরকে কমিয়ে দেয়, তাই এখন গৃহীত উত্তরও।
জো জেড।

এই নতুন স্কোরটি আবারও আন্ডার কাট ছিল, তাই আমি স্বীকৃত উত্তরটি পরিবর্তন করেছি।
জো জেড।

4

রুবি, 32/15 = 2.1333

এটিই কিথ রান্ডাল এর সমাধান, যা রুবিতে প্রয়োগ করা হয়েছিল।

$v=3;def R;$v=$v**3%(2**32-5)end

@ জোজেড এটি ব্র্যান্ড-নতুন গাণিতিক উত্তরটির সাথে জড়িত, সর্বনিম্ন উত্তর বলে মনে হচ্ছে।
রিকিং

3

সি # 144/15 = 9.6

uint a=15,b=26,y;uint q(int n){y=(a*1414549U+876619U)^(b*889453U+344753U);b=a;a=y>>12;return(a%256)<<n;}uint r(){return q(24)|q(16)|q(8)|q(0);}

এটি সমস্ত পরীক্ষায় পাস করেছে।

খুব বেশি অক্ষর না থাকায় এটি পরীক্ষা -২০ এ পাস করে।

ফলাফল: http://codepad.org/iny6usjV

    uint a = 15;
    uint b = 26;

    byte prng8()
    {
        uint y = ((a * 1414549U + 876619U) ^ (b * 889453U + 344753U)) >> 12;
        b = a;
        a = y;
        return (byte)y;
    }

    uint prng32()
    {
        return ((uint)prng8() << 24) | ((uint)prng8() << 16) | ((uint)prng8() << 8) | (uint)prng8();
    }

2

সি # - 103/14 = 7.36

double j=999;uint N(){uint i=0,n=0;for(;i++<4;n=n*256+(uint)j%256)for(j/=277;j<100000;j*=j);return n;}

ফলাফল

পরীক্ষা # 6 ব্যতীত সমস্ত পাস
করে http://codepad.org/k1NSoyQW এ ফলাফল দেখুন

ব্যাখ্যা

সি # যথারীতি যথাযোগ্যতার জন্য রুবি এবং পাইথনের সাথে প্রতিযোগিতা করতে পারে না, তবে আমি চেষ্টা করে উপভোগ করেছি। অন্যান্য মানগুলি অবশ্যই কার্যকরভাবে কাজ করবে (যেমন, j = 999 এর প্রাথমিক মান এবং বিভাজক = 277)। আমি সংক্ষিপ্ত পরীক্ষার পরে এগুলি বেছে নিয়েছি।

ফাইল-তৈরি র‌্যাপার সহ

class R
{
    public static void Main(string[] args)
    {
        var r = new R();
        using (var f = new System.IO.FileStream(".\\out.bin", System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.Read))
        using (var b = new System.IO.BinaryWriter(f))
        {
            for (long i = 0; i < 12 * 1024 * 1024; i += 4)
            {

                b.Write(r.N());
            }
        }
    }

    double j = 999;

    uint N()
    {
        uint i = 0, n = 0;
        for (; i++ < 4; n = n * 256 + (uint)j % 256)
            for (j /= 277; j < 100000; j *= j) ;
        return n;
    }

}

1

পাইথন, 41/15 = 2.73333

v=0
def R():global v;v=hash(`v`);return v

ধরণ ব্যবহার প্রতারনা বিল্ট-ইন হ্যাশ ফাংশন, কিন্তু এটা করা হয় বিল্ট-ইন, তাই মত অন্যান্য builtins ব্যবহার করে, বেশী প্রতারণার len। উল্টো দিকে, global v;বিবৃতিটির জন্য অর্থ প্রদান করতে আমার কষ্ট হয় ...

সমস্ত ডিহার্ড পরীক্ষা পাস করে (আমার # 2 টেস্ট নিয়ে সমস্যা হয়েছিল, এটি আমার ওএসএক্স মেশিনে এসইজিভি রয়েছে my আমার স্কোরের জন্য, আমি ধরে নিচ্ছি এটি পাস হবে)।

16 এমবি ফাইল উত্পন্ন করতে এখানে একজন ড্রাইভার রয়েছে:

import sys
for i in xrange(1<<22):
  r=R()
  sys.stdout.write('%c%c%c%c'%(r&255, r>>8&255, r>>16&255, r>>24&255))

"এই ফাংশনটি এমন কোনও লাইব্রেরি বা অন্যান্য ক্রিয়াকলাপগুলিকে অবশ্যই কল করে না যা প্রোগ্রামের অংশ হিসাবে লেখা হয় নি, বিশেষত / dev / এলোমেলো বা কোনও ভাষার অন্তর্নির্মিত র্যান্ড () লাইব্রেরিতে কল করে" " আমি দুঃখিত, তবে এটি আপনার প্রবেশকে অযোগ্য ঘোষণা করে।
জো জেড।

পরিষ্কার হওয়ার জন্য, "লেন" আপনার প্রবেশকেও অযোগ্য ঘোষণা করবে।
জো জেড।

আপনি কোথায় রেখা আঁকেন? হয় +একটি বিল্ট-ইন ফাংশন, এবং অত: পর অযোগ্য?
কিথ র্যান্ডাল

6
তবে প্রচুর ভাষায়, অপারেটর এবং ফাংশনগুলি অভিন্ন। পাইথন দেখুন +এবং __add__সি ++ এ অপারেটর ওভারলোডিং করুন। আমি জানি আমি একরকম বিভক্ত চুলের, তাই এই উদাহরণটি বিবেচনা করুন। পাইথন আমি এই মত একটি মানচিত্র তৈরি করতে পারেন: {'a':5}? আপনি সম্ভবত হ্যাঁ বলবেন, তবে তারপরে বিবেচনা করুন যে hash('a')আপনি যখন এটি করছেন তখন ডাকা হবে।
কিথ র্যান্ডাল

2
আমি মনে করি আপনি যখন সিন্থেটিকভাবে সেই পদ্ধতিতে ফাংশনটি উল্লেখ করতে চান তখন আমি রেখাটি আঁকতাম। আপনি যদি পাইথনে এমন একটি হ্যাক খুঁজে পেতে পারেন যা আপনাকে সিন্থেটিকভাবে "হ্যাশ" ফাংশন উল্লেখ না করে মানচিত্রের ঠিকানায় প্রবেশ করতে দেয় তবে আমি এটি গ্রহণ করতে পারি।
জো জেড।

1

সি, 38/15 = 2.533

long long x;f(){return(x+=x*x+9)>>32;}

আমি আমার মেশিনে ডিহার্ড পরীক্ষাগুলি কাজ করতে পারিনি, তবে এটি 8 গিগাবাইট পর্যন্ত আউটপুটের জন্য প্র্যাক্টর্যান্ড স্যুটটি পাস করে তাই আমি অনুমান করি যে এটি সমস্তগুলি পাস করবে।


0

মস্তিষ্ক-ফ্লাক , 344 / (মুলতুবি)

<>((()()){})<> push the amount of iterations to do for the PRNG
(((((((((((((((((((((((((((((((((((()()()){}()){})){}{}){()()()()({}[()])}{})){}{})){}{})()){}{})()){}{})){}{})){}{}){}())){}{})){}{})()){}{})()){}{})){}{})){}{})()){}{})()){}{}) push M (one of the values for the Blum Blum Shub PRNG
((((((((((((()()()){}){}){})){}{}){()({}[()])}{}){}())){}{})()){}{}) push s see above
<>{({}[()])<>starts the loop
(({({})({}[()])}{}) squares the current number
(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]({}))mods by M
<>}{}<>loop ends

এটি অনলাইন চেষ্টা করুন!

এটি দুর্দান্ত কাজ করে তবে ডাইহার্ড টেস্টগুলির লিঙ্কগুলি সমস্ত নষ্ট হয়ে যায় :( সুতরাং আমরা নতুন না পাওয়া পর্যন্ত আমার চূড়ান্ত স্কোর নেই

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


যদি এটি অবৈধ হয় কেবল আমাকে বলুন
ক্রিস্টোফার

1
আমি 344 গণনা করছি। উপপাদ্য: কোনও সম্পূর্ণ গল্ফড ব্রেন-ফ্লাক প্রোগ্রামে বিজোড় সংখ্যক বাইট নেই।
ব্যবহারকারী 202729

0

উদ্দেশ্য-সি, 40/1 = 40

বেশ চতুর পন্থা, .hashএখানে কিছুটা প্রতারণার কাজে লাগানো , তবে আমি এটি পছন্দ করি

for(int v=9;v=@(v).hash;printf("%i",v));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.