সংখ্যা মুখস্থ করতে সহজ


41

মনে রাখার জন্য সহজ যে নাম্বারগুলি তাত্ত্বিকভাবে সহজে তৈরি হয় না

আপনার চ্যালেঞ্জ হ'ল যে কোনও ভাষাতে একটি প্রোগ্রাম / ফাংশন তৈরি করা যা এই মানদণ্ডগুলির সাথে ফিট করে অভিন্ন র্যান্ডম সংখ্যা উত্পন্ন করে:

  1. দৈর্ঘ্য হল 5 টি সংখ্যা

  2. দুটি পৃথক পুনরাবৃত্ত অঙ্কের জোড় রয়েছে

  3. পুনরাবৃত্ত অঙ্কগুলির একটি সেট শুরুতে বা শেষে হয় এবং অঙ্কগুলি একে অপরের পাশে থাকে

  4. বিজোড় সংখ্যাটি অন্য জোড়াটি দিয়ে ঘিরে থাকে

  5. দুটি সংখ্যার জোড়া এবং অন্যান্য সংখ্যা সবগুলিই অনন্য হওয়া উচিত

  6. আপনার প্রোগ্রামটি আপনার বিবেচনার ভিত্তিতে নেতৃস্থানীয় শূন্যগুলির সাথে সংখ্যাগুলি সমর্থন করতে পারে। যদি শীর্ষস্থানীয় শূন্যগুলি সমর্থিত হয় তবে সেগুলি অবশ্যই আউটপুটটিতে অবশ্যই অন্তর্ভুক্ত করা উচিত: 06088, 6088 নয় leading

পরীক্ষার মামলা

গৃহীত ফলাফল:

55373
55494
67611
61633
09033
99757
95944
22808
65622
22161

গৃহীত ফলাফলগুলি নয়:

55555
77787
85855
12345
99233
12131
abcde
5033

আরও গ্রহণযোগ্য পরীক্ষার কেসগুলি এই পেস্টবিন লিঙ্কটিতে পাওয়া যাবে ।

এগুলি অজগর প্রোগ্রামটি দিয়ে তৈরি করা হয়েছিল:

আমদানি এলোমেলো
আমার জন্য পরিসীমা (100):

    যদি random.randint (0,100)> = 50: # শুরুতে স্পর্শ করা পুতুল যদি সত্য হয়
        টেম্প = [] অ্যারেটিংয়ের অ্যারে
        temp.append (random.randint (0,9)) # এলোমেলো অঙ্ক
        temp.append (টেম্প [0]) # একই অঙ্কটি আবার যুক্ত করুন

        x = random.randint (0,9)
        যখন x == অস্থায়ী [0]:
            x = random.randint (0,9)
        temp.append (x) # অপর একটি অনন্য অঙ্ক যুক্ত করুন

        y = random.randint (0,9)
        যখন y == অস্থায়ী [0] বা y == টেম্প [2]:
            y = random.randint (0,9)
        temp.append (y) # অন্য একটি অনন্য অঙ্ক এবং পূর্ববর্তী অনন্য অঙ্ক যুক্ত করুন
        temp.append (x) এর

    অন্য: # স্পর্শী জুটি শেষে
        টেম্প = [] অ্যারেটিংয়ের অ্যারে  
        temp.append (random.randint (0,9)) # এলোমেলো অঙ্ক

        # অনন্য না হলেও, আবার চেষ্টা করুন
        x = random.randint (0,9)
        যখন x == অস্থায়ী [0]:
            x = random.randint (0,9)
        temp.append (x) # অপর একটি অনন্য অঙ্ক যুক্ত করুন


        temp.append (টেম্প [0]) # আবার একই 0 তম সংখ্যায় যুক্ত করুন


        y = random.randint (0,9)
        যখন y == অস্থায়ী [0] বা y == টেম্প [1]:
            y = random.randint (0,9)
        temp.append (y) # একবারে অন্য একটি অনন্য অঙ্ক যুক্ত করুন
        temp.append (Y)

    টেম্পাস্টার = ""
    আমি টেম্পারেটে:
        টেম্পাস্টার + = স্ট্রিম (i)
    মুদ্রণ tempstr

এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর!


5
আমি "সম্ভাব্য আউটপুট (সম্ভাব্যতা> 0)" এবং "সম্ভাব্য আউটপুটগুলি (সম্ভাব্যতা = 0)" এর পরিবর্তে "সত্যবাদী" এবং "মিথ্যা" পরামর্শ দিচ্ছি - যা আমার মনে হয় আপনি যা জিজ্ঞাসা করছেন তার সাথে এটি আরও মিলছে (এবং পাইথনের সাথে )।
খুলনাশেঠ না'বাড়িয়া

9
আমাদের কি 09033 এর মতো একটি আউটপুট একটি অগ্রণী শূন্য সহ মুদ্রণ করতে হবে?
xnor

3
যদি সম্ভাবনাটি অভিন্ন হয় তবে আপনি কি সেই প্রশ্নটিতে তা নির্দিষ্ট করতে পারেন। ডিফল্টরূপে, randomঅভিন্নরূপে এর অর্থ এই নয়
জো কিং

3
সমঝোতার জন্য বুঝতে 99233 যোগ করুন
l4m2

3
পিপিসিজিতে আপনাকে স্বাগতম! ভাল প্রথম চ্যালেঞ্জ।
জোনাথন অ্যালান

উত্তর:


21

05 এ বি 1 , 11 বাইট

žh.r3£ûÁÂ)Ω

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

ব্যাখ্যা

žh            # push "0123456789"
  .r          # random shuffle
    3£        # take the first 3
              # EX: 152
      û       # palendromize
              # EX: 15251
       Á      # rotate right
              # EX: 11525
        Â)    # pair with its reverse
              # EX: [11525, 52511]
          Ω   # pick one at random

আমি ভাবছি যদি Emigna হা ... শীর্ষের উত্তরটি +1 দেখেন
ম্যাজিক অক্টোপাস উরান

9

সিজেএম (16 বাইট)

YmrG*98+ZbA,mrf=

অনলাইন ডেমো

দ্রষ্টব্য: আমি ধরে নিয়েছি যে "অনন্য" ওপি দ্বারা আসলে "স্বতন্ত্র" অর্থ "

এছাড়াও 16 বাইট জন্য:

98ZbA,mrf=W2mr#%
98ZbA,mrf=_W%]mR

ব্যবচ্ছেদ

Ymr    e# Select a random number from [0 1]
G*98+  e# Multiply by 16 and add 98 to get 98 or 114
Zb     e# Base conversion in base 3 to get [1 0 1 2 2] or [1 1 0 2 0]
A,mr   e# Shuffle the numbers from 0 to 9
f=     e# Map "select the item at this index"

অন্যান্য রূপগুলি ব্যবহার করে উত্পন্ন [1 0 1 2 2]হয় এবং তারপরে ফলাফল বা এর বিপরীত নির্বাচন করুন।


9

পার্ল 5 , 81 63 56 বাইট

@ ডোমহাস্টিংস থেকে অনুপ্রেরণা সহ 7 বাইট কাটা

উপযুক্ত প্যাটার্ন থেকে সংখ্যাটি তৈরি করা।

@q{0..9}++;say+(keys%q)[.5>rand?(2,2,0,1,0):(0,1,0,2,2)]

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


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

মানদণ্ডের সাথে মেলে এমন কোনওটি না পাওয়া পর্যন্ত এলোমেলোভাবে 5 অঙ্কের সংখ্যাগুলি বেছে নিন।

$_=sprintf'%05d',0|rand 1E5until(/(.)\1(.)(.)\2/||/(.)(.)\1(.)\3/)&&$1-$2&$2-$3&$1-$3;say

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


এলোমেলোতার জন্য হ্যাশ কীগুলি ব্যবহার করে দুর্দান্ত কৌশল! আমি মনে করি এটি -8 এর সমতুল্য, যদিও আমি সম্ভবত একটি প্রান্ত কেস মিস করেছি ... অনলাইনে চেষ্টা করে দেখুন!
ডম হেস্টিংস

1
হ্যাশ র্যান্ডমাইজেশন। উজ্জ্বল! সংক্ষিপ্ত
টন হসপেল

প্রশ্নটি time%2যথেষ্ট পরিমাণে এলোমেলো কিনা , যেহেতু এটি এক অর্থে ব্যবহারকারীর নিয়ন্ত্রণে রয়েছে।
এক্সকালি

@ এক্সকালি এটি sensক্যমত্য বলে মনে হচ্ছে যে এটি ঠিক আছে যতক্ষণ আপনি এটি একবার ব্যবহার করেন তাই আমি মনে করি আপনার ভাল হওয়া উচিত।
FryAmTheEggman

8

পাইথন 2 , 80 বাইট

from random import*
a,b,c=sample(range(10),3)
print[a,a,b,c,b][::choice((-1,1))]

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

অঙ্কের একটি তালিকা আউটপুট করে।

পাইথন 2 , 83 বাইট

from random import*
a,b,c=sample('0123456789',3)
print(a*2+b+c+b)[::choice((-1,1))]

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

আউটপুট একটি সংখ্যা।


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

7

এপিএল (ডায়ালগ ইউনিকোড) , 22 21 20 18 17 বাইট

(3∨?2)⌽1↓,∘⌽⍨3?10

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

যদি সর্বদা একই বিন্যাসে সংখ্যাগুলি আউটপুট করা গ্রহণযোগ্য হয় তবে এটিকে 12 বাইটে ছোট করা যেতে পারে, হয় হয় 1⌽1↓,∘⌽⍨3?10বা হয় 3⌽1↓,∘⌽⍨3?10

অপ্রয়োজনীয় অপসারণ করে একটি বাইট সংরক্ষণ করেছেন

এইচ.পি.উইজকে বাইট ধন্যবাদ এবং তারপরে টিপসের কারণে আরও 2 টি বাইট সংরক্ষণ করা হয়েছে।

এনজিএন-কে একটি বাইট সংরক্ষণ করা হয়েছে।

ফাংশন ধরে নেওয়া হয় ⎕IO←0( I ndex O rigin)।


কিভাবে?

(3∨?2)⌽1↓,∘⌽⍨3?10  Anonymous function.
              3?10   Deal 3 (distinct) random numbers from 0 to 9. (Assume 1 2 3)
                   Use that as both arguments for:
          ,∘⌽       Rotate (⌽), then concatenate (,).
                    Yields 3 2 1 1 2 3.
        1          Drop the first element. Our vector is now 2 1 1 2 3
                   Rotate the vector to the left using as argument:
(  ?2)              Roll 0 or 1 and...
 3                 Do the GCD between 3 and the result. (30=3; 31=1.)
                    This yields either 1 1 2 3 2 or 2 3 2 1 1.

ইনপুট দেওয়া যাবে না
ড্রাম

@drham- এ ফাংশনটির কোনও ইনপুট নেই। এই ক্ষেত্রে, টিআইও ক্ষেত্রটি Inputফাংশনটি কল করতে ব্যবহৃত হয় g। এছাড়াও, g←বাইট গণনাতে এটি গণনা করা হয় না কারণ এটি প্রয়োজনীয় নয়, এটি কেবল ফাংশনটি কল করতে ব্যবহৃত হচ্ছে।
জে. সাল্লা

gইনপুট বিভাগে যে সত্য বলা হয় তা কেবল
টিআইওতে

(4∨?2)একটি বাইট ওভার বাঁচায়1 4[?2]
এইচ.পি.উইজ

1
fট্রেনকে বরাদ্দ না দিয়ে এবং ব্যবহার না করে আপনি বাইটগুলিও সংরক্ষণ করতে পারেন । যদিও আমি এটি আপনার কাছে রেখে দেব :)
এইচপিউইজ

6

জাভা 8, 145 136 125 119 বাইট

v->{String r;for(;!(r=(int)(Math.random()*1e5)+"").matches("((.).?\\2){2}")|r.chars().distinct().count()<3;);return r;}

-9 বাইটস @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ
-11 বাইটস @ রিকহিচকককে ধন্যবাদ ।
-6 বাইট @ নেভায়ে ধন্যবাদ ।

ব্যাখ্যা:

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

v->{            // Method with empty unused parameter and String return-type
  String r;     //  Result-String
  for(;!(r=(int)(Math.random()*1e5)+"")
                //  Generate a random number in the range [0; 100000) and set it to `r`
        .matches("(.).*\\1(.).*\\2")
                //   And continue doing this as long as it doesn't match the regex above,
       |r.chars().distinct().count()<3;);
                //   or doesn't have three distinct digits
  return r;}    //  Return the result


@ অলিভিগ্রগ্রোয়েয়ার আপনি কি এই সঠিক চ্যালেঞ্জের সময়ে পোস্ট করেছেন? ..: এস এটি পরিচিত বলে মনে হচ্ছে, তবে এটি অবশ্যই এই চ্যালেঞ্জ নয় ..
কেভিন ক্রুইজসেন

বিড়াল জিনিসটি আমার লিঙ্কটি ভেঙে দিয়েছে ... যাইহোক, এখানে গল্ফ রয়েছে:v->{String r="";for(;!r.matches("(.)\\1(.).\\2|(.).\\3(.)\\4")|r.chars().distinct().count()!=3;r=(int)(Math.random()*1e5)+"");return r;}
অলিভিয়ের গ্রাগোয়ার

1
আমি মনে করি (.).*\\1(.).*\\211 টি বাইট সাশ্রয় করে আপনার রেজেক্সটি ছোট করা যেতে পারে ।
রিক হিচকক

1
119 বাইট:v->{String r;for(;!(r=(int)(Math.random()*1e5)+"").matches("((.).?\\2){2}")|r.chars().distinct().count()<3;);return r;}
নেভায়ে

5

জেলি , 23 বাইট

⁵Ḷṗ3⁼Q$ÐfXµḢ;`;ŒBW;U$µX

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


ভাল
লাগল

7
@ ড্রাম :) ধন্যবাদ আপনি শীঘ্রই সক্ষম হবেন, একবার আপনার সক্রিয় প্রশ্ন সর্বাধিক সক্রিয় সদস্যরা জাগ্রত হলে সম্ভবত প্রচুর পরিমাণে উত্সাহ পাবেন। ভাল প্রথম চ্যালেঞ্জ এবং পিপিসিজিতে স্বাগতম!
হাইপারনিউটারিনো

5

জেলি , 12 11 বাইট

ØDẊ⁽0yṃ,U$X

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


ব্যাখ্যা


ØDẊ⁽0yṃ,U$X    Niladic link, generate a random string.
ØD             List of digits, ['0','1','2',...,'9'].
  Ẋ            Random shuffle.
   ⁽0y         Number 13122.
      ṃ        Base decompression. (*)
       ,U$     Pair with its upend (reverse).
          X    Choose one (it or its reversed) randomly.

(*) এর সঠিক যুক্তিটি হল তালিকাটি ['0','1','2',...,'9'], এলোমেলোভাবে পরিবর্তিত হওয়া, 10 টি উপাদান রয়েছে। সুতরাং সংখ্যাটি 13122বাইজেক্টিক বেস 10 ( [1,3,1,2,2]) এবং সূচকে তালিকায় রূপান্তরিত হবে (সুতরাং তালিকাটি যদি lথাকে তবে পরমাণুর ফেরতের মান হয় [l[1],l[3],l[1],l[2],l[2]]যেখানে জেলি 1 ভিত্তিক সূচক ব্যবহার করে)


(05AB1E উত্তর হিসাবে একই ধারণা, স্বাধীনভাবে প্রকাশিত হয়েছে)
ব্যবহারকারী 202729

... 05AB1E জেলি টাই করতে সক্ষম হওয়ার কারণে 6 টি আপগেট পেয়েছে, 05 জে 1 জে জেতে না পারার কারণে জেলি কেবল 2 টি আপগেট পাবে?
ব্যবহারকারী 202729

2
আমি আপনার উত্তর upvated। -> স্পিচ 100 <---
এল_চর্চ

4

জাভাস্ক্রিপ্ট (ES6), 79 বাইট

f=([,,d,a,b,c]=[...Math.random()+f])=>a-b&&a-c&&b-c?d&1?a+a+b+c+b:b+c+b+a+a:f()

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

কিভাবে?

Math.random()[০.১.১) এ এলোমেলোভাবে ভাসা দেয় । আমরা +fজোর করে একটি স্ট্রিংয়ে জোর করতে ব্যবহার করি । আমরা অগ্রণী শূন্য এবং দশমিক বিন্দুকে অগ্রাহ্য করে না [,,( প্রথমটির জন্য দুটি অক্ষরের বিন্যাসকে অ্যাসাইনমেন্ট করে) এবং প্রথম 4 দশমিক অঙ্কটি ডি , , বি এবং সি তে সংগ্রহ করি

যদি , এবং তিনটি পৃথক পূর্ণসংখ্যা হয়, তবে আমরা এএবিসিবি বা বিসিবিএএ ফর্ম্যাট ( সিদ্ধান্ত নিতে ডি এর সমতা ব্যবহার করে ) এর মধ্যে চূড়ান্ত আউটপুট তৈরি করি । অন্যথায়, তারা না হওয়া পর্যন্ত আমরা আবার চেষ্টা করি।

Math.random()পর্যাপ্ত দশমিক স্থান ছাড়াই মান ফিরিয়ে দেওয়ার অত্যন্ত অসম্ভব ঘটনার ক্ষেত্রে, পরীক্ষাটি ব্যর্থ হতে বাধ্য করে এবং পুনরাবৃত্তির কলটি ঘটতে বাধ্য করে, কমপক্ষে সিটিকে একটি অ-অঙ্কের অক্ষরে সেট করা হবে। যদি , এবং সি বৈধ পূর্ণসংখ্যা হয় তবে d একটি বৈধ পূর্ণসংখ্যারও গ্যারান্টিযুক্ত, সুতরাং এটির পরীক্ষা করার দরকার নেই।


উভয় &&হতে পারে &। এছাড়াও, কিভাবে [,,a,b,c,d]কাজ করে? আমি [,,আগের মতো ইনপুট কখনও দেখিনি ।
কেভিন ক্রুইজসেন

1
@KevinCruijssen একটি bitwise এবং জন্য উদাহরণস্বরূপ ব্যর্থ হবে a=4, b=2, c=1কারণ 4-2&4-1&2-1 == 2&3&1 == 0। আমি ভেরিয়েবল অ্যাসাইনমেন্ট সম্পর্কে একটি সংক্ষিপ্ত ব্যাখ্যা যুক্ত করেছি।
আর্নল্ড

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

এটি মাত্র দুর্দান্ত +1
লুইস ফিলিপ দে জেসুস মুনোজ


2

নোংরা , 33 বাইট

--numeric-outputপতাকাটি ব্যবহার করে তাই এটি পাঠযোগ্য otherwise

10⭧[1w#%D⅋№3⤱≠1ẅ&]1wẂ⭿⭣1u∅#1∧◌ŪW‼

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

ব্যাখ্যা:

10⭧              put 10 on the right stack
[1w#%D⅋№3⤱≠1ẅ&] loop until there are 3 distinct positive numbers below 10 in the top stack
1wẂ              clean-up the right and top stacks
⭿               copy the top and bottom of the top stack to each-other
⭣                swap the first two elements of the top stack
1u               rotate the top stack by 1
∅#1∧◌ŪW          reverse the top stack half of the time
‼                print the top stack

2

কাঠকয়লা , 34 বাইট

≔‽χθ≔‽Φχ⁻ιθη↑I⟦θθη‽Φχ×⁻ιθ⁻ιηη⟧¿‽²‖

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

  χ                                 Predefined variable 10
 ‽                                  Random element from implicit range
≔  θ                                Assign to variable `q`
       χ                            Predefined variable 10
      Φ                             Filter on implicit range
         ι                          Current value
          θ                         Variable `q`
        ⁻                           Subtract
     ‽                              Random element
    ≔      η                        Assign to variable `h`
                    χ               Predefined variable 10
                   Φ                Filter on implicit range
                       ι  ι         Current value
                        θ           Variable `q`
                           η        Variable `h`
                      ⁻  ⁻          Subtract
                     ×              Multiply
                  ‽                 Random element
               θθ                   Variable `q`
                 η          η       Variable `h`
              ⟦              ⟧      Wrap 5 values into array
             I                      Cast array elements to string
            ↑                       Make array print horizontally
                                ²   Literal 2
                               ‽    Random element from implicit range
                              ¿     If
                                 ‖  Reflect

2

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


10*
Y`w`d
V?`
Lv$7`.(.)
$1$<'$'
O?`...?

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

নেতৃস্থানীয় শূন্যগুলির সাথে স্ট্রিংগুলি মুদ্রণ করতে পারে।

ব্যাখ্যা


10*

স্ট্রিংটি 10 ​​আন্ডারস্কোর থেকে শুরু করুন।

Y`w`d

চক্রাকারে শব্দের অক্ষরগুলি অঙ্কগুলিতে প্রতিলিপি করুন। এটি কিছুটা অদ্ভুত। wএবং dনিম্নলিখিত পংক্তি যথাক্রমে সংক্ষিপ্ত আছেন:

w: _0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
d: 0123456789

চক্রীয় অনুলিখনের অর্থ প্রথমত, উভয় স্ট্রিংগুলি তাদের এলসিএম দৈর্ঘ্যে পুনরাবৃত্তি হয়:

_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_012345...
0123456789012345678901234567890123456789012345678901234567890123456789...

যেহেতু স্ট্রিংয়ের দৈর্ঘ্য 53 এবং 10 টি কপিরাইট, তাই প্রতিটি অনুলিপি _একটি পৃথক অঙ্কের সাথে যুক্ত হয়। আর এখন সাইক্লিক লিপ্যন্তর প্রতিস্থাপন করবে আমি তম কপি _সঙ্গে আমি যে প্রসারিত তালিকায় তম পেয়ারিং। সুতরাং আমরা নিম্নলিখিত স্ট্রিং দিয়ে শেষ:

0369258147

আক্ষরিক স্ট্রিং উপর একটি একক বাইট সংরক্ষণ করার জন্য যে সমস্ত 0369258147, তাই কি আমি মনে করি? : ডি

যাইহোক, আমরা এখন 10 সংখ্যার একটি স্ট্রিং পেয়েছি।

V?`

এটি অঙ্কগুলি পরিবর্তন করে। সুতরাং প্রথম তিনটি সংখ্যা তিনটি পৃথক সংখ্যার অভিন্ন র্যান্ডম নির্বাচন হবে।

Lv$7`.(.)
$1$<'$'

আমরা স্ট্রিংয়ের সাথে মেলে ...ABCএবং এটিকে পরিণত করি BABCC। আমরা এটি করার উপায়টি ক্রমহীন পাগল হলেও আরও সোজাসাপ্ট পদ্ধতির তুলনায় কেবল একবারে একটি বাইট সংরক্ষণ করে। আমরা প্রথমে সমস্ত ওভারল্যাপিং ( v) জোড়া অক্ষর মিলিয়ে দ্বিতীয়টিকে ( .(.)) ক্যাপচার করি । (তারপর আমরা শুধুমাত্র 8th ম্যাচ ধরে রাখা 7, শূন্য ভিত্তিক) যা ABমধ্যে ...ABC। তারপরে আমরা $এটি ( ) এর সাথে প্রতিস্থাপন করব : B( $1), ABC( $<'যা ম্যাচের প্রত্যয়- ম্যাচের বিভাজক বাম), C( $'যা ম্যাচের প্রত্যয়টি নিজেই)।

O?`...?

অবশেষে, আমরা 3 বা 2 টি অক্ষরের সাথে মেলে এবং মিলগুলি শ্যাফাল করি, আমাদের BABCCবা হয় বা CCBABএলোমেলোভাবে দেয়।


2

আর , 78 বাইট

z=sample(0:9,3)[c(2,1:3,3)];cat(paste(`if`(runif(1)>.5,z,rev(z)),collapse=''))

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

sampleপছন্দ থেকে 3 র্যান্ডম মান 0:9যা মত একটি ভেক্টর মধ্যে স্থাপন করা হয়: a b a c c। এখন আমাদের কাছে এই ভেক্টরটি বিপরীত করার, এবং তারপরে সংমিশ্রণ এবং মুদ্রণের 50/50 টি সুযোগ রয়েছে।


খুব সুন্দর! 62 বাইট ; দেখে মনে হচ্ছে আপনি কিছুটা অনুশীলনের বাইরে রয়েছেন;)
জিউস্পেপ

আমি ব্যবহারের দিকে তাকালাম rt, তবে কোনও কারণে আমি ভেবেছিলাম এটি আরও দীর্ঘ হয়েছে ....
জেএডি

এবং (নো-অপশন হিসাবে পাওয়া একটি ভাল সন্ধান :)
জাদাদ

@ জিউসপ্পে আপনার অ্যাঞ্জারটি আরও 55 বাইটে গল্ফ করা যেতে পারে ... টিআইও
জাইসি

2

পিএইচপি, 73 72 66 বাইট

<?=strtr(rand()%2?AABCB:BCBAA,ABC,join(array_rand(range(0,9),3)));

সম্পাদনা: @ ডেভিডের পরামর্শের জন্য 66 বাইট ধন্যবাদ।

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


আপনি এটি দিয়ে এটি 65 এ পেতে পারেন:<?=strtr(rand()%2?AABCB:BCBAA,ABC,rand(0,9).rand(0,9).rand(0,9));
ডেভিড

@ ডেভিড দুর্ভাগ্যক্রমে আপনার সমাধান 5 টি নিয়ম লঙ্ঘন করে like এটির মতো হতে পারে rand(0,3).rand(4,6).rand(7,9)তবে এটি আবার "অভিন্ন র্যান্ডম" নয়। BTW। আমি এর সাথে পরিচিত ছিলাম না rand()%2, সুতরাং আপনার মন্তব্য আমাকে আমার সমাধানটিকে কিছুটা উন্নত করতে সহায়তা করেছে।
retroaver

1
আহ, হ্যাঁ, আপনি ঠিক বলেছেন। আমি সেই নিয়মটি দেখিনি। আমি এক যে এখন কাজ করে, এ পেয়েছেন 66 বাইট: <?=strtr(rand()%2?AABCB:BCBAA,ABC,join(array_rand(range(0,9),3)));। আপনি পরীক্ষা করতে পারেন যে array_randএর দ্বিতীয় প্যারামিটারটি এখানে কেবল অনন্য ফলাফল দেয় (10000 এরও বেশি পুনরুক্তি পরীক্ষা করা)।
ডেভড

@ ডেভিড ধন্যবাদ, সবেমাত্র আমার পোস্ট আপডেট!
retroaver

1

লাল , 147, 146 125 বাইট

func[][b: copy[]d:[1 1 2 3 2]if 1 = random 2[d: reverse d]while[4 > length? b][alter b(random 10)- 1]foreach a d[prin b/(a)]]

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

Ungolfed:

f: func[] [                       function with no arguments
    b: copy []                    an empty list
    d: [1 1 2 3 2]                preset digits at positons
    if 1 = random 2 [             generate 1 or 2 
        d: reverse d]             based on this choose to reverse the positions list
    while [4 > length? b] [       while we haven't chosen 3 different digits
        alter b (random 10) - 1   pick a random digit, if it's not in the list already
                                  append it to the list, otherwise remove it
    ]
    foreach a d [                 for each position
       prin b/(a)]                print the corresponding digit 
]



1

পাইথন 3 + নম্পি, 69 বাইট

from pylab import*
r=choice
i=r(2)
print(r(10,3,0)[[1-i,0,1,2,-1-i]])

ব্যাখ্যা

from pylab import*     
r=choice               # `choice` takes a range, number of samples, and wether repetition is allowed
i=r(2)                 # Single value in [0,1] to specify if repeated digits come on right or left
print(r(10,3,0)[[1-i,0,1,2,-1-i]])    # Construct output using index list and 3 random integers


0

জে , 35 বাইট

[:u:48+[:|.^:(?&2:)2 2 1 0 1{3?10"_

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

আমি নিশ্চিত এটি আরও আরও গল্ফ করা যেতে পারে।

ব্যাখ্যা:

  3?10             - generates 3 different digits
7 0 3

  2 2 1 0 1{       - constructs a list using digits positions 0, 1 and 2

  2 2 1 0 1{3?10   
3 3 0 7 0

  |.^:(?&2:)       - generates 0 or 1 and if 1, reverses the list 

  |.^:(?&2:)2 2 1 0 1{3?10
0 7 0 3 3

   u:48+              - converts to char by adding 48 to each digit
   u:48+|.^:(?&2:)2 2 1 0 1{3?10
07033
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.