एक नंबर का विरोध करें!


16

आपका कार्य नीचे प्रारूप का उपयोग करके किसी संख्या को विघटित करना है।

यह आधार रूपांतरण के समान है, सिवाय इसके कि digitsआधार में सूचीबद्ध करने के बजाय , आप सूची को सूचीबद्ध करते हैं values, जैसे कि इनपुट में सूची जुड़ जाती है।

यदि दिया गया आधार है n, तो सूची में प्रत्येक संख्या के रूप में होना चाहिए k*(n**m), जहां 0<=k<nऔर mपूरी सूची में अद्वितीय है।

ऐनक

  • कोई भी उचित इनपुट / आउटपुट प्रारूप। आपका प्रोग्राम / फ़ंक्शन 2 इनपुट लेता है और एक सूची आउटपुट करता है।
  • आउटपुट सूची किसी भी क्रम में हो सकती है।
  • 0 बाहर रखा या शामिल किया जा सकता है।
  • अग्रणी 0की अनुमति है।
  • बिल्ट-इन की अनुमति है

परीक्षण के मामलों

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.

आह, उलटी सीमा ...
लीक नून

यह इतना प्रभावशाली है कि इतने कम पात्रों के साथ क्या हासिल किया जा सकता है
t-clausen.dk

4

जावास्क्रिप्ट (ईएस 6), 47 बाइट्स

f=(n,b,p=1,q=b*p)=>[...n<q?[]:f(n,b,q),n%q-n%p]
document.write("<pre>"+
[ [ 123456, 10 ], [ 11, 2 ], [ 727, 20 ], [ 101, 10 ] ]
.map(c=>c+" => "+f(...c)).join`\n`)


एक स्निपेट शामिल करने के लिए देखभाल? :)
लीक नून

3

जेली, 12 बाइट्स

bLR’*@€U
b×ç

Waaaay छोटी हो सकती है ...

इसे ऑनलाइन आज़माएं!



3
lḞr0⁴*×bकार्य करना चाहिए।
डेनिस

तकनीकी 0r⁴*³%Iरूप से भी काम करता है।
डेनिस

उसको खरोंचो। lr0⁴*×bसभी अतिरिक्त शून्य के बिना एक ही बाइट गिनती है।
डेनिस

@ डेनिस निश्चित रूप से एक अलग उत्तर के रूप में पोस्ट करने के लिए पर्याप्त अलग है।
दोरचनाब

3

पायथ - 12 11 बाइट्स

बस एक FGITW, कम हो सकता है।

.e*b^Qk_jEQ

टेस्ट सूट


_एक बाइट के लिए निकालें :)
लीक नून

@ केनीलाऊ का अर्थ था एफजीआईटीडब्ल्यू, इसका अर्थ है "फास्टेस्ट गन इन द वेस्ट", एक ऐसी घटना जहां पहले उत्तर देने वाले लोग बेहतर उत्तरों की तुलना में अधिक उत्थान प्राप्त करते हैं।
माल्टीसेन

@ केनीलाउ ओह कि अनुमति है, derp।
माल्टीसेन

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

TSQL, 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)?
आउटगोल्फ जूल

@ E @G reverse धन्यवाद, मैंने नहीं देखा कि रिवर्स में जाना एक विकल्प था। यह भी सिर्फ करने के लिए पर्याप्त है 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
मैंने इसे गैर-प्रतिस्पर्धात्मक बनाने के लिए संपादित किया क्योंकि Mathematica 11.0 अगस्त 8 को जारी किया गया था
Leaky Nun

1

मैथेमेटिका, 46 बाइट्स

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

स्पष्टीकरण:

[1] में: = IntegerDigits [123456,10]                                                

बाहर [1] = {1, 2, 3, 4, 5, 6}

[2] में: = डायगनमालमैट्रिक्स @ इंटेगरडिजिट्स [१२३४५६,१०] // मैट्रिक्सफार्म                   

आउट [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 5 0

                    0 0 0 0 0 6

[३] में: = डायगनमालमैट्रिक्स @ इंटेगरडिजिट्स [१२३४५६,१०] ~ FromDigits ~ १०                   

बाहर [३] = {१०००००, २००००, ३०००, ४००, ४०, ५०, ६}

का बहुत ही अप्रत्याशित उपयोग DiagonalMatrix। कृपया बताएं कि इस मामले में यह कैसे काम करता है।
डेविड 15

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

जावास्क्रिप्ट (ईएस 7), 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))

बस मज़े के लिए :) यह अधिक गोल्फ हो सकता है, लेकिन मुझे यकीन नहीं है कि कैसे।

ईएस 7, 66 बाइट्स

यदि ES7 की अनुमति है तो:

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

0

, 17 बाइट्स

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

दो नोट:

  1. आधार परिवर्तन के साथ बग के कारण तीसरा परीक्षण मामला काम नहीं करता है। चरण / ओ # 68 देखें ।

  2. यह ऑनलाइन दुभाषिया में काम नहीं करता है। bअभी तक लागू नहीं किया गया था।


0

> <>, 28 बाइट्स

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

कार्यक्रम शुरू होने पर स्टैक पर मौजूद इनपुट मानों की अपेक्षा करता है।

जैसा कि> <> में वस्तुओं की सूची नहीं है, पहली पंक्ति में 'इकाइयों' के साथ आउटपुट को मानों की एक नई-अलग-अलग सूची के रूप में प्रस्तुत किया गया है। एक उदाहरण रन:

Input: 
11 2

Ouput:
1
2
0
8

@OP, यदि यह स्वीकार्य आउटपुट प्रारूप नहीं है, तो मुझे बताएं और मैं तदनुसार उत्तर संपादित करूंगा।


0

PHP, 55 बाइट्स

Windows-1252 एन्कोडिंग का उपयोग करता है।

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(♀ⁿ@♂≈♀*;░

इसे ऑनलाइन आज़माएं!

यह सबमिशन गैर-प्रतिस्पर्धात्मक है क्योंकि इस चुनौती के बाद कमांड को जोड़ा गया था।

स्पष्टीकरण:

;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।)

इसे ऑनलाइन आज़माएं!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.