একটি সংখ্যা পচন!


16

আপনার টাস্কটি নীচের ফর্ম্যাটটি ব্যবহার করে একটি সংখ্যা পচন করা।

এটি বেস রূপান্তরটির অনুরূপ, বেসটিতে তালিকার পরিবর্তে digitsআপনি তালিকাটি তালিকাভুক্ত করেন valuesযেমন তালিকাটি ইনপুটটিতে যুক্ত করে।

যদি প্রদত্ত বেসটি হয় n, তবে তালিকার প্রতিটি নম্বর অবশ্যই সেই আকারে থাকতে হবে k*(n**m), যেখানে 0<=k<nএবং mতালিকা জুড়ে অনন্য।

চশমা

  • যে কোনও যুক্তিসঙ্গত ইনপুট / আউটপুট ফর্ম্যাট। আপনার প্রোগ্রাম / ফাংশন 2 ইনপুট লাগে এবং একটি তালিকা আউটপুট।
  • আউটপুট তালিকা যে কোনও ক্রম হতে পারে।
  • 0 বাদ বা অন্তর্ভুক্ত করা যেতে পারে।
  • নেতৃস্থানীয় 0অনুমোদিত।
  • বিল্ট-ইনগুলি অনুমোদিত

Testcases

number base   converted list
input1 input2 output
123456 10     [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000]
11     2      [8,2,1] or [0,0,0,0,8,0,2,1]
727    20     [400,320,7]
101    10     [100,1] or [100,0,1]

স্কোরিং

এটি । বাইটস মধ্যে সংক্ষিপ্ত সমাধান।

code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

উত্তর:


5

জেলি , 7 বাইট

lr0⁹*×b

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

কিভাবে এটা কাজ করে

lr0⁹*×b  Main link. Arguments: x (integer), n (base)

l        Compute the logarithm of x to base n.
 r0      Range; yield all non-negative integers less than the logarithm, in
         decreasing order.
   ⁹*    Elevate n to all integers in that range.
      b  Yield the list of base-n digits of x.
     ×   Multiply each digit by the corresponding power of n.

আহ, বিপরীত পরিসীমা ...
লিকি নুন

এটি এতই চিত্তাকর্ষক যে
এতগুলি


3

জেলি, 12 বাইট

bLR’*@€U
b×ç

ওয়াহায়ে খাটো হতে পারে ...

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



3
lḞr0⁴*×bকাজ করা উচিত.
ডেনিস

প্রযুক্তিগতভাবে, 0r⁴*³%Iপাশাপাশি কাজ করে।
ডেনিস

যে আঁচড়ের দাগ. lr0⁴*×bসমস্ত অতিরিক্ত শূন্য ছাড়াই একই বাইট গণনা রয়েছে।
ডেনিস

@ ডেনিস এটি পৃথক উত্তর হিসাবে পোস্ট করার পক্ষে অবশ্যই আলাদা।
ডুরকনব

3

পাইথ - 12 11 বাইট

কেবল একটি FGITW, খাটো হতে পারে sh

.e*b^Qk_jEQ

টেস্ট স্যুট


_বাইটের জন্য অপসারণ করুন :)
লিকি নুন

@ কেনিলাউ এর অর্থ এফজিআইটিডাব্লু, এর অর্থ "ওয়েস্ট ফাস্ট গন ইন দ্য ওয়েস্ট", এমন একটি ঘটনা যেখানে লোকেরা প্রথমে উত্তর দেয় উত্তরের চেয়ে বেশি উত্তর দেয়।
মাল্টেসেন

@ কেনি লাউ এটি অনুমোদিত, ডের্প।
মাল্টেসেন

3

জে, 20 19 বাইট

[(]*(^<:@#\.))#.inv

ব্যবহার

   f =: [(]*(^<:@#\.))#.inv
   10 f 123456
100000 20000 3000 400 50 6
   2 f 11
8 0 2 1
   20 f 727
400 320 7
   10 f 101
100 0 1

ব্যাখ্যা

[(]*(^<:@#\.))#.inv
              #.      Given a base and list of digits in that base,
                      converts it to an integer in base 10
                inv   Power conjunction by -1, creates an inverse
                      Now, this becomes a verb that given a base and an integer in base 10,
                      creates a list of digits in that base representing it
[                     Select the base and pass it along
         #\.          Tally each suffix of the list of base digits,
                      Counts down from n to 1
      <:              Decrements each value
        @             More specifically, decrement is composed with the tally and applied
                      together on each suffix
     ^                Raises each value x using base^x
  ]                   Selects the list of base digits
   *                  Multiply elementwise between each base power and base digit

2

সিজেম, 16 বাইট

{1$b\1$,,f#W%.*}

একটি নামবিহীন ব্লক যা স্ট্যাকের শীর্ষে ভিত্তি এবং সংখ্যাটি প্রত্যাশা করে (সেই ক্রমে) এবং তাদেরকে অঙ্কের তালিকার সাথে স্থান দেয় (অভ্যন্তরীণ শূন্যগুলি সহ, শীর্ষস্থানীয় শূন্যগুলি ছাড়াই)।

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

ব্যাখ্যা

1$  e# Copy base b.
b   e# Compute base-b digits of input number.
\   e# Swap digit list with other copy of b.
1$  e# Copy digit list.
,   e# Get number of digits M.
,   e# Turn into range [0 1 ... M-1].
f#  e# Map b^() over this range, computing all necessary powers of b.
W%  e# Reverse the list of powers.
.*  e# Multiply each digit by the corresponding power.

2

টিএসকিউএল, 68 বাইট

DECLARE @ INT=123456,@z INT=10
DECLARE @l INT=1WHILE
@>0BEGIN PRINT @%@z*@l SELECT @/=@z,@l*=@z END

1

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

lambda n,b:[n/b**i%b*b**i for i in range(n)]

আউটপুটগুলি অনেকগুলি শূন্যের সাথে অন্তত তাৎপর্যপূর্ণ থেকে গুরুত্বপূর্ণ।

সবচেয়ে উল্লেখযোগ্য থেকে কমপক্ষে আউটপুট দিতে:

f=lambda n,b,c=1:n*[1]and f(n/b,b,c*b)+[n%b*c]

পুনরাবৃত্তি করুন, বারবার nডিভিডমোড দিয়ে ডিজিট অফ করে যখন স্থানের গুণকের গুণক বাড়ান c


দ্বিতীয় সংস্করণের জন্য, আপনি কি range(-n,1)পরিবর্তে না করতে পারেন range(n,-1,-1)?
এরিক দি আউটগল্ফার

@ ইজিʀɪᴋᴛʜᴇ ধন্যবাদ, আমি দেখতে পাইনি যে বিপরীতে যাওয়া একটি বিকল্প ছিল। এমনকি এটি করতে যথেষ্ট হয় range(n)
xnor

1

রুবি, 35 34 বাইট

এই একটি পোর্ট xnor এর পাইথন উত্তর , কিন্তু এটা ছাপে nতাই পরীক্ষা ক্ষেত্রে বার 727 20কপি করে প্রিন্ট 7, 320, 400, এবং 724 0সে। গল্ফিং পরামর্শ স্বাগত জানাই।

সম্পাদনা করুন: জর্দানকে 1 বাইট ধন্যবাদ।

->n,b{n.times{|i|p n/b**i%b*b**i}}

আপনি এটি দিয়ে একটি বাইট সংরক্ষণ করতে পারেন n.times{|i|p ...}
জর্দান

1

গণিত, 12 বাইট (প্রতিদ্বন্দ্বী)

আমি অবাক হই যে ওল্ফ্রাম রিসার্চ ওপির চ্যালেঞ্জ দেখে এই ফাংশনটি তৈরি করেছিল কিনা!

NumberExpand

এটি 11.0 সংস্করণে আগস্ট হয়েছিল (আগস্ট, 2016)।


1
আমি এই প্রতিযোগিতা করার জন্য সম্পাদনা করেছি কারণ ম্যাথমেটেমিকা 11.0 8 ই আগস্ট প্রকাশিত হয়েছিল
লিকি নুন

1

গণিত, 46 বাইট

DiagonalMatrix@IntegerDigits@##~FromDigits~#2&

ব্যাখ্যা:

[1] এ: = পূর্ণসংখ্যা ডিজিটস [123456,10]                                                

[1] = {1, 2, 3, 4, 5, 6}

[2]: = ডায়াগোনালামাত্রিক্স @ ইন্টিজারডিজিটস [123456,10] // ম্যাট্রিক্সফর্ম                   

আউট [2] // ম্যাট্রিক্সফর্ম = 1 0 0 0 0 0

                    0 2 0 0 0 0

                    0 0 3 0 0 0

                    0 0 0 4 0 0

                    0 0 0 0 5 0

                    0 0 0 0 0 6

[3] এ: = ডায়াগোনালামাত্রিক্স @ ইন্টিজার ডিজিটস [123456,10] ~ থেকে ডিজিটস ~ 10                   

[3] = {100000, 20000, 3000, 400, 50, 6 Out

খুব অপ্রত্যাশিত ব্যবহার DiagonalMatrix। এই ক্ষেত্রে এটি কীভাবে কাজ করে দয়া করে ব্যাখ্যা করুন।
ডেভিডসি

0

র‌্যাকেট, 82 বাইট

(define(d n b[a'()])(if(< n 1)a(d(/ n b)b(cons(*(modulo(floor n)b)(length a))a))))

আমি বিজিত (!)


1
এত জায়গা ... <n 1কাজ করে না? (আমি র‌্যাকেট একেবারেই জানি না)
লিকি নুন

1
যে কাজ করবে না - শনাক্তকারীদের কেবল সাদা স্থান, বন্ধনী / ধনুর্বন্ধনী / কোঁকড়া ধনুর্বন্ধনী এবং কিছু অন্যান্য চিহ্ন দ্বারা পছন্দসই হয় '। যদিও এটি একটি ভাল প্রশ্ন।
উইনি

(এবং <এটির সাথে আবদ্ধ একটি ক্রিয়াকলাপের সাথে কেবল একটি পরিবর্তনশীল)
উইনি

0

জাভাস্ক্রিপ্ট (ES7), 68 বাইট

n=>b=>(c=[...n.toString(b)]).map(d=>b**--p*parseInt(d,b),p=c.length)

পরীক্ষা

Math.powব্রাউজারের সামঞ্জস্যের জন্য পরীক্ষা ব্যবহার করে ।

f=n=>b=>(c=[...n.toString(b)]).map(d=>Math.pow(b,--p)*parseInt(d,b),p=c.length)
document.write("<pre>"+
[ [ 123456, 10 ], [ 11, 2 ], [ 727, 20 ], [ 101, 10 ] ]
.map(c=>c+" => "+f(c[0])(c[1])).join`\n`)


**ঠিক আছে তবে বৈধ জাভাস্ক্রিপ্ট অপারেটর নয়?
ericw31415


ওহ, এটি পরীক্ষামূলক। এজন্য আমার ব্রাউজারটি এটি সমর্থন করে না।
ericw31415

0

জাভাস্ক্রিপ্ট, 75 বাইট

(a,b)=>[...a.toString(b)].reverse().map(($,_)=>Math.pow(b,_)*parseInt($,b))

শুধু মজাদার জন্য :) এটি আরও গল্ফ করা যেতে পারে, তবে কীভাবে করব তা আমি খুব বেশি নিশ্চিত নই।

ES7, 66 বাইট

যদি ES7 অনুমোদিত হয় তবে:

(a,b)=>[...a.toString(b)].reverse().map(($,_)=>b**_*parseInt($,b))

0

, 17 বাইট

jQb`S/l{#Qn^*p}d

দুটি নোট:

  1. বেস রূপান্তর সহ একটি ত্রুটির কারণে তৃতীয় পরীক্ষার কেস কাজ করে না। দেখুন ফেজ / O # 68

  2. এটি অনলাইন দোভাষীর কাজ করে না। bএখনও কার্যকর করা হয়নি।


0

> <>, 28 বাইট

:&\
&*>:{:}$%:n$}-:0=?;ao$&:

প্রোগ্রাম শুরু হওয়ার সময় স্ট্যাকের সাথে ইনপুট মানগুলি উপস্থিত হওয়ার প্রত্যাশা করে।

যেমন> <> তালিকার অবজেক্ট নেই, আউটপুটটিকে প্রথম লাইনে 'ইউনিট' সহ মানগুলির একটি নতুন লাইন-বিচ্ছিন্ন তালিকা হিসাবে উপস্থাপন করা হবে। একটি উদাহরণ রান:

Input: 
11 2

Ouput:
1
2
0
8

@ ওপ, যদি এটি গ্রহণযোগ্য আউটপুট ফর্ম্যাট না হয় তবে আমাকে জানান এবং আমি সেই অনুযায়ী উত্তরটি সম্পাদনা করব।


0

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

উইন্ডোজ -১২২২ এনকোডিং ব্যবহার করে।

for($n=$argv[1];$d+$n-=$d=$n%$argv[2]**++$i;)echo$d,~Ó;

এটি চালান ( -dকেবল নান্দনিকতার জন্য যুক্ত):

php -d error_reporting=30709 -r 'for($n=$argv[1];$d+$n-=$d=$n%$argv[2]**++$i;)echo$d,~Ó; echo"\n";' 123056 10


0

প্রকৃতপক্ষে, 17 বাইট (প্রতিযোগী নয়)

;a¡;lrR(♀ⁿ@♂≈♀*;░

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

এই জমাটি অ-প্রতিযোগিতামূলক কারণ the এই চ্যালেঞ্জের পরে কমান্ডটি যুক্ত করা হয়েছিল।

ব্যাখ্যা:

;a¡;lrR(♀ⁿ@♂≈♀*;░
                   initial stack: [b n] (b = base, n = number)
;                  dupe b
 a                 invert stack
  ¡                n as a base-b integer
   ;lrR            dupe, length, range, reverse
       (♀ⁿ         raise b to each power in range
          @♂≈      create list of integers from base-b string
             ♀*    pairwise multiplication
               ;░  filter out zeroes


0

পিপ , 13 বাইট

Wa-:Pa%oo*:b

এটি পুরানো ফ্যাশন পদ্ধতিতে করা TBবেস-রূপান্তরকারী অপারেটরটি ব্যবহারের চেয়ে কম খাটে পরিণত হয়েছিল । কোডটি কিছুক্ষণ লুপ চলবে যতক্ষণ না a(সংখ্যা) হয় 0। প্রতিটি পুনরাবৃত্তিতে এটি মুদ্রণ করে a%oএবং এটি থেকে বিয়োগ করে aoপূর্বনির্ধারিত 1এবং bপ্রতিটি পুনরাবৃত্তি (বেস) দ্বারা গুণিত হয় । (এই পদ্ধতির সমস্ত বিষয় রাখা 0এবং একটি নেতৃস্থানীয় যোগ 0।)

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

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