किसी पूर्णांक n को उस सूची में मोड़ें जिसमें वह n बार हो


15

एक पूर्णांक nको इनपुट के रूप में देखते हुए , एक सूची युक्त n, बार- nबार वापस लौटाएं । उदाहरण के लिए, कार्यक्रम इसे ले जाएगा 5और इसे चालू करेगा [5,5,5,5,5]। तत्वों को पूर्णांक होना चाहिए, तार नहीं। कोई अंतर्निहित कार्य जो कार्य को पूरा करने की अनुमति है।

यह , इसलिए मानक नियम लागू होते हैं।


43
@BrunoE कि अभी भी क्यों जवाब नहीं है । क्या आपके पास बिल-इन पर प्रतिबंध लगाने का वास्तविक कारण है? एक्सनॉर को उद्धृत करने के लिए: सामान्य तौर पर, यदि आपकी चुनौती दिलचस्प होना बहुत आसान है, तो चीजों पर प्रतिबंध लगाने से इसे बचाया नहीं जाएगा।
लिन

13
@BrunoE जबकि मैं भावना से सहमत हूं, हम पीपीसीजी में निष्पक्षता पसंद करते हैं। या तो कुछ मान्य है या मान्य नहीं है, राय समीकरण में नहीं आना चाहिए।
स्किड्सदेव

5
@BrunoE चश्मा ऐसा बनाया जाना चाहिए कि कोई निर्विवाद रूप से तय कर सके कि कोई प्रविष्टि वैध है या नहीं। कृपया अपने विचारों को मौजूदा उत्तरों पर साझा करें और जब यह आता है तो चश्मा को अधिक उद्देश्यपूर्ण बनाएं built-in
श्री एक्सकोडर

6
मैं अभी भी उलझन में हूँ कि इस कार्य के लिए "अंतर्निहित" के रूप में क्या मायने रखता है। क्या पायथन का *ऑपरेटर ठीक है? बिल्ट-इन का एक उदाहरण क्या ठीक नहीं है?
स्टीव बेनेट

8
मुझे आश्चर्य है कि किसी ने भी अभी तक इसका उल्लेख नहीं किया है, लेकिन हमारे पास चुनौतियों के लिए एक सैंडबॉक्स है जहां आप उन पर प्रतिक्रिया प्राप्त करने के लिए पोस्ट कर सकते हैं, इससे पहले कि वे लाइव हों। इस तरह आपने चुनौती के नियमों पर चर्चा करने से रोका हो सकता है जबकि अन्य ने पहले ही अपने जवाब प्रस्तुत कर दिए हों।
JAD

जवाबों:


32

जेली , 1 बाइट

x

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

ध्यान दें कि यह है नहीं "दोहराने n nबार" में निर्मित - अपने कार्य की तुलना में अधिक सामान्य है। उदाहरण के लिए 4,5,6x1,2,3बराबर है [4, 5, 5, 6, 6, 6]। केवल एक तर्क को देखते हुए, जेली सिर्फ आपूर्ति लिंक के लिए बाएं और दाएं तर्क दोनों के रूप में इसका उपयोग करने के लिए होता है, लेकिन यह कार्यक्षमता अंतर्निहित नहीं है x

यदि यह गणना नहीं करता है, तो 2-बाइट विकल्प के विभिन्न मज़ेदार विकल्प हैं:

x` ṁ` Ra Rị R» a€ oR oḶ oṬ oẊ Ḷị Ḷ» Ṭị Ṭ» Ẋị Ẋ» ị€ ṛ€ ȧ€ »€

आदि।


10
सही है। हर कोड गोल्फ उत्तर बिल्ट-इन का एक संग्रह है जो कार्य को पूरा करता है। यदि आप x"सभी काम" करते हैं, तो आप इस उत्तर पर प्रतिबंध लगा सकते हैं , लेकिन यह निश्चित रूप से नहीं करता है - लिंक-पार्सिंग और एरे-कॉर्कियन तर्क का एक निहित "0 बाइट्स" है repeat([n], n)जो इसे चालू करने के लिए चल रहा है , जो वास्तव में अन्य उत्तर है कर।
लिन

8
@ Adám यह "एक्स रे टाइम के प्रत्येक तत्व को दोहराता है" 2 तर्क लेता है। यह कार्य को पूरा करता है कि कैसे जेली पार्स निहितार्थ तर्क देता है, जिसका फ़ंक्शन के साथ कुछ भी नहीं है।
एरिक आउटॉलफर

6
यदि यह उत्तर अमान्य है, तो प्रश्न का अवरोध "कोई बिल्ड नहीं है" यह "नहीं 1 बाइट उत्तर" है, जो एक अत्यंत मनमानी सीमा है जो कोड गोल्फ में उल्टा लगता है।
कामिल दकरी

8
मुझे लगता है कि यह बिल्ट-इन नहीं होने के प्रति एक तर्क यह है कि जेली में दो अन्य 1 बाइट उत्तर हैं जो एक ही काम करते हैं और इसलिए यह उत्तर तीन में से कोई भी हो सकता है। "बार- n nबार" के लिए 3 बिल्ट-इन (एक आशा है) नहीं होगा , इसलिए वे सभी इसके लिए एक "अंतर्निहित" नहीं हो सकते।
nmjcman101

6
यह पूरी टिप्पणी थ्रेड बिल्डरों के रूप में व्यक्तिपरक के रूप में कुछ पर प्रतिबंध लगाने के लिए एक अच्छा तर्क है।
त्रिकोप्लक्स

22

क्या गलत है बस [n]*n?

3
@paxdiablo यह एक स्निपेट है। हम मेटा सर्वसम्मति के अनुसार पूर्ण कार्यक्रम या कार्य बना सकते हैं।
श्री एक्सकोडर

19

ऑपरेशन फ्लैशपॉइंट स्क्रिप्टिंग भाषा,  50  46 बाइट्स

f={a=[];t=_this;while{count a<t}do{a=a+[t]};a}

के साथ बुलाना:

hint format["%1", 5 call f]

आउटपुट:


क्या आपके पास पद में कमी है i--, और +=इसमें?
TheLethalCoder

3
इसके लिए स्क्रीनशॉट हमेशा एक बंजर रेगिस्तान में क्यों हैं? आपको अपने स्क्रीनशॉट के लिए एक शांत मानचित्र का उपयोग करना चाहिए: पी।
मैजिक ऑक्टोपस Urn

2
@MagicOctopusUrn क्या यह बेहतर है?
स्टेडीबॉक्स

1
@Steadybox अहा! महाकाव्य: पी। क्या वह शहर मृत के लिए छोड़ दिया गया है? यह आप थोड़े में शुरू चर्च की तरह लग रहा है।
मैजिक ऑक्टोपस Urn

1
मुझे लगता है कि स्क्रीनशॉट को छोटी छवि पर पोस्ट किया जाना चाहिए। हमें मानचित्र देखने की आवश्यकता नहीं है, और यह वास्तविक आउटपुट से विचलित करता है।
mbomb007

12

एपीएल (डायलॉग) , 2 बाइट्स

पांच समान रूप से छोटे समाधान। अंतिम दो जकरज़ी के सौजन्य से हैं ।


⍴⍨

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

 चक्रीय रूप से r eshape

 स्वयं


/⍨

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

/ दोहराने

 स्वयं


\⍨

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

\ विस्तार

 स्वयं


⌿⍨

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

 पहले (और केवल) अक्ष के साथ दोहराएं

 स्वयं


⍀⍨

 पहले (और केवल) अक्ष के साथ विस्तार करें

 स्वयं

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


@Uriel एक और नहीं है ...
एडम

1
दोनों ⌿⍨और ⍀⍨काम।
Zacharý

2
क्या यह जानबूझकर किया गया था कि 'स्व' एक चेहरे की तरह दिखता है?
geokavel

1
@geokavel मुझे ऐसा नहीं लगता, लेकिन मैंने इसे भी इस पोस्ट को टाइप किया। यह सुंदर mnemonic बनाता है, नहीं? वास्तव में, सेल्फी इसके अर्ध-आधिकारिक नामों में से एक है, इसलिए DIDEog APL को RIDE इंटरफ़ेस में, आप `` सेल्फ़ी टाइप करके सम्मिलित कर सकते हैं ।
अड्म

1
@ सेथ्रिन TIO वर्ण (और UTF-8 बाइट्स जहां लागू हो) को गिनाता है, लेकिन यह सुनिश्चित करने के लिए उपयोगकर्ता पर निर्भर है कि वे किसी भी वर्ण का उपयोग नहीं करते हैं जो एकल-बाइट वर्ण सेट (SBCS) से गायब हैं। एपीएल के लिए, यहां देखें।
एड्म



9

Octave, 12 bytes

@(n)~(1:n)+n

Try it online!


What does the ~ in octave, because that's the only part of your code I don't understand..
Michthan

1
@Michthan Sorry for late reply. ~ is the not operator that converts 1:n to an array of 0s of size n. You can use ! instead of it.
rahnema1

9

JavaScript (ES6), 19 bytes

n=>Array(n).fill(n)

Try it

o.innerText=(f=
n=>Array(n).fill(n)
)(i.value=8);oninput=_=>o.innerText=f(+i.value)
<input id=i type=number><pre id=o>


3
An array without ... - whatever next?!
Neil

1
@Neil: it felt wrong even as I was typing it! :D
Shaggy


7

Haskell, 13 bytes

f n=n<$[1..n]

Try it online! Usage: f 5 yields [5,5,5,5,5]. For n=5, [1..n] yields the list [1,2,3,4,5]. n<$ replaces each element of this list with n.


3
Mine's a bit longer, but I like it anyway: join replicate
amalloy

@amalloy This would indeed be the clean Haskell way to do it. However, join is not part of Prelude and thus requiers a lengthy import Control.Monad, which rarely makes it useful for golfing.
Laikoni



5

Dodos, 76 bytes

	f f r 2
2
	
	
r
	r d
	f s t f
d
	dip f s t
	f
t
	dot f
	dot
s
	s dip
f
	dab

Try it online!

Explanation:

f is an alias for dab (tail).

s is subtraction, as explained on the wiki: (x, y) → (0, y−x) when x ≤ y.

t maps (a, b, c…) to (b+c+…, a+b+c+…).

f s t maps (a, b, c…) to a. This is our “head” function.

d dips only the head of its argument: (a, b, c…) → (|a−1|, b, c…)

r is the main repetition logic. We map (a, b) to (*r(|a−1|, b), b).

For example, r(4, 7) will evaluate as

  r(4, 7)
= r(3, 7), 7
= r(2, 7), 7, 7
= r(1, 7), 7, 7, 7
= r(0, 7), 7, 7, 7, 7
  → This would call r(1, 7), but (1, 7) ≥ (0, 7), so surrender!
= 0, 7, 7, 7, 7, 7.

Finally, we define 2, which maps n → (n, n), and define main as f f r 2, computing r(n, n) and chopping off the first two elements.


4

Japt, 2 bytes

ÆU

Test it


Explanation

Implicit input of integer U. Generate an array of integers from 0 to U-1. Fill it with U. Implicit output of resulting array.


4

TeX, 81 बाइट्स

\newcommand{\f}[1]{#1\count0=2\loop,#1\advance\count0 by1\ifnum\count0<#1\repeat}

प्रयोग

\documentclass[12pt,a4paper]{article}
\begin{document}
\newcommand{\f}[1]{#1\count0=2\loop,#1\advance\count0 by1\ifnum\count0<#1\repeat}

\f{5}

\f{10}
\end{document}

यहां छवि विवरण दर्ज करें


यह वास्तव में LaTeX है। टेक्स में यह बहुत छोटा होगा।
एक गोल्ड मैन


4

हास्केल (14 बाइट्स)

replicate>>=id

@Nimi के लिए धन्यवाद, मुझे अब किसी भी आयात की आवश्यकता नहीं है। वाह!

यह एक फ़ंक्शन है जो पूर्णांक तर्क लेता है; उदाहरण के लिए, निम्नलिखित रिटर्न [5,5,5,5,5]:

(replicate>>=id) 5

1
क्यों नहीं id=<<replicate? यह भी 14 बाइट्स है, लेकिन आयात की जरूरत नहीं है।
नीमी

@ नमि बहुत अच्छी बात! उस संभावना को नजरअंदाज कर दिया। (मुझे वास्तव में तीर
मोनाड में

4

जावा (ओपनजेडके 8) , 50 48 बाइट्स

n->java.util.Arrays.stream(new int[n]).map(i->n)

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

-2 बाइट्स @ जाकोब को धन्यवाद

@ OlivierGrégoire की पोस्ट में टिप्पणियों से प्रेरित होकर, और थोड़ा और अनुकूलित किया। पूर्णांक इनपुट लेता है, nतत्वों का इंट्रीस्ट बनाता है , फिर प्रत्येक तत्व को मैप करता है nऔर उसे लौटाता है।


आप शुरू करके 2 बाइट्स बचा सकते हैं java.util.Arrays.stream(new int[n])
जैकब

4

पर्ल 5 , 18 14 बाइट्स

-4 बाइट्स @DomHastings की बदौलत

sub{(@_)x"@_"}

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

क्या xएक बिलियन है जो पूरे कार्य करता है? की तरह? ज़रुरी नहीं? नियम स्पष्ट नहीं हैं?

संपादित करें: हाँ, शायद यह ठीक है।


बहुत ज्यादा एक ही था, लेकिन आप पहली बार बदल सकते हैं $_[0]करने के लिए @_! इसके अलावा दूसरा "@_"मैं सोच सकता हूं ...
डोम हेस्टिंग्स

मैं कहूंगा कि यह बिल्ट-इन के रूप में नहीं है क्योंकि आपको इस तथ्य के आसपास काम करना होगा कि यह एक के बजाय दो इनपुट लेता है।
ब्रैड गिल्बर्ट b2gills

क्यों नहीं के $_=$_ x$_साथ perl -pe?
थोर

@ थोर xदोहराव नहीं करता, सूची पुनरावृत्ति नहीं, जब तक कि बाएं ऑपरेंड कोष्ठक (या एक qwऑपरेटर) में नहीं है और xसूची के संदर्भ में मूल्यांकन किया जाता है। और निश्चित $_ही एक अदिश है, सूची नहीं है।
aschepler

1
@ मैं इस बात को स्वीकार नहीं करूंगा कि "एक सूची लौटाएं"।
aschepler

3

जे, 2 बाइट्स

$~

APL उत्तर के रूप में भी: रिफ्लेक्सिबल रूप से इनपुट को आकार दें। दूसरे शब्दों में:

$~ y
y $ y
NB. y copies of y

3

ब्रेनबैश , 39 बाइट्स

>-[-[-<]>>+<]>->#[->+>+<<]>>[-<;<<.>>>]

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

प्रिंट N Nबार। 32 को जनरेट करके काम करता है, इनपुट लेता है, फिर इनपुट को दो बार डुप्लिकेट करता है, फिर दूसरे में प्रत्येक 1 के लिए पहले आउटपुट करता है।


3

सी (जीसीसी) , 55 बाइट्स

int*f(k){int*r=malloc(k*4),a=k;for(;a-->0;)r[a]=k;k=r;}

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

kपूर्णांकों की सूची लौटाता है ।


1
याय "लॉन्ग एरो ऑपरेटर"। इसके अलावा, मुझे नहीं लगा कि जीसीसी कभी भी eaxस्थानीय लोगों के लिए रजिस्टर का उपयोग करेगा । जाओ पता लगाओ।
aschepler

2
जब तक मैंने कुछ अनदेखा नहीं किया है, तब तक आप साइकिल से 0 की तुलना को हटाकर 2 बाइट्स बचा सकते हैं।
जैम्स

*f(k){int r[k],इसके बजाय सुझावint*f(k){int*r=malloc(k*4),
छत

3

रोड़ा , 10 बाइट्स

{[[_]*_1]}

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

स्पष्टीकरण:

{[[_]*_1]}
{        } /* Anonymous function   */
   _       /* The input (_1)       */
  [ ]      /* As a list            */
     *_1   /* Repeated _1 times    */
 [      ]  /* Pushed to the stream */

1
आप पहले इनपुट में 1 को क्यों छोड़ सकते हैं लेकिन दूसरे को नहीं?
कॉनर ओ'ब्रायन

1
@ ConorO'Brien बिना संख्या के प्रत्येक अंडरस्कोर में एक संख्या होती है जो पिछले की तुलना में एक बड़ी होती है: [_]*_= [_1]*_2। क्योंकि पहला अंडरस्कोर पहला है, इसमें स्वचालित रूप से नंबर 1 है
fergusq


3

ब्रेनफक , 16 बाइट्स

[->+>+<<]>[->.<]

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

विभाजन:

[->+>+<<]          Duplicate 'n' into the next 2 cells to the right
         >         Move to the first duplicate
          [->.<]   Print 'n', 'n' times

जैसा कि मुझे यकीन है कि आप जागरूक हैं, ब्रेनफॉक ASCII वर्णों के रूप में इनपुट और आउटपुट मान लेता है। इसलिए a !को 33 मान के रूप में दर्शाया गया है।


आपका कार्यक्रम इनपुट नहीं लेता है, मुझे नहीं लगता। जब तक आप टेप पर छोड़ दिए गए मूल्य के बारे में बात नहीं कर रहे हैं
कॉनर ओ'ब्रायन

@ ConorO'Brien सीढ़ी। इसे प्रोग्राम की तुलना में फंक्शन के रूप में सोचें।
Graviton

3

Coreutils, sed, 14 बाइट्स

yes $1|sed $1q

एक zsh फ़ंक्शन के रूप में, 20 19 बाइट्स:

f(){yes $1|sed $1q}

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


मुझे नहीं लगता कि यह जवाब मान्य है, क्योंकि यह इनपुट नहीं लेता है।
जेम्स

@DJMcMayhem: एक समारोह में इसका इस्तेमाल किया
थोर

सिर्फ इसे एक कार्यक्रम क्यों न बनाएं yes $1|sed $1q?
डिजिटल ट्रॉमा

अच्छी बात @DigitalTrauma, अद्यतन
Thor

नियम कहते हैं कि यह पूर्णांक तत्व होना चाहिए, न कि स्ट्रिंग तत्व। संतुष्ट करने के लिए, एक बाश / zsh उत्तर को declare -iपूर्णांक चर का उपयोग करने की आवश्यकता होगी । लेकिन यह भी एक सरणी होना चाहिए। मुझे यकीन नहीं है कि बश भी एक पूर्णांक सरणी का समर्थन करता है (जैसे eval declare -ia "$1"कि सरणी वापसी मान के नाम के रूप में पहला फ़ंक्शन arg का उपयोग करना।) मैंने इसे upvott किया क्योंकि यह प्रश्न की भावना का अनुसरण करता है; मुझे संदेह है कि सवाल उन भाषाओं को बाहर करने का है जो वास्तव में पूर्णांक सूची / सरणियाँ नहीं हैं।
पीटर कॉर्ड्स


2

जावा (ओपनजेडके 8) , 58 56 बाइट्स

n->{int a[]=new int[n],i=n;for(;i-->0;)a[i]=n;return a;}

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

-2 बाइट्स @ केविनक्रूजसेन को धन्यवाद


1
दो बाइट्स छोटे:n->{int a[]=new int[n],i=n;for(;i-->0;)a[i]=n;return a;}
केविन क्रूज़सेन

@ केविनक्रूजसेन आउच, यह दुख होता है कि मैंने इस बारे में नहीं सोचा था ... धन्यवाद!
ओलिवियर ग्रेगोइरे

हम में से सबसे अच्छे के साथ भी होता है। ;) यदि आप मेरे उत्तर इतिहास में देखते हैं, तो आपको शायद कुछ उत्तर भी मिलेंगे जहाँ मैं "बाइट्स सेव थैंक्स ..." की तर्ज पर कुछ जोड़ देता हूँ। अपने आप से एक बेवकूफ गलती के कारण / कुछ स्पष्ट मैं भूल गया .. ":)
केविन क्रूज़सेन

मैंने एक उत्तर के बारे में सोचा, IntStream.generate(() -> n).limit(n)लेकिन यह तय किया कि यह टाइप करने और इसे आगे बढ़ाने के लायक नहीं है :)
जॉलीजॉकर

1
@ जॉली जोकर आप कर सकते थे ! यह वास्तव में है दो छोटे बाइट्स और आसानी से मेरा उत्तर हरा होगा ;-)
ओलिवर Grégoire


2

स्विफ्ट 3 , 29 बाइट्स

{n in(0..<n).map{_ in n}}

यहाँ यह कोशिश करो!

स्विफ्ट 3 , 30 बाइट्स

{Array(repeating:$0,count:$0)}

यहाँ यह कोशिश करो!


मुझे आश्चर्य है कि अगर हम दो बार दोहराए गए समान चर के रूप में इनपुट प्राप्त कर सकते हैं। तो आप एक 10 बाइट समाधान हो सकता है Array.init:। बस इसे एक प्रकार के उपनाम के साथ एक चर में असाइन करें, और उछाल:let f: (Int, Int) -> [Int] = Array.init; print(f(5, 5))
अलेक्जेंडर - मोनिका

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