যে কোনও বেসে ফিজবজ


10

চ্যালেঞ্জ

ইনপুট:

2 এবং 62 (সমেত) এর মধ্যে একটি পূর্ণসংখ্যা b

আউটপুট:

থেকে গণনা 1 সমতুল্য করার 500010 বেস b , সংখ্যা কোন যুক্তিসঙ্গত প্রতিনিধিত্ব করে।

যাহোক:

  • সংখ্যা দ্বারা বিভাজ্য হয় তাহলে b÷2+1 (বৃত্তাকার নিচে, যেমন বেস 7 হবে 7/2 = 3.5, 3.5 + 1 টি = 4.5, এর বৃত্তাকার 4 ), তারপর আউটপুট 'Fizz' পরিবর্তে সংখ্যা।

  • যদি সংখ্যাটি b÷3+3 দ্বারা বিভাজ্য হয় (গোল হয়ে যায়, উদাহরণস্বরূপ 11/3 = 3.666, 3.666 + 3 = 6.666, 7 এর মধ্যে গোল করা ), তবে আউটপুট 'বাজ'।

  • আপনি সম্ভবত অনুমান করতে পারেন, যদি আপনার সংখ্যা উভয় দ্বারা বিভাজ্য হয় তবে আউটপুট 'ফিজবজ'।

উদাহরণ

ব্যবহার [0-9] , [জেড] এবং [AZ] সংখ্যার হিসাবে

(উদাহরণগুলিকে সংক্ষিপ্ত রাখার জন্য আমি প্রথম প্রথম 10 টি মানই অন্তর্ভুক্ত করেছি - সাধারণত প্রতিটি ক্রমটিতে 4990 টি আইটেম থাকে)

ইনপুট: 10 (সুতরাং 'ফিজ' = 6 এবং 'বাজ' = 7)

আউটপুট: 1, 2, 3, 4, 5, ফিজ, বাজ, 8, 9, 10

ইনপুট: 2 (সুতরাং 'ফিজ' = 2 এবং 'বাজ' = 4)

আউটপুট: 1, ফিজ, 11, ফিজবজ, 101, ফিজ, 111, ফিজবুজ, 1001, ফিজ

(আমি নীচের প্রথম 50 টি মানগুলি কীভাবে তারা কাজ করে তা আরও ভালভাবে দেখানোর জন্য অন্তর্ভুক্ত করেছি)

ইনপুট: 55 (সুতরাং 'ফিট' = 2810 = s55 এবং 'বাজ' = 2210 = m55 )

আউটপুট: 1, 2, 3, 4, 5, 6, 7, 8, 9, এ, বি, সি, ডি, ই, এফ, জি, এইচ, আই, জে, কে, এল, বাজ, এন, ও, p, q, r, Fizz, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N

বিধি

  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ
  • এটি কোড গল্ফ, তাই বাইট জেতে সংক্ষিপ্ত উত্তর
  • ইনপুট এবং আউটপুট কনসোল বা ফাংশন আর্গুমেন্ট / রিটার্নের মাধ্যমে হতে পারে
  • শূন্য রেখাগুলির মতো শীর্ষস্থানীয় / পিছনে সাদা স্থান ঠিক আছে
  • 'ফিজ' এবং 'বাজ' এর মধ্যে থাকা স্থানগুলি অনুমোদিত নয়
  • 'ফিজ' / 'বাজ' / 'ফিজবজ' এর যে কোনও মূলধন বৈকল্পিক ঠিক আছে।
  • আউটপুটগুলি নতুন লাইনের দ্বারা পৃথক করা উচিত।
  • আপনি যদি অক্ষরের সাথে তাদের প্রতিনিধিত্ব করার পরিবর্তে বেস 10 'ডিজিটের' অ্যারেটি ফেরৎ দেন তবে তাদের সঠিক ক্রমে থাকতে হবে!

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

2
ঠিক আছে, এখন স্পষ্ট।
গেজা কেরেসসেনি

5
প্রযুক্তিগতভাবে, বেস 36-এ শব্দটি buzzসূচক 553391, fizzএট 724463এবং fizzbuzzএ সময়ে নিজে থেকেই প্রকাশিত হয় 1216820199599। দুঃখের বিষয়,
কিং

3
কেন বেস 10 মূল ফিজবজ নয়? : আমি কোনও অ্যালগরিদম ভাবতে পারি নি যা উভয়ই বেস 10 এ মূল সংখ্যা উত্পন্ন করবে এবং অন্যান্য ঘাঁটিতে ভাল স্থানান্তর করবে। এবং আমি অস্বীকার করার জন্য একটি বিশেষ মামলা যুক্ত করতে চাইনি যেহেতু এটি আমার মতে প্রশ্নটি কেবলই জটিল করে তুলবে।
গেজা কেরেসসেনি

3
আপনার ভবিষ্যতের চ্যালেঞ্জগুলির জন্য, দয়া করে আরও নমনীয় আই / ওকে অনুমতি দিন consider চ্যালেঞ্জগুলি লেখার সময় এড়ানোর জন্য জিনিসগুলিতে জটিল I / O ফর্ম্যাটগুলি সর্বাধিক উন্নত বিষয় ।
আর্নল্ড

উত্তর:


3

জেলি ,  42 38 34 33 29  32 বাইট

কঠোর বিন্যাসের নিয়ম মেনে চলতে +3

5ȷɓ;8Ä:2,3‘ḍȧ"“Ƈד=%»ḟ0Fȯb@K¥ð€Y

একটি পূর্ণ প্রোগ্রাম যে পাঠ্য 5000 লাইন, প্রতিটি লাইনে একটি (সংখ্যা) এক পূর্ণসংখ্যার সিরিজ বা ধারণকারী ছাপে fizz, buzzঅথবা fizzbuzz(বেস 62 পরলোক কাজ করে জরিমানা)।

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

কিভাবে?


b÷2+1 =b÷2+1

b÷3+3=b÷3+2+1=(b+6)÷3+1=(b+8)÷3+1

আপডেট হচ্ছে ...

5ȷɓ;8Ä:2,3‘ḍȧ"“Ƈד=%»ḟ0Fȯb@ð€ - Link: integer, b
5ȷ                            - 5*10³ = 5000
  ɓ                        ð€ - for €ach n in [1,2,...,5000] get this f(b,n):
    8                         -   eight
   ;                          -   concatenate      -> [b,8]
     Ä                        -   cumulative sums  -> [b,b+8]
       2,3                    -   pair literal        [2,3]
      :                       -   integer division -> [b//2, (b+8)//3]
          ‘                   -   increment        -> [b//2+1, (b+8)//3+1]
           ḍ                  -   divides n?       -> [n is fizzy?, n is buzzy?]
              “Ƈד=%»         -   list of dictionary strings = ['fizz','buzz']
             "                -   zip with:
            ȧ                 -     logical AND    -> [0,0], ['fizz',0], [0,'buzz'],
                              -                       or ['fizz','buzz']
                      0       -   zero
                     ḟ        -   filter discard   -> [], ['fizz'], ['buzz'],
                              -                       or ['fizz','buzz']
                       F      -   flatten          -> [], ['fizz'], ['buzz'],
                              -                       or ['fizzbuzz']
                          @   -   using swapped arguments:
                         b    -     (n) to a list of digits in base (b)  (say, [nb])
                        ȯ     -   logical OR       -> [nb], ['fizz'], ['buzz'],
                              -                       or ['fizzbuzz']

চ্যালেঞ্জ বলে যে আউটপুট পৃথক লাইন থাকতে হবে
অজ্ঞতা প্রতিমূর্তি

সত্য। আমি উপস্থাপনের সাথে ভাল থাকাকালীন (যদিও এটি সীমান্তরেখা), একটি অ্যারের আউটপুট দেওয়া গেমটি খেলার মতো নয়। তবে, আপনি যদি প্রতিটি লাইনে অঙ্কের অ্যারে আউটপুট করেন তবে আমি এটি গ্রহণ করব।
গেজা কেরেসসেনি

3
[0,n1]

একজন terser বাস্তবায়ন শুধু পছন্দসই ডিজিটের একটি তালিকা গ্রহণ করতে পারে সংখ্যাসূচক বেস পরিবর্তে ভালো
জোনাথন অ্যালান

3

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

NθE…·¹×⁵φ∨⁺⎇﹪ι⊕÷θ²ωFizz⎇﹪ι÷⁺¹¹θ³ωBuzz⍘ιθ

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

Nθ                                      Input `b` into variable `q`
   ¹                                    Literal 1
 …·                                     Inclusive range to
      φ                                 Predefined variable 1000
    ×                                   Multiplied by
     ⁵                                  Literal 5
E                                       Map to
           ι                            Current value
          ﹪                             Modulo
              θ                         Input value
             ÷                          Floor divide
               ²                        Literal 2
            ⊕                           Incremented
         ⎇                              If nonzero
                ω                       Then predefined empty string
                 Fizz                   Otherwise literal `Fizz`
        ⁺                               Concatenated with
                       ι                Current value
                      ﹪                 Modulo
                            θ           Input value
                         ⁺              Plus
                          ¹¹            Literal 11
                        ÷               Integer divided by
                             ³          Literal 3
                     ⎇                  If nonzero
                              ω         Then predefined empty string
                               Buzz     Otherwise literal `Buzz`
       ∨                                Logical Or
                                    ι   Current value
                                   ⍘    Converted to base
                                     θ  Input value
                                        Implicitly print each result on its own line

3

আর , 163 131 বাইট

b=scan();for(d in 1:5e3)cat(list(d%/%b^rev(0:log(d,b))%%b,'fizz','buzz','fizzbuzz')[[1+(!d%%((b+2)%/%2))+2*!d%%((b+11)%/%3)]],'\n')

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

23 বাইট বাঁচানোর জন্য @ ডিজিএমএলকে ধন্যবাদ। তারপরে আমি আরও 9 টি সংরক্ষণ করার জন্য @ ডিগইএমএল এর সমস্ত প্রচেষ্টা আরও গল্ফ করেছিলাম।


140 বাইট আমি আপনার উত্তরটি না দেখে এটিতে কাজ করেছি, তবে এটি অন্য পোস্টের জন্য খুব অনুরূপ;)
digEmAll

@ ডিজিএম সমস্ত ধন্যবাদ। আমি আরও 131 বাইট পেতে আপনার উত্তর গল্ফ করেছি এবং আপনাকে ক্রেডিট দিয়েছি; আশা করি ঠিক আছে
নিক কেনেডি

একেবারে! ;)

বিটিডাব্লু, আপনার যদি আর-তে গল্ফিং সম্পর্কে কোনও আলোচনা হয় এই
চ্যাটটিতে

ওফস, বুঝতে পারিনি যে ইতিমধ্যে কোনও আর উত্তর রয়েছে, আমার উত্তরটি আরও কিছুটা গল্ফ করার জন্য সহায়ক হতে পারে?
ASCII- কেবল

3

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

19201921201,1

b=>(g=n=>n>1?g(n-1)+`
`+((s=n%(b+2>>1)?'':'Fizz',n%(b/3+3.9|0)?s:s+'Buzz')||(g=n=>n?[...g(n/b|0),n%b]:s)(n)):1)(5e3)

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

(100 এর মধ্যে সীমাবদ্ধ যাতে টিআইওর আউটপুট প্রবাহিত না হয়)


কোন সুযোগ আপনি ব্যাখ্যা করতে পারে কি |0এবং (5e3)কি?
njras

0nMath.floor(n)0n<2315e35000g

2

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

b=input()
i=0
exec"a=i=i+1;d=[]\nwhile a:d=[a%b]+d;a/=b\nprint'Fizz'*(i%(b/2+1)<1)+'Buzz'*(i%(~-b/3+4)<1)or d;"*5000

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

বা 0-9a-zA-Zআউটপুট সহ:

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

b=input()
i=0
exec"a=i=i+1;d=''\nwhile a:d=chr(a%b+48+(a%b>9)*39-a%b/36*58)+d;a/=b\nprint'Fizz'*(i%(b/2+1)<1)+'Buzz'*(i%(~-b/3+4)<1)or d;"*5000

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


1

05 এ বি 1 ই , 39 37 36 বাইট

8+‚U5₄*LεX23S÷>Ö”FizzÒÖ”#×JDõQiyIв]»

@ জোনাথন অ্যালান এর জেলি উত্তরের একটি বন্দর তৈরি করে -2 বাইটস ।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন (তবে তালিকা-আউটপুট হিসাবে এবং 5000 এর পরিবর্তে প্রথম 100 দিয়ে)।

ব্যাখ্যা:

8+               # Add 8 to the (implicit) input
                # Pair it with the (implicit) input
   U             # Pop and store it in variable `X`
5₄*L             # Create a list in the range [1,5000]
    ε            # Map each value `y` to:
     X23S÷       #  Integer-divide the input by 2, and the input+8 by 3
          >      #  Increase both by 1
           Ö     #  Check for both if they divide value `y` evenly (1 if truthy; 0 if falsey)
     FizzÒÖ”    #  Push dictionary string "Fizz Buzz"
             #   #  Split on spaces
              ×  #  Repeat the strings the result amount of times (0 or 1)
               J #  Join both strings together to a single string
     DõQi        #  If this string is empty:
         yIв     #   Push value `y` in Base-input (as list) instead
    ]            # Close the if-statement and map
     »           # Join the list by new-lines (and inner lists by spaces implicitly)
                 # (and output the result implicitly)

আমার এই 05AB1E টিপটি দেখুন (অভিধানটি কীভাবে ব্যবহার করবেন? ) কেন ”FizzÒÖ”তা বোঝার জন্য "Fizz Buzz"


আপনি 33 টি বাইটে লুপিং সংস্করণটি দেখতে চান যদি আপনি এটি চেষ্টা করতে চান এবং এটি সর্বোত্তম করতে পারেন। এখনও জেলির চেয়ে লম্বা বাইট যদিও :(
এমিগিনা

@ এমিগনা আপনি কি ইতিমধ্যে এটি পোস্ট করেছেন? বা এটি আমার উত্তরের সাথে মোটামুটি একই রকম এবং এটি গল্ফ হিসাবে বোঝানো হয়েছে? পিএস: জেলির কয়েকটি শর্ট-কাট বিল্টিন রয়েছে উদাহরণস্বরূপ [input, input+8]অংশটি এবং ফিল্টার অংশটি পরে (যা আমি এখন যেমন DõQi yIвকরি তবে আমার আরও অনুভূতি আছে যে এটি আরও কিছুটা গল্ফ করা যেতে পারে ..)
কেভিন ক্রুইজসেন

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

@ এমিগনা আমি বর্তমানে কাজে কিছুটা ব্যস্ত, তাই এই উত্তরটি গল্ফ করার সত্যিই সময় নেই। সুতরাং আপনি চাইলে এটি আপনার নিজের উত্তর হিসাবে পোস্ট করতে পারেন। আপনি আমার উর্ধ্বতন পেয়েছেন। ;)
কেভিন ক্রুইজসেন

দুর্ভাগ্যক্রমে আমি আমার সংস্করণে একটি বাগ আবিষ্কার করেছি সুতরাং এখন এটি 34 I আমার কিছু ধারণা রয়েছে যা আপনার বা আমার খাটো করতে পারে যা আমি পরে অনুসন্ধান করব। জেলিকে মারধর / বেঁধে রাখা এখন শক্ত মনে হচ্ছে।
এমিগনা

0

পার্ল 6 , 91 বাইট

{$!=0;('Fizz'x++$!%%($_/2+|0+1)~'Buzz'x$!%%(($_+8)/3+|0+1)||[R,] $!.polymod($_ xx*))xx𐄦}

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

নামবিহীন কোড ব্লক যা স্ট্রিংয়ের একটি তালিকা Fizz/Buzz/FizzBuzzবা বেসে পূর্ণসংখ্যার বিপরীত তালিকা দেয় returns


কোডগল্ফ.স্ট্যাকেক্সচেঞ্জ / প্রশ্ন / ১.com/০৪77/২ দেখুন । আমি এই সম্পর্কে প্রশ্নে একটি ব্যাখ্যা যোগ করেছি।
গেজা কেরেসসেনি


0

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

n=>{for(int i=1,p;i<5001;){p=i;var j=new Stack<int>();for(;p>0;p/=n)j.Push(p%n);var s=i%(n/2+1)<1?"Fizz":"";Print(i++%((n+8)/3+1)<1?s+"Buzz":s==""?string.Join("-",j):s);}}

আর্নাউল্ডের উত্তরের মতো ফলাফল। আউটপুটটি বিপরীত করতে স্ট্যাক ব্যবহার করার ধারণার জন্য ডিজিএমএলকে ধন্যবাদ।

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


1
আমাকে বিপরীত অঙ্কগুলিতে 'না' বলতে হবে। যদিও এটি গাণিতিকভাবে সঠিক ধারণা, এটি কোনও ফিজবজ প্রোগ্রাম নয়, বলুন কোনও নিয়োগকর্তা চাইবেন। এটি দুর্ভাগ্যজনক যে সি # এর অ্যারে রিভার্স ফাংশন নেই।
গেজা কেরেসসেনি

0

05 এ বি 1 ই , 34 বাইট

ব্যবহার যোনাথনের গাণিতিক অন্তর্দৃষ্টি যে ceil(n/3+3)=floor((n+8)//3)+1

ŽJćG8+‚2L>÷>NsÖ…™Ázz'ÒÖ‚×JNIв‚õKн,

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

ব্যাখ্যা

ŽJćG                                # for N in [1 ...5001)
    8+‚2L>÷>                        # push [input//2+1, (input+8)//3+1]
            NsÖ                     # check each if N is divisible by it
               …™Ázz                # push "fizz"
                    'ÒÖ             # push "buzz"
                       ‚            # pair
                        ×           # repeat a number of times corresponding to the result of the 
                                    # divisibility test
                         J          # join to string
                          NIв‚      # pair with N converted to base <input>
                              õK    # remove empty string
                                н,  # print head of the remaining list
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.