"আমি" "আমি" ঘটনার সম্ভাবনা আছে


10

এলোমেলো সংখ্যার জেনারেটর ডিজাইন করুন যেখানে i তম সংখ্যার সকল 0% i <14. এর ক্ষেত্রে ঘটার সম্ভাবনা%% থাকে 0 জেনারেটরের জন্য বীজ সিস্টেম সময় হওয়া উচিত। আপনি এলোমেলো সংখ্যা জেনারেশনের জন্য একটি পূর্বনির্ধারিত ফাংশন ব্যবহার করতে পারবেন না।

মূলত 1 এর 1% সম্ভাবনা থাকে, 2 এর 2% সম্ভাবনা থাকে এবং 13 টি পর্যন্ত 13% হওয়ার সম্ভাবনা থাকে। এটি কোড-গল্ফ, তাই সংক্ষিপ্ততম কোডটি জয়ী।


7
অন্যান্য 9% সুযোগের কী হবে?
LegionMammal978

@ LegionMammal978 আমি ইতিমধ্যে নির্দিষ্ট করেছি। এটি 0 মুদ্রণ করা উচিত
ভূত_স_ই_কোড

হ্যাঁ, এখন ঠিক আছে। আগে কী সমস্যা ছিল?
ভুতগুলি_ইন_কোড

@Gosts_in_the_code এই <অসমতা >থেকে এবং কোট ব্লক থেকে একটি HTML ট্যাগ গঠন করছিল।
মার্টিন ইন্ডার

2
সেকেন্ডের রেজোলিউশন কি ঠিক আছে?
xnor

উত্তর:


13

সিজেম, 14 বাইট

E,_T9t\]ze~es=

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

E,   e# Push [0 1 2 ... 12 13].
_    e# Make a copy.
T9t\ e# Set the first element to 9. Swap with the original range.
]z   e# Wrap them in an array and transpose to get [[9 0] [1 1] [2 2] ... [13 13].
e~   e# Run-length decode to get `[0 0 0 0 0 0 0 0 0 1 2 2 3 3 3 ... 13 13 ... 13 13].
es=  e# Use the current timestamp as a cyclic index into this array.

উম্মু, কেন নয় mR?
অপ্টিমাইজারটি

1
@ অপ্টিমাইজার "জেনারেটরের বীজটি সিস্টেমের সময় হওয়া উচিত rand
মার্টিন ইন্ডার

আহ, সেই অংশটি মিস করল।
অপ্টিমাইজারটি

7

পাইথন 2, 54

import time
print((time.time()*1e4%800+1)**.5+1)//2%14

এক্সপ্রেশনটি f(t) = ((8*t+1)**.5+1)//2অন্তরগুলি ম্যাপিংয়ের মাধ্যমে অভিন্ন বিতরণকে ত্রিভুজাকার পূর্ণসংখ্যার বিতরণে রূপান্তর করে

[0,1)  --> 1
[1,3)  --> 2
[3,6)  --> 3
[6,10) --> 4
...

আমরা সেই সময়ের মিলিসেকেন্ড অঙ্কগুলিকে 0 থেকে 100 পর্যন্ত করে অভিন্ন ফ্লোটে রূপান্তর করি time.time()*1e4%100। আসলে, আমরা %800রূপান্তর পদক্ষেপে 8 দ্বারা গুণিত প্রতিস্থাপন করতে। শেষে, 14 এর দ্বারা 0 এর মধ্যে রূপান্তরিত হয় %14



4

ডায়ালগ এপিএল , 20 বাইট

⊃(⌊.1×⊃⌽⎕TS)↓(/⍨⍳13)

⍳13পূর্ণসংখ্যার 1 13 যদিও
(/⍨... )নিজে প্রতিলিপি, যেমন /⍨3হয় 3 3 3এবং /⍨2 3হয় 2 2 3 3 3
এন ... ড্রপ এন উপাদানের (পাতা খালি তালিকা যদি এন > তালিকার দৈর্ঘ্য)
⎕TSসিস্টেমের সময় স্ট্যাম্প 2015 11 1 13 28 56 834 যেমন
⊃⌽শেষ উপাদান, অর্থাত্ বর্তমান মিলিসেকেন্ডে 0-999
⌊.1×সংখ্যাবৃদ্ধি
০.০ এবং প্রথম এলিমেন্টের সাহায্যে ডাটা খালি থাকলে 0 দেয়


3

প্রক্রিয়াজাতকরণ 3, 65 55 74 বাইট

long i=0,c=8,r=System.nanoTime()%100;for(;r>c;i++,c+=i);print(i);

0 থেকে 99 (সমেত) পর্যন্ত একটি এলোমেলো নম্বর পান। যদি সংখ্যা 0-8 হয় তবে 0 টি মুদ্রণ করুন, এটি 9 টি মুদ্রণ 1 হলে 10-10 মুদ্রণ 2, 12-14 প্রিন্ট 3 ইত্যাদি যদি ...

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


2

পিএইচপি, 50 বাইট

<?for($t=microtime()*100;0<=$t-=++$i;)?><?=$i%14;
  • microtime"0.04993000 1446409253" এর মতো স্ট্রিং হিসাবে সময়টি ফেরত দেয়, যখন আমি এটি 100 দ্বারা গুণ করি, পিএইচপি স্ট্রিংটি 0.04993000 তে কোয়ারেস করে, ফলাফল 4.993000। সুতরাং $tএকটি "এলোমেলো" নম্বর দিয়ে আরম্ভ করা হয়[0,100)
  • এটি 1 $tনা হওয়া পর্যন্ত আমরা 1, 2, 3, ... বিয়োগ করি
  • ফলাফলটি সর্বশেষ বিয়োগ করা সংখ্যা, মডুলো 14

একই বাইট গণনার জন্য আপনি আসলে ;echoপরিবর্তে লিখতে পারেন ?><?=। তবে সুন্দরভাবে সম্পন্ন!
ইসমাইল মিগুয়েল

1

পাইথন 3, 86 বাইট

সরাসরি এগিয়ে:

import time;print(sum([[i]*i for i in range(1,14)],[0]*9)[int(str(time.time())[-2:])])

1

জে - 28 চর

এই এক নির্বোধ ছিল।

{:({:1e3*6!:0'')$100{.#~i.14

6!:0''বর্তমান Y M D h m sএকটি 6 আইটেম তালিকা, যেখানে মিলিসেকেন্ড সেকেন্ড-টু তে ভগ্নাংশ তাদের এ পেতে হিসাবে প্রতিনিধিত্ব করা হয় যেমন সময়, আমরা কোন উপায় কিন্তু সেকেন্ড সংখ্যাবৃদ্ধি (আছে {:) দ্বারা 1e3। এদিকে, #~i.14শূন্য 0 এর একটি তালিকা, এক 1, দুই 2 এস, এবং 13 13 এর দশকের মধ্যে এবং আমরা 100 আইটেমগুলিতে প্যাড করব 100{.

জে সাইক্লিক ইনডেক্সিং নেই, সুতরাং এটি বড় তালিকাটি সূচীকরণের আগে মিলিসেকেন্ডগুলি মডুলো 100 নেওয়ার জন্য লোভনীয় হতে পারে। যাইহোক, আমরা $পরিবর্তে 100-আইটেমের তালিকাটি বহু মিলিসেকেন্ডে (0 থেকে 60999 পর্যন্ত যে কোনও জায়গায় ) পেতে পারি তার পরিবর্তে চক্রাকারে ব্যবহার করে দুটি অক্ষর সংরক্ষণ করতে পারি এবং তারপরে শেষ এন্ট্রি নিতে পারি।

That০০০০ এলিমেন্টের তালিকাটি সম্পূর্ণ ব্যবহৃত মেমরি বা যে কোনও কিছুই নয়, এটি কেবল ওভারকিলের মতো অনুভব করে: পি


1

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

এটি জাভাস্ক্রিপ্টের স্ট্যান্ডার্ড আরএনজির পরিবর্তে ব্যবহার করা হয়েছে এমন একটি সাধারণ বীজযুক্ত আরএনজির একটি রূপান্তর যা বীজযুক্ত হতে পারে না (এবং তাই পুনরাবৃত্তিযোগ্য নয়)

R=(s=~new Date,p=[],i=0,j=9)=>{
while(p.push(i)<100)--j?0:j=++i;
return _=>(s=(1+Math.sin(s))*1e5,p[100*(s-~~s)|0])
};

// test

var rnd=R()

t=[0,0,0,0,0,0,0,0,0,0,0,0,0,0];
rgb='000,444,666,888,aaa,ddd,f0f,ff0,0ff,0ff,0f0,00f,f00,fff'.split`,`
.map(v=>(v=parseInt(v,16),[(v&15)*17,(v>>4&15)*17,(v>>8)*17]))

cnt=400*300
//for (i=0;i<cnt;i++)t[rnd()]++;

ctx = C.getContext("2d");
img=ctx.getImageData(0, 0, 400, 300)
for(p=0,y=0;y<300;y++)for(x=0;x<400;x++)
  v=rnd(),t[v]++,
  img.data[p++]=rgb[v][0],img.data[p++]=rgb[v][1],
  img.data[p++]=rgb[v][2],img.data[p++]=255
ctx.putImageData(img, 0, 0)

o=''
for(i=0;i<14;i++)
  t[i]/=cnt, o+=`<p><i>${i}</i><b style="width:${t[i]*300}%">,</b>${(t[i]*100).toFixed(2)}%</p>`;
G.innerHTML=o
#G { width: 400px; font-size: 12px; border: 1px solid #000;  }
p { margin: 0}
b { display: inline-block; font-size:80%; background: #08c; margin: 2px }
i { display: inline-block; width: 20px; text-align: right; padding: 0 4px }
#C { width: 400px; height: 300px; }
<div id=G></div>
<canvas id=C></canvas>


আমি সত্যিই পছন্দ করি আপনি কীভাবে প্রমাণ করলেন যে প্রত্যাবর্তিত মানটি প্রয়োজনীয়তার সাথে সত্যই নিকটে। সুন্দরভাবে সম্পন্ন! + ক্যানভাসে 10!
ইসমাইল মিগুয়েল

0

টিআই-বেসিক, 18 বাইট

real(int(.5+2√(-4+50fPart(sub(getTime

100fPart(sub(getTime0 এবং 99 এর মধ্যে এলোমেলো অবশিষ্টাংশ পাওয়া যায় The (এন -1) ত্রিভুজাকার সংখ্যাটি সমান (N^2+N)/2, তাই বিপরীতটি সমান √(2y+1)-.5। 9 দ্বারা নীচের দিকে সামঞ্জস্য করার পরে এটি মেঝে করুন এবং আমাদের ফলাফল রয়েছে

একমাত্র সমস্যাটি হ'ল 8 এরও কম অংশের জন্য আমরা একটি কাল্পনিক বর্গমূল পাই। সুতরাং আমরা পরিবর্তে প্রোগ্রাম আউটপুট 0 পেতে আসল অংশ নিতে।


0

পার্ল 5, 51 বাইট

এর -Eপরিবর্তে 50 বাইট +1 -e:

@_=(0)x 9;push@_,($_)x$_ for 0..13;say$_[time%100]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.