এই সংখ্যাটি কি এলোমেলো?


18

আমি 0 থেকে 2 32 - 1 এর মধ্যে 128 র্যান্ডম সংখ্যার জন্য র্যান্ডম.আর.কে জিজ্ঞাসা করেছি যেহেতু এলোমেলো সংখ্যা জেনারেটর প্রথম প্রথম 64 নম্বর দেওয়ার জন্য এত আগ্রহী ছিল, তারা অবশ্যই অন্য 64 এর চেয়ে বেশি এলোমেলো

একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন লিখুন যা নীচের inte৪ টি পূর্ণসংখ্যার মধ্যে একটির ইনপুট হলে সত্যবাদী ফলাফল দেয়:

[1386551069, 1721125688, 871749537, 3410748801, 2935589455, 1885865030, 776296760, 614705581, 3841106923, 434616334, 1891651756, 1128215653, 256582433, 310780133, 3971028567, 2349690078, 489992769, 493183796, 3073937100, 3968540100, 777207799, 515453341, 487926468, 2597442171, 950819523, 1881247391, 3676486536, 3852572850, 3498953201, 2544525180, 297297258, 3783570310, 2485456860, 2866433205, 2638825384, 2405115019, 2734986756, 3237895121, 1560255677, 4228599165, 3106247743, 742719206, 2409129909, 3008020402, 328113612, 1081997633, 1583987616, 1029888552, 1375524867, 3913611859, 3488464791, 732377595, 431649729, 2105108903, 1454214821, 997975981, 1764756211, 2921737100, 754705833, 1823274447, 450215579, 976175934, 1991260870, 710069849]

এবং অন্যান্য 64 নম্বরগুলির জন্য একটি মিথ্যা ফলাফল:

[28051484, 408224582, 1157838297, 3470985950, 1310525292, 2739928315, 3565721638, 3568607641, 3857889210, 682782262, 2845913801, 2625196544, 1036650602, 3890793110, 4276552453, 2017874229, 3935199786, 1136100076, 2406566087, 496970764, 2945538435, 2830207175, 4028712507, 2557754740, 572724662, 2854602512, 736902285, 3612716287, 2528051536, 3801506272, 164986382, 1757334153, 979200654, 1377646057, 1003603763, 4217274922, 3804763169, 2502416106, 698611315, 3586620445, 2343814657, 3220493083, 3505829324, 4268209107, 1798630324, 1932820146, 2356679271, 1883645842, 2495921085, 2912113431, 1519642783, 924263219, 3506109843, 2916121049, 4060307069, 1470129930, 4014068841, 1755190161, 311339709, 473039620, 2530217749, 1297591604, 3269125607, 2834128510]

এই 128 সংখ্যার একটি ছাড়া অন্য কোনও ইনপুট হ'ল অপরিজ্ঞাত আচরণ।

আপনার সমাধানটি যদি প্রোগ্রামগতভাবে পাওয়া যায় তবে দয়া করে এটি তৈরি করতে ব্যবহৃত কোডটিও ভাগ করুন!

এটি , তাই বাইটগুলির মধ্যে সংক্ষিপ্ততম সমাধানটি জিতে।


19
যেহেতু র্যান্ডম নম্বর জেনারেটর প্রথম প্রথম 64৪ নম্বর দিয়েছে, সেগুলি অবশ্যই এলোমেলো হতে হবে ಠ ___ ಠ
লুইস মেন্ডো

আপনি দুটি সেট মডিউল 834
ক্যালকুলেটরফ্লাইন

1
এই সংখ্যাগুলি এলোমেলো নয়।
ক্যালকুলেটরফলাইন

"Maybe, not enough information."&33 বাইট, প্রশ্নের উত্তর।
ক্যালকুলেটরফলাইন

3
@ ক্যাটস আরেফ্লুফি প্রকৃতপক্ষে, যতক্ষণ ইনপুটটিতে 0 বা 1 থাকে না এবং যতক্ষণ না দুটি উপাদান 1 এর দ্বারা পৃথক হয়, আপনি এগুলিকে একটি মডুলো শৃঙ্খলে পৃথক করতে পারেন। উদাহরণস্বরূপ, [4 20 79]থেকে পৃথককরণ করা [8 18 100]যেতে পারে [99 79 20 17 7 4](আপনি প্যাটার্নটি স্পট করতে পারেন কিনা তা দেখুন)। অবশ্যই, আপনার উত্তরের প্রাথমিক অর্ধেক ইনপুটটির চেয়ে অনেক ছোট মডুলো ব্যবহার করতে পারে তবে পিছনের অর্ধেকটি এক সময় একটি উপাদানকে স্থানান্তরিত করে।
Sp3000

উত্তর:


11

সিজেম, 53 52 47 বাইট

l~"X    0'ò"2/Dfb+:%"gÇâì6Ô¡÷Ç8nèS¡a"312b2b=

অপ্রিন্টেবলগুলি রয়েছে তবে দুটি স্ট্রিং এটি পেতে পারে

[88 9 48 5 39 5 29 1 242]:c
[8 103 199 226 236 54 212 15 161 247 199 56 110 232 83 161 97]:c

যথাক্রমে। এটিও দেখায় যে কোড পয়েন্টগুলি 256 এর নীচে।

এটি একটি মডিউলো শৃঙ্খলা উত্তর, যেখানে আমরা ইনপুট পূর্ণসংখ্যার জন্য নিম্নোক্ত Modulos প্রয়োগ করি:

[1153 629 512 378 242 136]

যেহেতু এই তালিকায় 255-রও বেশি সংখ্যক পূর্ণসংখ্যা রয়েছে তাই তালিকাটি দুটি করে অক্ষর ব্যবহার করে এনকোড করা হয়। ডিকোডিংটি সম্পন্ন হয় 2/Dfb, যা স্ট্রিংকে দুটি দৈর্ঘ্যের অংশে বিভক্ত করে এবং প্রতিটি 13 নম্বর (যেমন 88*13 + 9 = 1153) থেকে রূপান্তর করে । তবে ডিকোডিংয়ের ক্ষেত্রে দুটি ব্যতিক্রম রয়েছে:

  • শেষ সংখ্যা ( 136) অন্তর্ভুক্ত করা হয়নি (নীচে দেখুন),
  • দ্বিতীয়-শেষ সংখ্যাটি একটি একক চর দ্বারা প্রতিনিধিত্ব করা হয়, যেহেতু সংখ্যাটি ( 242256) এর চেয়ে কম এবং একটি বিজোড় দৈর্ঘ্যের অ্যারে 2 আকারের অংশে বিভক্ত করা শেষে একটি আকার 1 অ্যারে ছেড়ে যাবে। এই পরামর্শের জন্য @ মার্টিনব্যাটনারকে ধন্যবাদ!

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

অনলাইনে চেষ্টা করে দেখুন | পরীক্ষা স্যুট


1
আপনি কীভাবে লোকেরা ম্যাজিক মডুলি নিয়ে আসবেন?
ক্যালকুলেটরফলাইন

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

একটি ডিএফএস কি? (উইকিপিডিয়া সাহায্য করে না))
ক্যালকুলেটরফ্লাইন

@ ক্যাটস আরেফ্লুফি গভীরতা প্রথম অনুসন্ধান
Sp3000

আহ। আমি কেবল একটি লোভী অ্যালগরিদম ব্যবহার করেছি।
ক্যালকুলেটরফলাইন

4

রেটিনা , 117 বাইট

([023]3|[067]0|[1289]1|5[5689]|67|96|88|77|65|05)$|^(8|4[358]|7[147]|51|37|30)|865|349|2.{5}5|761|74[348]|728|811|990

সত্যের জন্য ধনাত্মক পূর্ণসংখ্যার এবং মিথ্যাবাদীর জন্য শূন্যের আউটপুট তৈরি করে একটি রেইজেক্স গল্ফ উত্তর।

এটি অনলাইন চেষ্টা করুন! | পরীক্ষার স্যুট - সত্যবাদী | পরীক্ষার স্যুট - মিথ্যা | Regex101


2

জাভাস্ক্রিপ্ট (ES6) 233

একটি বেনামি ফাংশন 0 হিসাবে falsyএবং ননজারো হিসাবে প্রত্যাবর্তন করছেtruthy

x=>~"lnhp2wm8x6m9vbjmrqqew9v192jc3ynu4krpg9t3hhx930gu8u9n1w51ol509djycdyh077fd1fnrzv6008ipkh0704161jayscm0l6p4ymj9acbv5ozhjzxo3j1t20j9beam30yptco033c9s3a8jwnre63r29sfbvc5371ulvyrwyqx3kfokbu66mpy9eh" // newline added for readability
.search((x.toString(36)).slice(-3))

বেস ৩ 36-তে উপস্থাপনের সংখ্যাটিতে শেষ 3 টি সংখ্যা পরীক্ষা করা হচ্ছে।

চেক স্ট্রিং তাই নির্মিত হয়:

a=[1386551069, 1721125688, ... ]
H=x=>(x.toString(36)).slice(-3)
Q=a.map(x=>H(x)).join('')

পরীক্ষা

f=x=>~"lnhp2wm8x6m9vbjmrqqew9v192jc3ynu4krpg9t3hhx930gu8u9n1w51ol509djycdyh077fd1fnrzv6008ipkh0704161jayscm0l6p4ymj9acbv5ozhjzxo3j1t20j9beam30yptco033c9s3a8jwnre63r29sfbvc5371ulvyrwyqx3kfokbu66mpy9eh"
.search((x.toString(36)).slice(-3))

a=[1386551069, 1721125688, 871749537, 3410748801, 2935589455, 1885865030, 776296760, 614705581, 3841106923, 434616334, 1891651756, 1128215653, 256582433, 310780133, 3971028567, 2349690078, 489992769, 493183796, 3073937100, 3968540100, 777207799, 515453341, 487926468, 2597442171, 950819523, 1881247391, 3676486536, 3852572850, 3498953201, 2544525180, 297297258, 3783570310, 2485456860, 2866433205, 2638825384, 2405115019, 2734986756, 3237895121, 1560255677, 4228599165, 3106247743, 742719206, 2409129909, 3008020402, 328113612, 1081997633, 1583987616, 1029888552, 1375524867, 3913611859, 3488464791, 732377595, 431649729, 2105108903, 1454214821, 997975981, 1764756211, 2921737100, 754705833, 1823274447, 450215579, 976175934, 1991260870, 710069849]
b=[28051484, 408224582, 1157838297, 3470985950, 1310525292, 2739928315, 3565721638, 3568607641, 3857889210, 682782262, 2845913801, 2625196544, 1036650602, 3890793110, 4276552453, 2017874229, 3935199786, 1136100076, 2406566087, 496970764, 2945538435, 2830207175, 4028712507, 2557754740, 572724662, 2854602512, 736902285, 3612716287, 2528051536, 3801506272, 164986382, 1757334153, 979200654, 1377646057, 1003603763, 4217274922, 3804763169, 2502416106, 698611315, 3586620445, 2343814657, 3220493083, 3505829324, 4268209107, 1798630324, 1932820146, 2356679271, 1883645842, 2495921085, 2912113431, 1519642783, 924263219, 3506109843, 2916121049, 4060307069, 1470129930, 4014068841, 1755190161, 311339709, 473039620, 2530217749, 1297591604, 3269125607, 2834128510]

A.textContent=a.map(x=>f(x))
B.textContent=b.map(x=>f(x))
<table>
  <tr><th>first 64 - truthy</th></tr><tr><td id=A></td></tr>
  <tr><th>other 64 - falsy</th></tr><tr><td id=B></td></tr>
</table>  


1

গণিত, 218 217 বাইট

Fold[Mod,#,{834,551,418,266,228,216,215,209,205,199,198,195,178,171,166,162,154,151,146,144,139,137,122,120,117,114,110,106,101,98,95,88,84,67,63,61,60,57,55,51,45,44,43,41,40,35,34,30,27,26,25,23,20,14,13,11,10,9}]<1

যে কারণেই হোক না কেন, মডুলির একটি সেট উপস্থিত রয়েছে যা আমাদের দুটি সেটকে কেবল মডিউল প্রয়োগের পরে, দুটি শিরোনামের পার্থক্য করতে দেয়, ফলাফলটি শূন্য বা না হয়। এই প্রোগ্রামটির মাধ্যমে মডুলির দীর্ঘ তালিকা তৈরি করা হয়েছিল:

Block[{data1, data2, n, mods}, 
 data1 = {1386551069, 1721125688, 871749537, 3410748801, 2935589455, 
   1885865030, 776296760, 614705581, 3841106923, 434616334, 
   1891651756, 1128215653, 256582433, 310780133, 3971028567, 
   2349690078, 489992769, 493183796, 3073937100, 3968540100, 
   777207799, 515453341, 487926468, 2597442171, 950819523, 1881247391,
    3676486536, 3852572850, 3498953201, 2544525180, 297297258, 
   3783570310, 2485456860, 2866433205, 2638825384, 2405115019, 
   2734986756, 3237895121, 1560255677, 4228599165, 3106247743, 
   742719206, 2409129909, 3008020402, 328113612, 1081997633, 
   1583987616, 1029888552, 1375524867, 3913611859, 3488464791, 
   732377595, 431649729, 2105108903, 1454214821, 997975981, 
   1764756211, 2921737100, 754705833, 1823274447, 450215579, 
   976175934, 1991260870, 710069849};
 data2 = {28051484, 408224582, 1157838297, 3470985950, 1310525292, 
   2739928315, 3565721638, 3568607641, 3857889210, 682782262, 
   2845913801, 2625196544, 1036650602, 3890793110, 4276552453, 
   2017874229, 3935199786, 1136100076, 2406566087, 496970764, 
   2945538435, 2830207175, 4028712507, 2557754740, 572724662, 
   2854602512, 736902285, 3612716287, 2528051536, 3801506272, 
   164986382, 1757334153, 979200654, 1377646057, 1003603763, 
   4217274922, 3804763169, 2502416106, 698611315, 3586620445, 
   2343814657, 3220493083, 3505829324, 4268209107, 1798630324, 
   1932820146, 2356679271, 1883645842, 2495921085, 2912113431, 
   1519642783, 924263219, 3506109843, 2916121049, 4060307069, 
   1470129930, 4014068841, 1755190161, 311339709, 473039620, 
   2530217749, 1297591604, 3269125607, 2834128510};
 n = 1;
 mods = {};
 While[Intersection[Mod[data1, n], Mod[data2, n]] != {}, n++];
 FixedPoint[
  (mods = Append[mods, n]; data1 = Mod[data1, n]; 
    data2 = Mod[data2, n]; n = 1;
    While[Intersection[Mod[data1, n], Mod[data2, n]] != {}, n++]; 
    n) &
  , n];
 {mods, {Fold[Mod, data1, mods], Fold[Mod, data2, mods]}}
 ]

প্রথম আউটপুট হ'ল মডুলি, দ্বিতীয় এবং তৃতীয় আউটপুট দুটি তালিকা, মডিউল প্রয়োগ করেছে। দীর্ঘ দুটি তালিকা সেট।


2
আপনি সম্ভবত তালিকার একটি অংশকে স্ট্রিংয়ে সংকোচিত করতে পারেন।
এনজিপিপোরগান

1

পাওয়ারশেল, v3 + 194 বাইট

$args[0]%834%653-in(40..45+4,8,12,51,60,64,69,76,84,86,93,97,103,117+137..149+160,162,178+195..209+215..227+255,263+300..329+354,361,386,398,417,443,444+469..506+516,519,535,565,581,586,606,618)

কিছুটা আলাদা পন্থা, তাই আমি অনুভব করেছি যে আমি এটি পোস্ট করব। এটি সংক্ষিপ্তভাবে জিততে পারে না, তবে এটি অন্য কাউকে তাদের কোডটি ছোট করার জন্য ধারণা দিতে পারে।

আমরা এখনও ইনপুট পূর্ণসংখ্যা $args[0]নিয়ে চলেছি এবং এতে মডুলো অপারেশন প্রয়োগ করছি, সুতরাং সেখানে আলাদা কিছু নেই। উপরের দিকে, আমরা ব্যবহার করছি-in অপারেটরটি (অতএব v3 + প্রয়োজনীয়তা) সুতরাং Trueএটি সত্যবাদী পরীক্ষার ক্ষেত্রে মানগুলির জন্য ফলাফল দেয়।

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.