এলোমেলো টিকিট কোড জেনারেটর


18

একটি লটারি সংস্থা দৈর্ঘ্যের 10 টি অক্ষরের একটি এলোমেলো লটারির টিকিটের সংখ্যা তৈরি করতে চায়।

এই জাতীয় সংখ্যা তৈরি করতে যে কোনও ভাষাতে একটি কোড লিখুন যাতে প্রতিটি অঙ্কটি একবারে আসে উদাহরণস্বরূপ 9354716208এই সংখ্যাটিতে 0 থেকে 9 পর্যন্ত সমস্ত পূর্ণসংখ্যা কেবল একবারে আসে। এই নম্বরটি একটি এলোমেলো সংখ্যা হওয়া উচিত।

  • উত্পন্ন নম্বরটি স্ক্রিনে দেখানো উচিত।
  • এটি অবশ্যই অনুমতিযোগ্য সমস্ত অক্ষরের সমস্ত ক্রম উত্পন্ন করতে সক্ষম হবে।
  • কোডটি যতটা সম্ভব ছোট হতে হবে (বাইটে)।

3
কেন এটি জাভা বা পিএইচপি হতে হবে?
ফেবিনআউট

4
সাধারণত, কোড-গল্ফের বিবরণ অনুযায়ী কোনও ভাষার অনুমতি দেওয়া ভাল ধারণা ।
কনরাড বোরোস্কি

10
@ হাওয়ার্ডের মতো লোকেরা যখন 5 বা 8 টি চরিত্রের উত্তর পেয়ে থাকেন তবে লম্বা এবং সর্বনিম্ন গল্ফযুক্ত উত্তরগুলির মধ্যে একটি (এসকিউএল উত্তর), এমনকি কোনও চার্ক গণনা ছাড়াই কোড-গল্ফে স্বীকৃত উত্তর হিসাবে দাঁড়ান ?
ড্যারেন স্টোন

1
হ্যাঁ, @ মারিনাসের একটি 4 বাইট সমাধান রয়েছে (আমার 6 বাইট রয়েছে)
টিমটেক

4
-1 বিজয়ীর নির্বাচন অনুচিত, এটি একটি কোড-গল্ফ চ্যালেঞ্জ ছিল given
ডেভিডসি

উত্তর:


41

জে (4 বাইট)

প্রতিহত করতে পারেনি।

?~10

জে, যদি Fdyadic F~ xহয়, একই x F x


3
+1 আমি মনে করি এটি মারতে আমাকে পাইথনের চেয়ে কিছুটা বেশি পরিশ্রান্ত চেষ্টা করতে হবে।
জোয়াকিম ইসাকসন

এটি কি শূন্য দিয়ে শুরু হওয়া পাসওয়ার্ডের অনুমতি দেয়? নিয়ম অনুসারে, প্রোগ্রামটি অবশ্যই "সমস্ত অনুমোদিত চরিত্রের সমস্ত অনুমতি উত্পন্ন করতে সক্ষম হবে"
ডেভিডসি

@ ডেভিডকারারহর: হ্যাঁ এটি বিরতি থেকে 10 অ-পুনরাবৃত্তি এলোমেলো সংখ্যা নির্বাচন করে [0..10), যাতে মূলত '0123456789' এর একটি এলোমেলো অনুক্রমের অর্থ।
মেরিনাস

1
আমি দেখি. আমি এটি উত্থাপন করেছি কারণ বেশিরভাগ ভাষায়, "সংখ্যা", 0123456789, স্বয়ংক্রিয়ভাবে 123456789 ফর্মটিতে সম্পাদিত হবে " সুতরাং আমার প্রশ্নটি আসলে এটি: আপনার আউটপুটটি কোনও সংখ্যা বা একটি স্ট্রিং?
ডেভিডসি

@ ডেভিডকারারহর এটি একটি অ্যারে।
ফিটফাট

12

জে, 5 টি অক্ষর এবং এপিএল, 8 টি অক্ষর

জে

10?10

জে এর বিল্ট-ইন ডিল অপারেটর ( ?) রয়েছে। সুতরাং, আমরা 10 (10 10?10) এর মধ্যে 10 নিতে পারি ।

APL

1-⍨10?10

এপিএলে একই অপারেটর রয়েছে যা দুর্ভাগ্যবশত শূন্যের পরিবর্তে একটি দিয়ে শুরু হয়। অতএব আমরা প্রতিটি সংখ্যা থেকে একটি করে বিয়োগ করছি ( 1-⍨Xযার অর্থ X-1যাত্রী অপারেটরের কারণে)।


ওহ, বাহ, এটা দুর্দান্ত।
কনরাড বোরোস্কি

ওপি সংখ্যা নয় একটি অ্যারের জন্য বিশেষভাবে বলা হয়েছে, তাহলে আপনি এটি base10 নম্বরে এছাড়াও, রূপান্তর করা উচিত সঙ্গে10#.
ফিটফাট

আপনি ধরে নিতে পারেন ⎕IO←0যাতে আপনার একটি বিয়োগ করতে হবে না। এছাড়াও, জে এবং এপিএল উভয়ের জন্য, আপনি বাইট সংরক্ষণের জন্য কমিট ব্যবহার করতে পারেন ?~10এবং ?⍨10যেহেতু ডার্কেড ফাংশনটির monadic প্রয়োগ তার ডান যুক্তিকে বাম আর্গুমেন্ট হিসাবেও ব্যবহার করে। তবে মনে রাখবেন যে এই জে কোডে অভিন্ন তোলে Marinus যে
অ্যাডম

9

পাইথন 2.7 ( 64 63 57)

অপারেটর ভারী ভাষার সাথে তুলনা এবং ডিফল্ট লোড এলোমেলো অভাবের কারণে এখানে একটি সুযোগ নয় :) এটি আমার সাথে সংক্ষিপ্ততম হতে পারে;

from random import*
print''.join(sample("0123456789",10))

এটি কোনও পরিসীমা তৈরি করে এবং প্রতিস্থাপন ছাড়াই এটি থেকে 10 নম্বর স্যাম্পল করে।

(সংক্ষিপ্ত আমদানি ফর্ম্যাট ফিক্সের জন্য @xfix এবং @blkknght কে আমার কিছুটা জটিল জটিল নমুনা পরিসীমা দেখানোর জন্য ধন্যবাদ)

পাইথন 2.7 (40)

যদি আপনি এটি ইন্টারেক্টিভ প্রম্পট থেকে চালান এবং কমা পৃথকীর্ণ পড়তে পারেন তবে আপনি এটিকে 40 এ শেভ করতে পারেন, তবে এটি কিছুটা নিয়মের আত্মাকে ভঙ্গ করার মতো মনে হচ্ছে;

from random import*
sample(range(10),10)

1
আপনি from random import*একটি অক্ষর সংরক্ষণ করতে ব্যবহার করতে পারেন । এটি আমার পার্ল 6 সমাধানের মতো দেখায় তবে আরও ভার্বোজ, তবে এটি দেখতে খুব ভাল যে এরকম কিছু পাইথনে কাজ করতে পারে এমনকি আরও ভার্বোস হলেও।
কনরাড বোরোস্কি

@ এক্সফিক্স হ্যাঁ, দুর্ভাগ্যক্রমে পাইথনের মডিউলগুলি তুলনা করার জন্য কিছুটা ভারবসজ :) আপনার ইম্পোর্ট ফিক্সের সাথে আপডেট হয়েছে, আমার আইডিয়াগুলিতে "সম" না হয়ে গল্ফিংয়ের ক্ষেত্রে বেশ নতুন।
জোচিম ইসাকসন

স্ট্রিং থেকে নমুনা "0123456789"ব্যবহার করে rangeএবং ম্যাপিংয়ের পরিবর্তে আপনি আরও কয়েকটি অক্ষর সংরক্ষণ করতে পারেন str
ব্ল্যাকঙ্কহট

@Blckknght ধন্যবাদ, আপনার প্রস্তাবনার :) আপডেট
জোয়াকিম Isaksson

8

পিএইচপি, 29 টি অক্ষর

<?=str_shuffle('0123456789');

পিএইচপি সহ, ক্লোজিং ট্যাগের প্রয়োজন হয় না। তবে যদি এটি বিধিগুলির বিরুদ্ধে থাকে তবে আপনি প্রতিস্থাপন করতে পারেন; 1 নেট বাড়ানোর জন্য?


আপনি এই সমাধান আমাকে মারধর।
শন বেবারস

8

রুবি, 18

এটি চালান irb:

[*0..9].shuffle*''

আপনি যদি এটির আউটপুট সহ একটি স্ট্যান্ড-অলোন প্রোগ্রাম হতে চান stdout(বিধিগুলি এর প্রয়োজন বলে মনে হয় না ), তবে শুরুতে এই 4 টি অক্ষর যুক্ত করুন:

$><<

আপনি সংক্ষিপ্ত হতে (0..9).to_aপারে [*0..9]
হাওয়ার্ড

হয়ে গেলো, স্যার। ধন্যবাদ!
ড্যারেন স্টোন

আপনাকে স্বাগতম. তবে কেন আপনি [*0..9].shuffleপ্রথম স্থানে ব্যবহার করবেন না ?
হাওয়ার্ড

@ হওয়ার্ড, কারণ এটি দেরী হয়ে গেছে এবং আমি বোবা। :) ধন্যবাদ!
ড্যারেন স্টোন

সংখ্যাটি নয় এমন নম্বর সহ এই রিটার্ন অ্যারে

8

পিএইচপি - 37 অক্ষর

<?=join('',array_rand(range(0,9),10))

আমার একটি 18-চরিত্রের সমাধান ছিল যা তাত্ত্বিকভাবে কাজ করা উচিত তবে পিএইচপি অদ্ভুত।

অথবা, আপনি যদি xkcd উত্তর চান:

<?="5398421706" // Chosen by program above; guaranteed to be random ?>

সম্পাদনা: ধন্যবাদ এক্সফিক্স, এটি এখন 5 টি অক্ষর সংক্ষিপ্ত এবং সম্পূর্ণ। আবার সম্পাদনা করুন: লাইভ উদাহরণ


শুধু সম্পূর্ণ অংশগুলির পরিবর্তে একটি সম্পূর্ণ প্রোগ্রাম লিখুন। এছাড়াও, echoডান বন্ধনী দরকার নেই, এবং যদি echoপ্রোগ্রামে প্রথম বিবৃতি হয়, তাহলে আপনি প্রতিস্থাপন করতে পারেন <?php echoসঙ্গে <?=। এছাড়াও, joinজন্য একটি উপনাম implode
কনরাড বোরোস্কি

@ এক্সফিক্স ধন্যবাদ, আমি ঠিক করব। :)
সিজেফুরে

এমনকি আপনার দরকার নেই <?=এবং ?>। এটি ছাড়া বৈধ পিএইচপি কোড।
জেরেমি

@ জেরেমি গল্ফটির জন্য সংখ্যাটি প্রদর্শিত হওয়া দরকার; পাশাপাশি, echo একই দৈর্ঘ্য <?=এবং ?>একত্রিত, এবং সেগুলি ব্যতীত কোডেপ্যাডে এটি কাজ করে না। ধন্যবাদ যদিও. : পি
সিজেফুরে

1
@ জেরেমি আহ, পিএইচপি, যেখানে একটি টার্মিনাল ছাড়া এম্বেড এম্বেডেড প্রয়োগ খুব কম। : পি
সিজেফুরে 19

8

পার্ল 6 (18 ১ characters টি অক্ষর)

print pick *,^10

এই সব এলোমেলো উপাদান ধারণকারী অ্যারের (উত্পন্ন pick *থেকে) 0থেকে 9এবং ফলাফল আউটপুট ( print)।

নমুনা আউটপুট:

$ perl6 -e 'print pick *,^10'
4801537269
$ perl6 -e 'print pick *,^10'
1970384265
$ perl6 -e 'print pick *,^10'
3571684902

+1 আমি মনে করি এর আগে আপনার সাদা স্থানের দরকার নেই pick
হাওয়ার্ড

1
@ হাওয়ার্ড: আমার আসলে এটি দরকার। [~](যা পার্ল gram ব্যাকরণ অনুসারে তালিকারূপে বিশ্লেষণ করা হয়েছে) এর পরে যদি কোনও যুক্তি থাকে তবে তার পরে একটি সাদা জায়গা (বা পেরেন) প্রয়োজন। অন্যথায়, পার্ল 6 সংকলক "পর পর দুটি পদ" সম্পর্কে অভিযোগ করে। পার্ল 6 এর পুরানো সংস্করণগুলিতে এটির প্রয়োজন ছিল না, তবে এটি অতীত। পার্ল 6 তে এখনও কাজ চলছে।
কনরাড বোরোস্কি

1
@ এক্সফিক্স: printপরিবর্তে ব্যবহার করুন say [~]এবং 2 টি অক্ষর সংরক্ষণ করুন :)
আইাইকো

অয়াইকো: উন্নতির জন্য ধন্যবাদ :)
কনরাড বোরোভস্কি 22'14

7

গল্ফস্ক্রিপ্ট, 12 টি অক্ষর

10,{;9rand}$

কেবলমাত্র অঙ্কগুলির তালিকা তৈরি করে 10,) এবং {...}$কিছু এলোমেলো কী অনুসারে এটি সাজায় - যা সংখ্যার একটি এলোমেলো অর্ডার দেয়।

উদাহরণ ( অনলাইনে চেষ্টা করুন ):

4860972315

0137462985

আমি এটি পোস্ট করতে
চলেছিলাম

অর্থাৎ একটি বিষ্ঠা এলোমেলো ধরনের যদিও: যেমন, প্রথম সংখ্যা চেয়ে 1. প্রতিস্থাপন করা হচ্ছে 0 হওয়ার সম্ভাবনা যেমন তিনবার সম্পর্কে 9randসঙ্গে 99randহবে (বেশিরভাগই) সমাধান যে; 9.?randহবে কার্যত নিখুঁত
ইলমারি করোনেন

1
@ ইলমারি কারোনেন আমি জানি, তবে প্রশ্নটি অভিন্ন বিতরণ সম্পর্কে কিছুই বলেনি।
হাওয়ার্ড

6

আর (23 টি অক্ষর)

cat(sample(0:9),sep="")

নমুনা আউটপুট:

> cat(sample(0:9),sep="")
3570984216
> cat(sample(0:9),sep="")
3820791654
> cat(sample(0:9),sep="")
0548697132

6

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

randIntNoRep(1,10

একটি সংখ্যার চেয়ে একটি তালিকা প্রদর্শন করে। আপনি খুঁজছেন randIntNoRep(0,9:.1sum(Ans10^(cumSum(1 or Ans
lirtosiast

2
আমি মনে করি না যে এই চ্যালেঞ্জটির জন্য একটি পূর্ণসংখ্যার প্রকারের প্রয়োজন, কেবল এটিই "উত্পন্ন নম্বরটি স্ক্রিনে দেখানো উচিত" যা এটি which
টিমটেক

হুম, আমি ভেবেছিলাম প্রশ্ন একটি সংখ্যা জন্য জিজ্ঞাসা ছিল (যেমন করেনি অন্যদের কোনো ক্ষেত্রে কিন্তু এটা চ্যালেঞ্জ লেখকের অভিপ্রায় ব্যাখ্যা না হয় বলে মনে হয় একটি তালিকা দেখুন (J এবং APL) হিসাবে অন্যান্য বেশ কয়েকটি সমাধান
lirtosiast

ঠিক আছে, আমি নিশ্চিত না হলে আমি ধরেই নেব না, কারণ এই পদ্ধতিটি সংক্ষিপ্ত।
টিমটেক

5

অক্টাভা (14)

randperm(10)-1

randperm দুর্ভাগ্যক্রমে 1..n থেকে একটি নির্বাচন তৈরি করে, তাই 0-9 পেতে শেষে 1 টি বিয়োগ করতে হবে।


5

SQL সার্ভারে

DECLARE @RandomNo varchar(10)
SET @RandomNo = ''

;WITH num as (
SELECT 0 AS [number]
Union 
select 1
Union 
select 2
Union 
select 3
Union 
select 4
Union 
select 5
Union 
select 6
Union 
select 7
Union 
select 8
Union 
select 9
)
SELECT Top 9 @RandomNo = COALESCE(@RandomNo + '', '') + cast(n.number AS varchar(1))
FROM numbers n
ORDER BY NEWID()

SELECT cast(@RandomNo AS numeric(10,0))

ডেমো দেখুন

বা পুনরাবৃত্তি এবং এক্সএমএল ব্যবহার করে অনুরূপ কিছু (@ মান্যাটওয়ার্কের সৌজন্যে)।

with c as(select 0i union all select i+1from c where i<9)select i+0from c order by newid()for xml path('')

1
ম্যান, আপনি সিটিইগুলিকে ভালবাসেন ... তবে এটি কোড-গল্ফ চ্যালেঞ্জ হিসাবে যতটা সম্ভব সংক্ষিপ্ততর করুন। আমার সবচেয়ে ভাল 186 অক্ষর: select i+0from(select 0i union select 1union select 2union select 3union select 4union select 5union select 6union select 7union select 8union select 9)f order by newid()for xml path('')। ( newid()
বিটিডাব্লু

1
ঠিক আছে, আপনি ঠিক বলেছেন। সিটিইয়ের সাথে সংক্ষিপ্ততর। 106 অক্ষর: with c as(select 0i union all select i+1from c where i<9)select i+0from c order by newid()for xml path('')
ম্যান্যাটওয়ার্ক

আপনি cte সরল করতে পারেন(VALUES (1),(2),...)
ypercubeᵀᴹ

5

জাভাস্ক্রিপ্ট ( 79 78 68 টি অক্ষর)

0-9 নম্বর দিয়ে একটি অ্যারে তৈরি করে বাছাই করার পরিবর্তে, আমি এলোমেলো সংখ্যা উত্পন্ন করার সিদ্ধান্ত নিয়েছি। এটি যখন এমন একটি নম্বর নিয়ে আসে যা ইতিমধ্যে অ্যারেতে ছিল না তখন এটি যুক্ত করে। এটি দশ বার পুনরাবৃত্তি করে এবং আউটপুটটি সতর্ক করে।

for(a="";!a[9];){~a.indexOf(b=~~(Math.random()*10))||(a+=b)}alert(a)


আপনি পছন্দ মতো ||পরিবর্তে শর্ট সার্কিট মূল্যায়ন ব্যবহার করে 1 বাইট সংরক্ষণ করতে ifপারেন: for(a="";!a[9];){b=Math.floor(Math.random()*10);~a.indexOf(b)||(a+=b)}alert(a)
স্টিভেন পালিঙ্কাস

1
ধন্যবাদ স্টিভেন প্যালিনকাস ধন্যবাদ, দুর্দান্ত ধারণা! আমি সেই অনুযায়ী পোস্ট আপডেট করেছি।
স্ক্রিবলম্যানিয়াক

আমরা কোডটিতে কিছুটা পুনর্বিন্যাসের সাহায্যে 2 বাইটও সঞ্চয় করতে পারি: for(a="";!a[9];){~a.indexOf(b=Math.floor(Math.random()*10))||(a+=b)}alert(a)
স্টিভেন পালিঙ্কাস

আমরা ম্যাথ.ফ্লুরের মতো "শর্টহ্যান্ড" ব্যবহার করে অতিরিক্ত 8 বাইট সংরক্ষণ করতে পারি :for(a="";!a[9];){~a.indexOf(b=~~(Math.random()*10))||(a+=b)}alert(a)
স্টিভেন পলিনকাস



4

জাভাস্ক্রিপ্ট, 82 টি অক্ষর

সম্পাদনা: রব ডব্লিউকে ধন্যবাদ , কোডের দৈর্ঘ্য হ্রাস করা হয় 90 টি অক্ষরে।

সম্পাদনা: জর্জ রিথকে ধন্যবাদ , কোডের দৈর্ঘ্য হ্রাস করা হয়েছে 82 টি অক্ষরে (লুপের জন্য ব্যবহার করে)।

বেশ সহজ সরল উপায়: [0,1,2,3,4,5,6,7,8,9]অ্যারের এলোমেলো উপাদান বেছে নিন এবং আউটপুট এ যুক্ত করুন, তারপরে অ্যারে হ্রাস করুন এবং পুনরায় খেলুন।

পুরানো সংস্করণ (106 টি অক্ষর):

a=[0,1,2,3,4,5,6,7,8,9],l=11,t="";while(--l){r=Math.floor(Math.random()*l);t+=a[r];a.splice(r,1);}alert(t)

পঠনযোগ্য সংস্করণ:

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], l = 10,t = "";
while(l--) {
  r = Math.floor(Math.random() * l);
  t += a[r];
  a.splice(r, 1);
}
alert(t);

আরও ভাল সংস্করণ (90 টি অক্ষর):

a="0123456789".split(t=""),l=11;while(--l)t+=a[r=0|Math.random()*l],a.splice(r,1);alert(t)

শেষ সংস্করণ (৮২ টি অক্ষর):

a="0123456789".split(t='');for(l=11;--l;t+=a.splice(0|Math.random()*l,1));alert(t)

জেএসফিডাল: http://jsfiddle.net/gthacoder/QH3t9/


1
আমি 90 অক্ষরের মধ্যে আপনার পদ্ধতি নিচে golfed: a='0123456789'.split(t=''),l=10;while(l--)t+=a[r=0|Math.random()*l],a.splice(r,1);alert(t)। বড় সেভারস: Math.random(x)=== 0|x। কোঁকড়া ধনুর্বন্ধনী এবং সেমিকোলনগুলি কমা দ্বারা প্রতিস্থাপন করুন। একটি মধ্যবর্তী ভেরিয়েবল ব্যবহার না করে সরাসরি একটি অ্যাসাইনমেন্টের ফলাফলটি ব্যবহার করুন। অবশেষে, প্রাথমিক অ্যারে ব্যবহার করে আরম্ভ করুন .split(r='')। এটি অ্যারে লিটারাল ব্যবহার করে একটি অ্যারে তৈরি করা এবং স্ট্রিংয়ের মান পৃথক এক্সপ্রেশনতে নির্ধারণের চেয়ে কম।
রব ডাব্লু

@ রব ডাব্লু টিপস জন্য ধন্যবাদ। আমি আমার উত্তর আপডেট। দ্রষ্টব্য আমি অনুমান আপনি বোঝানো Math.floor(x) === 0|x
gtcoder

1
এটি সর্বদা শেষে 9 হয়। স্থির করতে, আরম্ভ করতে l=11এবং আপনার সময় লুপ শর্তে স্যুইচ করুনwhile(--l)
গ্রেগ

@ গ্রেগ গুড পয়েন্ট ধন্যবাদ. আমি উত্তর আপডেট।
gtcoder

1
82 টি অক্ষর: a="0123456789".split(t='');for(l=11;--l;t+=a.splice(0|Math.random()*l,1));alert(t)- আপনার কোডটি লুপের সূচনা, শর্ত এবং অভিব্যক্তি যুক্তিগুলির জন্য পুরোপুরি ফিট করে। rপরিবর্তনশীল অপ্রয়োজনীয়।
জর্জ রিথ

4

সি #, 145 বাইট

Ungolfed

using System;
using System.Linq;
class P
{
    static void Main()
    {
        Enumerable.Range(0,10).OrderBy(g => Guid.NewGuid()).ToList().ForEach(Console.Write);
    }
}

Golfed

using System;using System.Linq;class P{static void Main(){Enumerable.Range(0,10).OrderBy(g => Guid.NewGuid()).ToList().ForEach(Console.Write);}}

1
আপনি ব্যবহার করতে পারেন Enumerable.Range(0,10), এবং আপনার foreachলুপে কোঁকড়ানো বন্ধনী প্রয়োজন নেই ।
রিক

3

জাভাস্ক্রিপ্ট (৮০ টি অক্ষর)

alert("0123456789".split("").sort(function(){return .5-Math.random()}).join(""))

জেএস-ফিডল: http://jsfiddle.net/IQAndreas/3rmza/


3
নোট করুন এটিতে তীর ফাংশনটি ব্যবহার করে আরও গল্ফ করা যেতে পারে (এটি বর্তমানে কেবল এফএফ-এ কাজ করে তবে শীঘ্রই alert("0123456789".split("").sort(n=>.5-Math.random()).join(""))
যেকোন

1
আপনার মাঝে returnএবং এর মধ্যে জায়গার দরকার নেই.5
টিবিস

1
@ গ্রেগ Shhhh ! সত্যিকারের রদবদল ফাংশনটি কত অক্ষর গ্রহণ করে সে সম্পর্কে আপনার কোনও ধারণা আছে ? ;)
আইকিউ আন্দ্রেয়াস

1
@ গ্রেগ এটি একটি এলোমেলো বিতরণ (ধরে নিলাম ম্যাথ.র্যান্ডম যথেষ্ট পরিমাণে এলোমেলো), এটি কেবল অভিন্ন নয়।
সুপারজেডি ২২৪

1
মূল ব্লগ পোস্ট চলে গেছে, উত্তরাধিকারীদের
গ্রেগ

3

কে / কোনা (6)

-10?10

জে হিসাবে, ?চুক্তি অপারেটর হয়; -বাহিনী মান পুনরাবৃত্তি না।


3

গণিত 40

সংখ্যাটি একটি স্ট্রিং হিসাবে তৈরি করা হয় যাতে প্রয়োজন হলে শূন্যকে প্রথম অক্ষর হিসাবে প্রদর্শিত হয়।

""<>RandomSample["0"~CharacterRange~"9"]

আউটপুট উদাহরণ

"0568497231"
"6813029574"

ব্যাখ্যা

"0"~CharacterRange~"9" `ক্যারেক্টাররেঞ্জ [" 0 "," 9 "]" এর জন্য ইনফিক্স স্বরলিপি these 6 "," 7 "," 8 "," 9 "}।

RandomSample[list]ডিফল্টরূপে তালিকার একটি ক্রম ফেরত দেয়। (এটি স্যাম্পলিং যখন পরামিতি অন্তর্ভুক্ত করা হয় অন্য ধরনের ব্যবহার করা যেতে পারে। যেমন RandomSample[list, 4], 4 অক্ষরের একটি র্যান্ডম নমুনা ফিরে আসবে কোন পুনরাবৃত্তি করেন।


তবে কেন প্রথম চরিত্র হিসাবে 0 প্রদর্শিত হবে?
অঙ্কুশ

ওপি অনুসারে, প্রোগ্রামটি অবশ্যই "সমস্ত অনুমোদিত চরিত্রের সমস্ত অনুমতি উত্পন্ন করতে সক্ষম হবে"।
ডেভিডসি

@ অঙ্কুশ এটি ইনফিক্স স্বরলিপি, সুতরাং "0" সর্বদা প্রথম চর নয়।
আজাসজা

আজাসজা ঠিক আছে। প্রোগ্রামটি যে কোনও ক্রম ছাড়তে পারে। এটি পরিষ্কার করতে আমি উপরে কিছু মন্তব্য যুক্ত করেছি।
ডেভিডসি


2

চতুর্থ, 72

needs random.fs : r ': '0 do i loop 9 for i 1+ random roll emit next ; r

গল্ফের জন্য ঘর এখনও আছে, তবে ফোর্থ এটিকে শক্ত করে তুলেছে। আমি মনে করি.


2

প্রোলগ, 177/302 টি অক্ষর

আমি প্রোলগের একজন শিক্ষানবিস, সুতরাং সম্ভবত এটি সর্বাধিক কনডেন্সড কোড নয়।

:- use_module(library(clpfd)).
sort(N) :-
    N = [N0,N1,N2,N3,N4,N5,N6,N7,N8,N9],
    domain([N0],1,9),
    domain([N1,N2,N3,N4,N5,N6,N7,N8,N9],0,9),
    all_different(N),
    labeling([],N).

রিটার্নস:

| ?- sort2(N).                                         
N = [1,0,2,3,4,5,6,7,8,9] ? ;
N = [1,0,2,3,4,5,6,7,9,8] ? ;
N = [1,0,2,3,4,5,6,8,7,9] ? ;
N = [1,0,2,3,4,5,6,8,9,7] ? ;
N = [1,0,2,3,4,5,6,9,7,8] ? 
yes

আপনি যদি এটি একটি পূর্ণসংখ্যা ফেরত চান:

:- use_module(library(clpfd)).
sort(M) :-
    N = [N0,N1,N2,N3,N4,N5,N6,N7,N8,N9],
    domain([N0],1,9),
    domain([N1,N2,N3,N4,N5,N6,N7,N8,N9],0,9),
    all_different(N),
    labeling([],N),
    M is (N0*1000000000)+(N1*100000000)+(N2*10000000)+(N3*1000000)+
         (N4*100000)+(N5*10000)+(N6*1000)+(N7*100)+(N8*10)+N9.

রিটার্নস:

| ?- sort(N).
N = 1023456789 ? ;
N = 1023456798 ? ;
N = 1023456879 ? ;
N = 1023456897 ? ;
N = 1023456978 ? 
yes

পরিবর্তে ব্যবহার:

labeling([down],N)

বিপরীত ক্রমে নম্বর দেয়:

| ?- sort(N).                                        
N = 9876543210 ? n
N = 9876543201 ? n
N = 9876543120 ? n
N = 9876543102 ? n
N = 9876543021 ? 
yes

পোস্ট করা কিছু অন্যান্য কোডের বিপরীতে, এটি সমস্ত সম্ভাব্যতা দেয় (কোনও পুনরাবৃত্তি ছাড়াই)।




2

ক্লোজার, 42

(println (apply str (shuffle (range 10))))

6209847315


উত্পন্ন নম্বরটি তার অংশ নয়, স্ক্রিনে দেখানো উচিত।
সিলেস্টার

2

জাভাস্ক্রিপ্ট, 83 টি অক্ষর

a=[];while(!a[9]){b=Math.floor(Math.random()*10);!a.includes(b)&&a.push(b)}alert(a)

চলার সময় অ্যারে পর্যন্ত 10 টি উপাদান থাকে।

0 - 9 থেকে এলোমেলো সংখ্যা তৈরি করা হচ্ছে তারপরে অ্যারেটি পরীক্ষা করুন এবং এই অ্যারেটি যুক্ত করে এটি অ্যারেতে যুক্ত করুন add


1
সাইটে স্বাগতম! :)
DJMcMayhem

1

এটি জেএমকে-র উত্তরের চেয়ে খুব ছোট নয়, তবে এখানে কিছুটা ছোট সি # সমাধান (135) রয়েছে:

using System;
using System.Linq;
class P { 
    static void Main() 
    { 
        Console.Write(string.Join("", "0123456789".OrderBy(g => Guid.NewGuid()))); 
    } 
}

সংক্ষিপ্ত (134):

using System;using System.Linq;class P{static void Main(){Console.Write(string.Join("", "0123456789".OrderBy(g => Guid.NewGuid())));}}

বিকল্প সংস্করণ (135):

using System;
using System.Linq;
class P { 
    static void Main() 
    { 
        "0123456789".OrderBy(g => Guid.NewGuid()).ToList().ForEach(Console.Write); 
    } 
}

সন্নিবিষ্ট:

using System;using System.Linq;class P{static void Main(){"0123456789".OrderBy(g => Guid.NewGuid()).ToList().ForEach(Console.Write);}}

এগুলির দৈর্ঘ্য সমান, তবে আপনি লিনাকের ফরইচ ফাংশন বা স্ট্রিংয়ের যোগদান ফাংশনটি ব্যবহার করতে চান কিনা তা নির্ভর করে। আমি "0123456789" পরিসীমাটি "0123456789" পরিসরের বানানটি এনুম্যুরেবল.রেঞ্জ (0, 10) ব্যবহার না করে স্ট্রিংয়ের মাধ্যমে দৈর্ঘ্যের 10 টি অক্ষর মুছে ফেলতে সক্ষম করেছিলাম।


1

লোগো , characters৪ টি অক্ষর

make "d 1234567890
repeat 10 [
    make "n pick d
    show n
    make "d butmember n d
]

সরবরাহিত তালিকার এলোমেলো আইটেমটি চয়ন করুন। বাটমেম্বার সরিয়ে ফেলা নির্দিষ্ট আইটেমের সমস্ত উপস্থিতি সহ তালিকা দেয়। দ্রষ্টব্য: সমস্ত লোগো বাস্তবায়ন butmemberকমান্ড সমর্থন করে না ।


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