প্রদত্ত বিট গণনা সহ সমস্ত ASCII অক্ষর


30

(@ চাসব্রাউনকে ধন্যবাদ সহ শিরোনাম)

স্যান্ডবক্স

পটভূমি

এই চ্যালেঞ্জটি সম্প্রতি প্রকাশিত একটি প্রশ্নের দ্বারা অনুপ্রাণিত পাজলিং স্ট্যাক এক্সচেঞ্জে । আপনি যদি মূল প্রশ্নে আগ্রহী হন তবে দয়া করে নির্দ্বিধায় লিঙ্কটি অনুসরণ করুন। যদি তা না হয় তবে আমি এখানে বিশদ নিয়ে আপনাকে বিরক্ত করব না।

ঘটনাগুলি

প্রতিটি মুদ্রণযোগ্য স্ট্যান্ডার্ড ASCII অক্ষর অন্তর্ভুক্ত 32 এবং 126 এর মধ্যে দশমিক মান থাকে। এগুলিকে 100000 থেকে 1111110 অন্তর্ভুক্ত করে তাদের সংশ্লিষ্ট বাইনারি সংখ্যায় রূপান্তর করা যেতে পারে। আপনি যখন এই বাইনারি সংখ্যার বিটগুলি যোগ করেন আপনি সর্বদা 1 থেকে 6 এর মধ্যে একটি পূর্ণসংখ্যার সাথে সমাপ্ত হন।

চ্যালেঞ্জ

ইনপুট হিসাবে সমেত 1 এবং 6 এর মধ্যে একটি পূর্ণসংখ্যা দেওয়া, এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা প্রিন্টযোগ্য মানক ASCII অক্ষরের সমস্ত গ্রহণযোগ্য বিন্যাসে আউটপুট দেয় যেখানে তাদের বাইনারি মানের বিটের যোগফল ইনপুট পূর্ণসংখ্যার সমান হয়।

উদাহরণ / পরীক্ষার কেস

1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'

একটি অব্যক্ত পাইথন রেফারেন্স প্রয়োগকরণ এখানে উপলব্ধ (টিআইও)

নিয়ম

  1. ধরুন ইনপুটটি সর্বদা 1 থেকে 6 এর মধ্যে একটি পূর্ণসংখ্যা (বা একটি পূর্ণসংখ্যার স্ট্রিং উপস্থাপনা) হবে।
  2. ফলাফলগুলি প্রদর্শন করতে আপনি কোনও প্রোগ্রাম লিখতে পারেন বা তাদের ফিরিয়ে দেওয়ার জন্য কোনও ফাংশন লিখতে পারেন।
  3. আউটপুট যে কোনও যুক্তিসঙ্গত ফর্ম্যাটে হতে পারে তবে সমস্ত ইনপুটগুলির জন্য অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে । যদি আপনি একটি উদ্ধৃত স্ট্রিং আউটপুট চয়ন করেন তবে একই ধরণের উদ্ধৃতি অবশ্যই সমস্ত ইনপুটগুলির জন্য ব্যবহার করা উচিত।
  4. স্ট্যান্ডার্ড লুফোলগুলি যথারীতি নিষিদ্ধ।
  5. এটি কোড গল্ফ তাই প্রতিটি ভাষার জিততে সংক্ষিপ্ততম কোড।

দশমিক অ্যাস্কি মানগুলির একটি তালিকা কী আমাদের ফিরিয়ে / মুদ্রণ করার অনুমতি দেওয়া হয় বা অক্ষর আকারে (যেমন, 63বনাম ?) আকারে আমাদের থাকা দরকার ?
বেনিয়ামিন উরখার্ট

1
প্রকৃত চরিত্রগুলি অবশ্যই হওয়া উচিত।
এলপিড্রো

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

পছন্দ করেছেন সে কারণেই আমি ভেবেছিলাম এটি কেবল অতিরিক্ত নিয়ম হিসাবে ফেলে দেওয়া আকর্ষণীয় হতে পারে :-)
এলপেড্রো

1
@ এলপিড্রো আমি নিশ্চিত ছিলাম না যে কি করা উচিত কারণ প্রথম উদাহরণে একটি জায়গা রয়েছে বলে সম্ভবত কিছু উদ্ধৃতি পাওয়া ভাল ধারণা, তবে স্বাভাবিক উক্তি দুটিই আউটপুটে প্রদর্শিত হবে: সম্পাদনা করুন: সম্ভবত ফরাসি গিলমেট ব্যবহার করুন ( « »)? : ডি
flawr

উত্তর:


29

8088 সমাবেশ, আইবিএম পিসি ডস, 35 30 29 বাইট

মেশিন কোড:

be81 00ad 8afc b330 b108 d0c8 12dd e2fa 3afb 7504 b40e cd10 fec0 79ea c3

তালিকা:

BE 0081     MOV  SI, 081H   ; SI = memory address of command line string
AD          LODSW           ; AL = start ASCII value (init to 20H from space on cmd line)
8A FC       MOV  BH, AH     ; BH = target number of bits (in ASCII)
        CHR_LOOP:
B3 30       MOV  BL, '0'    ; BL = counter of bits, reset to ASCII zero
B1 08       MOV  CL, 8      ; loop through 8 bits of AL
        BIT_LOOP:
D0 C8       ROL  AL, 1      ; rotate LSB of AL into CF
12 DD       ADC  BL, CH     ; add CF to BL (CH is always 0) 
E2 FA       LOOP BIT_LOOP   ; loop to next bit
3A FB       CMP  BH, BL     ; is current char the target number of bits?
75 04       JNE  NO_DISP    ; if not, do not display
B4 0E       MOV  AH, 0EH    ; BIOS write char to screen function
CD 10       INT  10H        ; display ASCII char in AL (current char in loop)
        NO_DISP: 
FE C0       INC  AL         ; increment char to next ASCII value
79 EA       JNS  CHR_LOOP   ; if char <= 127, keep looping
C3          RET             ; return to DOS

স্বতন্ত্র পিসি ডস এক্সিকিউটেবল প্রোগ্রাম, কমান্ড লাইন থেকে ইনপুট নম্বর। কনসোল উইন্ডোতে আউটপুট প্রদর্শিত হবে।

এখানে চিত্র বর্ণনা লিখুন

ABCT.COM (AsciiBitCounT) ডাউনলোড করে পরীক্ষা করুন ।


8
এক মুহুর্তের জন্য আমি ভেবেছিলাম এটি "ডাউনলোড করুন এবং এটি এ.বি.সি.টি.কোম" পরীক্ষা করুন ", যেন আপনি এই উত্তরটির জন্য একটি ডোমেন নিবন্ধভুক্ত করেছেন।
স্পার

14

সিপি-1610 সমাবেশ ( Intellivision ), 20 DECLEs 1 = 25 বাইট

আর -0 এ N এবং আর 4 এ আউটপুট বাফারে একটি পয়েন্টার নেয় । বাফারে সমস্ত মিলে যাওয়া চরিত্রগুলি লিখে এবং NUL এর সাথে ফলাফলের সমাপ্তি চিহ্নিত করে ।

                ROMW    10              ; use 10-bit ROM width
                ORG     $4800           ; map this program at $4800

                ;; ------------------------------------------------------------- ;;
                ;;  test code                                                    ;;
                ;; ------------------------------------------------------------- ;;
4800            EIS                     ; enable interrupts

4801            MVII    #$103,    R4    ; set the output buffer at $103 (8-bit RAM)
4803            MVII    #2,       R0    ; test with N = 2
4805            CALL    getChars        ; invoke our routine

4808            MVII    #$103,    R4    ; R4 = pointer into the output buffer
480A            MVII    #$215,    R5    ; R5 = backtab pointer

480C  draw      MVI@    R4,       R0    ; read R0 from the buffer
480D            SLL     R0,       2     ; R0 *= 8
480E            SLL     R0
480F            BEQ     done            ; stop if it's zero

4811            ADDI    #7-256,   R0    ; draw it in white
4815            MVO@    R0,       R5

4816            B       draw            ; go on with the next entry

4818  done      DECR    R7              ; loop forever

                ;; ------------------------------------------------------------- ;;
                ;;  routine                                                      ;;
                ;; ------------------------------------------------------------- ;;
      getChars  PROC

4819            MVII    #32,      R1    ; start with R1 = 32

481B  @loop     MOVR    R1,       R3    ; copy R1 to R3
481C            CLRR    R2              ; clear R2
481D            SETC                    ; start with the carry set

481E  @count    ADCR    R2              ; add the carry to R2
481F            SARC    R3              ; shift R3 to the right (the least
                                        ; significant bit is put in the carry)
4820            BNEQ    @count          ; loop if R3 is not zero

4822            CMPR    R2,       R0    ; if R2 is equal to R0 ...
4823            BNEQ    @next

4825            MVO@    R1,       R4    ; ... write R1 to the output buffer

4826  @next     INCR    R1              ; advance to the next character
4827            CMPI    #127,     R1    ; and loop until 127 is reached
4829            BLT     @loop

482B            MVO@    R3,       R4    ; write NUL to mark the end of the output

482C            JR      R5              ; return

                ENDP

এন = 2 এর আউটপুট

এনবি: উদ্বোধনী বন্ধনী দেখতে অনেকটা ইন্টেলিভিশন ফন্টের উদ্বোধনী বর্গক্ষেত্র বন্ধনীর মতো দেখতে লাগে। যদিও উভয় চরিত্রই আলাদা।

আউটপুট

jzIntv থেকে স্ক্রিনশট


1. একটি সিপি -1610 অপকোডটি 10-বিট মান সহ এনকোড করা হয়েছে, এটি একটি 'ডিসেল' হিসাবে পরিচিত। এই রুটিনটি 20 ডিসিইএলসিই লম্বা, $ 4819 থেকে শুরু হয়ে $ 482C এ সমাপ্ত (অন্তর্ভুক্ত)।


5
কেবলমাত্র (ক) ইন্টেলিভিশনের সমাধান হওয়ার জন্য, এবং (খ) আমি প্রথমবারের মতো ইন্টেলিভিশন কোড দেখেছি।
আট-বিট গুরু

3
@ আট-বিটগুরু ইন্টেলিভিশনে কোডিং করা বেশ মজাদার। এবং আজকের হোমব্রু গেমগুলি 16-বিট রমে রচিত, যা সিপিইউর সম্পূর্ণ শক্তি (আহেম ...) আনলক করে। :)
আর্নৌল্ড

চিত্তাকর্ষক! ইন্টেলিভিশনের একটি ফ্রেম বাফার এবং একটি অন্তর্নির্মিত অক্ষর সেট আছে ধারণা ছিল না। নিশ্চিত হওয়ার জন্য অতারি 2600 এর চেয়ে অনেক বেশি উন্নত। খুব সুন্দরভাবে সম্পন্ন!
640 কেবি

2
@gwaugh দ্য জিআরওএম (গ্রাফিক্স রমের জন্য) সমস্ত মুদ্রণযোগ্য ASCII অক্ষর এবং কয়েকটি সাধারণ গ্রাফিকাল আকার ধারণ করে। মজাদার ঘটনা: এটিতে কিছু এক্সিকিউটেবল কোড রয়েছে যা মূল রমে ফিট করে না।
আর্নৌল্ড

অবশ্যই 2600 এর চেয়ে বেশি উন্নত, তবে যদি মেমরিটি পরিবেশন করে, ম্যাটেল কোনও রম মধ্যে লুকিয়ে থাকা উন্নত স্টাফগুলির কোনও প্রকাশ করেনি, তাই তৃতীয় পক্ষের দেবগুলি হয় সোজা মেশিন কোডের মধ্যেই সীমাবদ্ধ ছিল বা তাদের নিজস্ব অভিনব জিনিসগুলি বের করতে হয়েছিল had । অ্যাপোক্রিফল হতে পারে।
brhfl



8

পার্ল 6 , 41 34 বাইট

{chrs grep *.base(2)%9==$_,^95+32}

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

নামবিহীন কোড ব্লক যা একটি সংখ্যা নেয় এবং বৈধ অক্ষরের একটি স্ট্রিং প্রদান করে।

ব্যাখ্যা:

{                                }  # Anonymous code block taking a number
      grep                ,^95+32   # Filter from the range 32 to 126
           *.base(2)                # Where the binary of the digit
                    %9                # When parsed as a decimal modulo 9
                      ==$_            # Is equal to the input
 chrs                               # And convert the list of numbers to a string

এটা তোলে প্রমাণিত যেতে পারে যে কোন সংখ্যার জন্য এন বেস , এনdigitsum(এন)(গেলিক ভাষার-1) (সূত্র: মনে রাখবেন(গেলিক ভাষার-1)=1 )।

আমরা আমাদের বাইনারি সংখ্যার দশমিক সংখ্যা হিসাবে পার্স করে এবং 9 দ্বারা মডিউলিং করে এটি ব্যবহার করতে পারি, যা বৈধ কারণ আমরা যে সংখ্যার ব্যাবহার করছি সেগুলি 9 বিটেরও কম গ্যারান্টিযুক্ত। পার্ল context এর বাইনারি স্ট্রিংয়ের একটি দশমিক সংখ্যায় স্বয়ংক্রিয় castালাইয়ের সাহায্যে এটি একটি সংখ্যার প্রসঙ্গে ব্যবহৃত হয়।



7

জাভাস্ক্রিপ্ট (নোড.জেএস) , 60 বাইট

জো কিংয়ের মডুলো ট্রিক ব্যবহার করা

n=>(g=x=>x>>7?'':Buffer(x.toString(2)%9-n?0:[x])+g(x+1))(32)

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


জাভাস্ক্রিপ্ট (নোড.জেএস) ,  70  69 বাইট

n=>(g=x=>x>>7?'':Buffer((h=x=>x&&x%2+h(x>>1))(x)-n?0:[x])+g(x+1))(32)

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

মন্তব্য

n => (              // n = input
  g = x =>          // g = recursive function, taking a byte x
    x >> 7 ?        //   if x = 128:
      ''            //     stop recursion and return an empty string
    :               //   else:
      Buffer(       //     create a Buffer:
        (h = x =>   //       h = recursive function taking a byte x
          x &&      //         stop if x = 0
          x % 2 +   //         otherwise, add the least significant bit
          h(x >> 1) //         and do a recursive call with floor(x / 2)
        )(x)        //       initial call to h
        - n ?       //       if the result is not equal to n:
          0         //         create an empty Buffer (coerced to an empty string)
        :           //       else:
          [x]       //         create a Buffer consisting of the character x
      ) +           //     end of Buffer()
      g(x + 1)      //     append the result of a recursive call to g with x + 1
)(32)               // initial call to g with x = 32

জো এর মডুলো ট্রিক ব্যবহার করে 60 বাইট
শেগি

পছন্দ করুন এটি একটি দুর্দান্ত।
আর্নাউল্ড

6

ব্র্যাচল্যাগ , 7 বাইট

∈Ṭ&ạhḃ+

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

একটি জালিয়াতি যা জেনারেটর হিসাবে কাজ করে , তার আউটপুট ভেরিয়েবলের মাধ্যমে ইনপুট নেয় এবং প্রতিটি অক্ষরকে তার ইনপুট ভেরিয়েবলের মাধ্যমে উত্পাদন করে। কারণ ব্র্যাচল্যাগ।

           The input variable (which is an element of the output)
∈          is an element of
 Ṭ         the string containing every printable ASCII character
  &        and the input
   ạh      converted to a codepoint
     ḃ     converted to a list of binary digits
      +    sums to
           the output variable (which is the input).


5

এক্সেল (2016 বা তার পরে), 76 বাইট

=CONCAT(IF(LEN(SUBSTITUTE(DEC2BIN(ROW(32:126)),0,))=A1,CHAR(ROW(32:126)),""))

A1 থেকে ইনপুট নেয়, আপনি এই সূত্রটি যে কোনও কক্ষে রাখুন আউটপুট। এটি একটি অ্যারে সূত্র, সুতরাং আপনাকে এটি ইনপুট করতে Ctrl+ Shift+ টিপতে Enterহবে। "2016 বা তার পরে" কারণ এটির জন্য CONCATফাংশনটি প্রয়োজন (অবহেলিত CONCATENATEআর্গুমেন্ট হিসাবে কোনও অ্যারে গ্রহণ করবে না)।


আমি এই পছন্দ। আমি লোটাস নোট এবং 123 লোক তাই এটি আমার জন্য কাজ করে :-)
এলপেড্রো

5

সি (স্ট্যান্ডার্ড লাইব্রেরি), 74 67 বাইট

i;j;k;f(n){for(i=31;i<126;k||puts(&i))for(k=n,j=++i;j;j/=2)k-=j&1;}

শুধুমাত্র স্ট্যান্ডার্ড গ্রন্থাগার ফাংশন ব্যবহার করে। ধন্যবাদ @ গ্যাস্ট্রোপনার থেকে 74 থেকে 67 বাইট উন্নতি করার জন্য।

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



@ গ্যাস্ট্রোপনার এটি একটি আশ্চর্যজনক উন্নতি! ধন্যবাদ!
ক্রিস্টা

1
আমি মনে করি f(1)ক্ষেত্রে স্থান বাছাই করার জন্য আপনাকে 31 সূচী থেকে শুরু করতে হবে (কারণ ++iএড়িয়ে যায়)।
লাম্বদাবেতা

@ ল্যাম্বদাবেতা আপনি একদম ঠিক বলেছেন, ধন্যবাদ!
ক্রিস্টা

5

আর , 77 68 বাইট

লুপ জন্য ব্যবহার করুন

-9 বাইট জিউসেপ্পিকে ধন্যবাদ

n=scan();for(i in 32:126)if(sum(intToBits(i)>0)==n)cat(intToUtf8(i))

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

পূর্বে:

আর , 78 69 66 বাইট

-12 বাইট জিউসেপ্পিকে ধন্যবাদ

a=32:126;cat(intToUtf8(a[colSums(sapply(a,intToBits)>0)==scan()]))

সংখ্যাগুলি 32 থেকে 126-কে বিটের ম্যাট্রিক্সে পরিণত করে তারপরে যে ইনপুট সংখ্যার সাথে মেলে তা সারি সারি জুড়ে যোগফল যোগ করে।

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


1
intToBits(x)>0পরিবর্তে ব্যবহার করুনas.single
জিউসেপ্পি

খুব ভাল, আমি চেষ্টা করেছি |0এবং একটি ত্রুটি পেয়েছি এবং কেবল ধরে নিয়েছি লজিক অপারেটররা কাজ করবে না।
হারুন হেমান

1
"আগের" পদ্ধতির sapplyপরিবর্তে 66 বাইট ব্যবহার করুনmatrix
জিউসেপ্পে

4

জাভা 10, 98 97 94 70 67 বাইট

n->{for(var c='';c-->31;)if(n.bitCount(c)==n)System.out.print(c);}

-২৪ বাইট নাহুয়েলফিউইলকে ধন্যবাদ ।

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

ব্যাখ্যা:

ইউনিকোড মান সহ একটি মুদ্রণযোগ্য অক্ষর রয়েছে 127

n->{                         // Method with Integer parameter and no return-type
  for(var c='';c-->31;)     //  Loop character `c` in the range ['~', ' '] / (127,31):
    if(n.bitCount(c)         //   If the amount of 1-bits in the two's complement binary
                             //   representation of the current characters
                    ==n)     //   equals the input:
      System.out.print(c);}  //    Print the current character


@ নাহুয়েলফৌইলুল আহ, আমি সবসময় জাভাতে থাকা বিল্টিন সম্পর্কে ভুলে যাই! অনেক ধন্যবাদ. এবং আরও 3 টি বাইট ব্যবহার করে সংরক্ষণ করা যায় n.bitCount। :)
কেভিন ক্রুইজসেন

হ্যাঁ, জাভা আরও একবার জাভাস্ক্রিপ্ট মারছে! আমি সেই চরিত্রের চ্যালেঞ্জগুলি পছন্দ করি: পি
অলিভিয়ার গ্রাগোয়ার

4

জাভা 8, 131 71 বাইট

মন্তব্যগুলিতে প্রত্যেককে -60 বাইট ধন্যবাদ

একটি java.util.stream.IntStreamকোডপয়েন্টস প্রদান করে

n->java.util.stream.IntStream.range(32,127).filter(i->n.bitCount(i)==n)

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

হ্যাশসেট, 135 বাইট ব্যবহার করে। ফেরত দেয় Set<Object>:

n->new java.util.HashSet(){{for(int i=31;i++<126;add(Long.toBinaryString(i).chars().map(c->c-48).sum()==n?(char)i+"":""),remove(""));}}

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



1
স্থিতিশীল প্রসঙ্গ থেকে স্থির অ্যাক্সেস পাবেন। ধন্যবাদ।
বেনিয়ামিন আরউখার্ট

Long.toBinaryString(i) হতে পারে Long.toString(i,2);
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুজসেন এটিই আমার প্রথম মন্তব্যটি করে
ডেটা শেষ

1
@ কেভিন ক্রুজসেন আপনি ঠিক বলেছেন এখানে স্থির সংস্করণটি: (এখনও) 71 বাইট । এবং হ্যাঁ, আমি আপনার সংস্করণটি দেখেছি যা আমি 10 মিনিটেরও কম আগে উত্সাহিত করেছি;)
অলিভিয়ের গ্রাগোয়ার

4

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 86 বাইট

n=>Enumerable.Range(32,95).Where(x=>"0123456".Sum(g=>x>>g-48&1)==n).Select(x=>(char)x)

আমাকে ব্যবহারের ধারণা দেওয়ার জন্য @ এক্সপায়ার্ডডাটা ধন্যবাদ Sum()! আমি যখন আমার পিসিতে ফিরে আসি, আমি স্ট্রিংটি "0123456"অপ্রিন্টেবলগুলির সাথে প্রতিস্থাপন করব এবং তিনটি বাইট সংরক্ষণ করব।

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



@ এক্সপায়ার্ডডাটা ধারণাটি ব্যবহারের জন্য ধন্যবাদ Sum()!
অজ্ঞতার প্রতিমূর্তি

4

ডায়ালগ এপিএল বর্ধিত, 24 22 বাইট

ucs a⌿⍨⎕=+⌿2a32126

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

-2 বাইট ধন্যবাদ এনএনজি থেকে

নিয়মিত ডায়ালগ এপিএলে বিকল্প 22 বাইট এনএনজি দ্বারা:

ucs 32+⍸⎕=32↓+/↑,⍳72

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


(expr )∘=-> ⎕=expr
ngn

না হয়েও বর্ধিত: ⎕ucs 32+⍸⎕=32↓+/↑,⍳7⍴2(⎕io ← 0)
ngn



3

জে , 31 27 বাইট

-4 বাইট ধন্যবাদ গ্যালেনকে

[:u:32+[:I.]=1#.32#:@+i.@95

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

আসল উত্তর

a.#~&(95{.32}.])]=1#.2#:@i.@^8:

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

  • 2#:@i.@^8:বাইনারি সংখ্যা 0 থেকে 255 পর্যন্ত হয় ( 2 ^ 8256 হয়)
  • 1#. প্রত্যেকের যোগফল
  • ]= বাইনারি মাস্ক তৈরি করে যেখানে যোগফলটি মূল ইনপুটটির সমান হয়
  • a.#~ mask জেনার সম্পূর্ণ আসকি বর্ণমালা ফিল্টার করতে বাইনারি মাস্ক ব্যবহার করে a.
  • &(95{.32}.]) তবে তা করার আগে বর্ণমালা এবং মুখোশ উভয় থেকেই কেবলমাত্র 32 ... 126 টি উপাদান নিন


ধন্যবাদ গ্যালেন আপনি করতে পারেনi.@95
জোনা

3

পার্ল 5 -a , 50 43 বাইট

@ নাহুয়েলফৌইলুল 7 বাইট সংরক্ষণ করেন

map{$_=chr;unpack('B*')%9-"@F"||say}32..126

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


এর "@F"পরিবর্তে একটি বাইট সংরক্ষণ করতে পারে$F[0]
নাহুয়েল ফিউইলুল


1
43%9 জোড় কৌতুক ব্যবহার করে @ জোকিং
নাহুয়েল ফুইলুল


3

6502 সমাবেশ (এনইএস), 22 বাইট by

মেশিন কোড:

a0 1f a6 60 c8 98 30 fb ca 0a b0 fc d0 fb e8 d0 f1 8c 07 20 f0 ec

এসেম্বলি:

    ldy #$1f ; Y holds the current character code
NextCharacter:
    ldx $60 ; load parameter into X
    iny
    tya
    bmi (NextCharacter + 1) ; exit at char 128, #$60 is the return opcode

CountBits:
    dex
Continue:
    asl
    bcs CountBits
    bne Continue

CompareBitCount:
    inx ; fixes off-by-one error and sets Z flag if bit count matches
    bne NextCharacter
    sty $2007
    beq NextCharacter ; always branches

পুরো প্রোগ্রাম । FCEUX 2.2.3 এর সাথে পরীক্ষিত, কোনও মানক NES এমুলেটর নিয়ে কাজ করা উচিত।

রায়ান রাসেলের উত্তরে অনুপ্রাণিত। সিপিইউ ঠিকানা In 60 এ ইনপুট দেওয়া হয়েছে। কনসোলের ছবি প্রসেসিং ইউনিট মেমরির আউটপুট।


2
হ্যালো এবং পিপিসিজিতে আপনাকে স্বাগতম। কার্টরিজ, যেমন একটি (অনলাইন) এমুলেটর বা স্পেসিফিকেশন তৈরি করা ছাড়াও কী আপনার সমাধান যাচাই করার কোনও উপায় আছে?
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ আমি একটি সম্পূর্ণ প্রোগ্রাম যুক্ত করেছি যা স্থানীয়ভাবে একত্রিত হয়ে চালানো যায়। আমি যেমন বুঝতে পেরেছি, এনইএস পরিবেশটি আসলে কোডগল্ফের জন্য মানক নয়।
নেতিবাচক সাত


2

পাওয়ারশেল , 83 বাইট

param($n)[char[]](32..126|?{([convert]::ToString($_,2)|% t*y|group)[1].count-eq$n})

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

ইনপুট নেয় $n, থেকে একটি পরিসীমা তৈরি 32করে 126এবং সেই সংখ্যাগুলি টেনে আনে যেখানে |?{}: সংখ্যাটি, বেসে convertএড ; রূপান্তরিত oCharArra ; এস এবং এস এড ; এই গ্রুপিংয়ের সূচি গ্রহণ করা ; এটি গ্রহণ করে এবং এটি আমাদের ইনপুট উম্বারে ইউল করে দেখছে। এরপরে এই সংখ্যাগুলিকে আরে হিসাবে নিক্ষেপ করা হয় এবং পাইপলাইনে রেখে দেওয়া হয়। উপাদানগুলির মধ্যে নতুন লাইনের সাথে আউটপুট অন্তর্ভুক্ত।ToString2tygroup01[1].count-eq$nchar







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