प्रत्येक एन-वें एन को हटा दें


41

काम

इस चुनौती में, आपका इनपुट सकारात्मक पूर्णांकों की गैर-रिक्त सूची है, जो आपकी भाषा के मूल प्रारूप में दी गई है। आपका आउटपुट समान सूची है, उसी प्रारूप में, कुछ तत्वों को हटा दिया गया है। आप 1हर दूसरी घटना 2, हर तीसरी घटना 3, और इसी तरह की हर घटना को दूर करेंगे । सामान्य तौर पर, प्रत्येक सकारात्मक पूर्णांक के लिए N, आप सूची से प्रत्येक Nघटना को हटा देंगे N, जो कि Nवें घटना से शुरू होता है ।

उदाहरण

इनपुट सूची पर विचार करें

[3,2,6,1,1,6,2,3,2,6,6,6,6,1,6,6,3,3,7,2]

सबसे पहले, हम हर घटना को दूर करते हैं 1:

[3,2,6,    6,2,3,2,6,6,6,6,  6,6,3,3,7,2]

फिर हर दूसरी घटना 2:

[3,2,6,    6,  3,2,6,6,6,6,  6,6,3,3,7  ]

फिर हर तीसरी घटना 3:

[3,2,6,    6,  3,2,6,6,6,6,  6,6,  3,7  ]

नंबर 4और 5इनपुट में नहीं होते हैं, इसलिए उन्हें छोड़ दिया जा सकता है। अगला, हम हर छठी घटना को हटाते हैं 6:

[3,2,6,    6,  3,2,6,6,6,    6,6,  3,7  ]

वहाँ केवल एक घटना है 7, ताकि साथ ही छोड़ दिया जा सके। इस प्रकार सही आउटपुट है

[3,2,6,6,3,2,6,6,6,6,6,3,7]

नियम और स्कोरिंग

आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। सबसे कम बाइट गिनती जीतता है, और मानक खामियों को रोक दिया जाता है।

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

[1] -> []
[2] -> [2]
[1,1,1] -> []
[2,2,2] -> [2,2]
[1,1,2,2,2,3,3,3,3] -> [2,2,3,3,3]
[1,2,3,1,2,3,1,2,3,1,2,3] -> [2,3,3,2,3]
[3,2,6,1,1,6,2,3,2,6,6,6,6,1,6,6,3,3,7,2] -> [3,2,6,6,3,2,6,6,6,6,6,3,7]
[5,4,5,4,3,5,4,5,4,5,4,3,5,4,5,3,3,3,4,5,4,5,4,5,4,3,3,3,5,4] -> [5,4,5,4,3,5,4,5,4,3,5,4,5,3,3,4,5,5,4,4,3,3,5,4]
[6,4,5,8,2,9,3,1,8,5,3,5,5,6,3,5,1,2,3,9,3,5,8,7,5,9,1,3,4,8,2,3,4,7,8,5,8,5,3,1] -> [6,4,5,8,2,9,3,8,5,3,5,5,6,3,9,3,5,8,7,5,9,4,8,2,3,4,7,8,5,8,5,3]
[4,4,9,12,9,4,4,4,12,9,12,9,12,4,12,4,4,9,4,9,12,4,12,4,4,12,4,4,9,12,9,12,9,4,9,12,4,9,12,9,12,9,4,9,12,12,4,4,12,4] -> [4,4,9,12,9,4,4,12,9,12,9,12,4,12,4,9,4,9,12,4,12,4,12,4,4,9,12,9,12,4,9,12,9,9,12,9,4,9,12,12,4,4,12]
[2,2,11,11,11,11,6,2,2,6,6,2,2,2,2,6,11,6,11,11,2,11,2,6,6,11,2,11,6,2,6,6,6,6,6,11,2,11,11,6,6,6,11,6,2,6,2,6,6,2,11,2,2,11,11,11,11,2,6,2] -> [2,11,11,11,11,6,2,6,6,2,2,6,11,6,11,11,2,11,6,11,2,11,6,6,6,6,6,2,11,11,6,6,6,11,6,2,6,6,11,2,11,11,11,11,2,6]
[20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102] -> [20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,21,22,100,101,102,20,22,100,101,102,20,21,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,21,22,100,101,102,20,21,22,100,101,102,20,22,100,101,102,20,21,22,100,101,102,20,21,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,21,22,101,102,20,21,22,100,102,20,21,22,100,101,20,21,22,100,101,102,20,21,22,100,101,102,20,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,22,100,101,102,20,21,100,101,102]

लीडरबोर्ड

यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है। यह सुनिश्चित करने के लिए कि आपका उत्तर दिख रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:

## Language Name, N bytes

Nआपके प्रस्तुत करने का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:

## Ruby, <s>104</s> <s>101</s> 96 bytes

यदि आप अपने हेडर में कई नंबर शामिल करना चाहते हैं, तो सुनिश्चित करें कि हेडर में वास्तविक स्कोर अंतिम संख्या है:

## Perl, 43 + 2 (-p flag) = 45 bytes

आप भाषा के नाम को एक लिंक भी बना सकते हैं जो लीडरबोर्ड स्निपेट में दिखाई देगा:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes

जवाबों:


15

जेली , 10 8 बाइट्स

=;\S€%af

2 बाइट बंद करने के लिए @ Sp3000 को धन्यवाद!

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

यह काम किस प्रकार करता है

=;\S€%af    Main link. Input: A (list)

 ;\         Compute the cumulative concatenations of the elements of A, i.e., the
            list of A's prefixes.
=           Compare the elements of the nth prefix with the nth element of A.
   S€       Compute the sum of the resulting arrays.
     %      Take the nth sum modulo the nth element of A.
      a     Logical AND; replace the nth remainder with the nth element of A
            if the remainder is non-zero.
        f   Filter; remove the zeroes (which do not occur in A) from the result.

वह तुलनात्मक कदम कैसे काम करता है? और [5,4,3,2,1] [[5], [5,4], [5,4,3], [5,4,3,2], [5,4, के उपसर्ग हैं] 3,2,1]] या [[1], [2,1], [3,2,1], [4,3,2,1], [5,4,3,2,1]]?
क्विन्टोपिया

@ क्विंटोपिया जेली बाएं से दाएं है, इसलिए यह पहला है। =पूर्णांकों की तुलना करता है। उदाहरण के लिए, [3,2,1]=;\तुलना 3के तत्व के साथ [3], 2के लोगों के साथ [3, 2]और 1उन लोगों के साथ [3, 2, 1], दे रही है [1, [0, 1], [0, 0, 1]]
डेनिस

आह मुझे याद आ रहा था कि यह एक सूची को तत्व-दर-सूची की तुलना कर रहा था।
क्विन्टोपिया

34

awk, 10 बाइट्स

STDIN, प्रति पंक्ति एक नंबर पर इनपुट अपेक्षित है।

++a[$1]%$1

व्याख्या

एक सहयोगी सरणी में प्रत्येक संख्या के लिए एक काउंटर रखता है, केवल तभी प्रिंट करता है जब काउंटर वैल्यू मोडुलो nशून्य नहीं होता है। मुद्रण निहित है। दीर्घ संस्करण:

++a[$1]%$1{print $0}

19

पायथ, 18 15 14 10 9 बाइट्स

f%/aYTTTQ

मुझे लगता है कि यह पहला कोड है जो मैंने लिखा है जिसमें नौ बाइट्स में लगातार पांच चर संदर्भ हैं।

मुझे लगता है कि सरणी हेरफेर समाधान ( u.DG%HgxHGH{QQ, 14 बाइट्स) इतने लंबे नहीं थे।

f%/aYTTTQ       Implicit: Q=input
                 lambda T:
    Y              Variable: starts as empty list.
   a T             Append T to Y. Mutates Y.
  /   T           Number of elts of Y that equal T.
 %     T         Modulo by T
f       Q       Filter that lambda over Q.

इसे यहाँ आज़माएँ ।


9

पायथन, 57 बाइट्स

lambda l:[n for i,n in enumerate(l)if l[:i+1].count(n)%n]

8

पर्ल 6 , 28 बाइट्स

{$_=$;grep {++.{$^n}%$n},@_} # 28 bytes
{
  $_=$;        # put $_ in a clean state
  grep {
    ++.{$^n}   # increment $_{ $n } and declare $n as an argument
    % $n       # check if the count is not divisible by $n
  }, @_        # the input
}

उपयोग:

# give it a lexical name for ease of use
my &code = {...}

sub check ( @a, @b ){
  say try { so all code(@a) »==« @b } // False
}

check [1], []; # True
check [2], [2]; # True
check [1,1,1], []; # True
check [2,2,2], [2,2]; # True
check [1,1,2,2,2,3,3,3,3], [2,2,3,3,3]; # True
check [1,2,3,1,2,3,1,2,3,1,2,3], [2,3,3,2,3]; # True
check [3,2,6,1,1,6,2,3,2,6,6,6,6,1,6,6,3,3,7,2], [3,2,6,6,3,2,6,6,6,6,6,3,7]; # True

डबल चेक करें कि सही तत्वों को फेंका जा रहा है

# have to change it to a pure number
# when checking $_         V
my &code = {$_=$;grep {++.{+$^n}%$n},@_}
# only matters here because we are using
# a subclass of Int but want it to use
# the same key as a normal Int

sub F ( Int $v ) { IntStr.new: $v, "Fail($v)" }
# prove that it passes through unchanged
say [F(2)];
# (Fail(2))

say code [3,2,6,F(1),F(1),6,F(2),3,2,6,6,6,F(6),F(1),6,6,F(3),3,7,F(2)];
# (3 2 6 6 3 2 6 6 6 6 6 3 7)

7

गंभीरता से, 22 17 बाइट्स

k╗,;`;;╜o;╗c%`M@░

हेक्स डंप:

6bbb2c3b603b3bbd6f3bbb6325604d40b0

यह ऑनलाइन की कोशिश करो

स्पष्टीकरण:

k╗                                Put empty list in reg0
  ,;                              Two copies of input
    `        `M                   Map over the list
     ;;                           Make 2 extra copies of n
       ╜o                         Load reg0 and push the n onto it
         ;╗                       Put a copy back in reg0
           c                      Count the number of copies of n in the list
            %                     Take the result modulo n
               @░                 Filter the original list with the resulting list

10
यह भाषा ...
निको

6

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

a=>a.filter(v=>f[v]=-~f[v]%v,f=[])

ब्रैड के पर्ल एल्गोरिथ्म के समान ही निकला।

संपादित करें: @ edc65 के लिए 2 बाइट्स सहेजे गए।


अच्छा! आंतरिक कोष्ठकों को हटाने वाले 2 बाइट्स a=>a.filter(v=>f[v]=-~f[v]%v,f=[])
बचाएं

5

गणितज्ञ, 40 38 36 बाइट्स

Select[(f@#=#)&/@#,++f[#]~Mod~#>0&]&

यह एक अनाम फंक्शन है जिसे लेना और लौटाना है Listfनिष्पादित होने पर एक नामित फ़ंक्शन को परिभाषित करता है (संख्याओं पर नज़र रखने के लिए), लेकिन fपहले से संबंधित परिभाषाओं को रीसेट करने का ख्याल रखता है ।

व्याख्या

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

यदि हम कोड से गोल्फ को हटा दें तो यह इस तरह दिखाई देगा:

g[list_] := (
  Map[
    (f[#] = #) &,
    list
  ];
  Select[
    list,
    Mod[++f[#], #] > 0 &
  ]
)

तो पहले, हम इनपुट पर लूप करते हैं और सूची में f[x] = xसभी के लिए परिभाषित xकरते हैं। fअंत में इसका उपयोग इस बात पर नज़र रखने के लिए किया जाएगा कि सूची में प्रत्येक संख्या कितनी बार पहले ही दिखाई दे चुकी है। हम क्यों नहीं गिनते 0? सूची पर लूप एक है Map। अभिव्यक्ति f[x] = yलौटती है y(फ़ंक्शन परिभाषा को संग्रहीत करने के अलावा)। इसलिए सेटिंग f[x]पर xजाकर, नक्शा इनपुट सूची का मूल्यांकन करेगा। यह दो बाइट्स बचाता है क्योंकि तब हमें listफिर से स्पष्ट रूप से प्रदान करने की आवश्यकता नहीं है Select। के xबजाय से शुरू करने से 0गणना पर कोई असर नहीं पड़ता क्योंकि हम केवल कभी भी इसमें रुचि रखते हैं Mod[f[x], x]

(आम तौर पर हम कुछ ऐसी चीज़ों का इस्तेमाल कर सकते हैं जिनसे f[_] = 0बचने के लिए फॉलबैक परिभाषा के रूप में इस्तेमाल किया जा सकता है Map, लेकिन हम नहीं जानते कि क्या हमारे फ़ंक्शन का उपयोग पहले किया गया है, जो कि पिछले कुछ मूल्यों को परिभाषित करेगा जो हमारी गिनती के साथ गड़बड़ कर देगा।

फिर Selectकेवल उन तत्वों को रखकर सूची को फ़िल्टर किया जाता है, जहां अनाम फ़ंक्शन दूसरे तर्क के रूप में पारित किया गया था True। यह फ़ंक्शन घटनाओं को गिनने के लिए पहलेf[x] (जहां xवर्तमान सूची तत्व है) का मान बढ़ाता है , और फिर परिणामी गणना मोडुलो लेता है x। हम सभी तत्वों को छोड़ना चाहते हैं जहां यह पैदावार देता है 0


5

सीजेएम, 17 बाइट्स

Lq~{:X+_Xe=X%},p;

बस हरा ... जे? यकीन नहीं होता कि इस चुनौती के लिए मेरी क्या उम्मीदें हैं, वास्तव में। ध्यान दें कि ""CJam एक खाली सरणी का प्रतिनिधित्व करता है।

इसे ऑनलाइन आज़माएं | टेस्ट सूट (आखिरी मामला बहुत लंबा है)

व्याख्या

L                     Push empty array (let's call it L)
 q~                   Push input and evaluate

   {         },       Filter the array elements by...
    :X                   Save number to variable X
      +                  Append to L

       _                 Duplicate
        Xe=              Count occurences of X
           X%            Take modulo X

                      The top element is popped to determine whether or not to keep that
                      element, with the updated L kept on the stack for the next iteration

               p      Print the resulting filtered array
                ;     Pop L, which is now equal to the input array

4

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

a=>a.filter((v,i)=>a.filter((w,j)=>j<=i&v==w).length%v)

व्याख्या

a=>                            //a -> input array
 a.filter(                     //filter array. only keep elements if inside function returns truthy
      (v,i)=>                  //inside function to decide whether to keep items. v -> item; i -> index
           a.filter((w,j)=>    //get all ocurrences of v that occur before index i
                j<=i&v==w      //(this is done by keeping all items w at index j, if j <= i and v == w
           ).length%v          //get length (count ocurrences), and mod v.
                               //this will only be falsy if the number of ocurrences of v up to this index is divisible by v. (0 -> falsy, positive -> truthy) 
 )                             //so, we don't keep every second 2, every third 3, etc.

3

जे, 18 बाइट्स

#~((0<]|+/@:=){:)\

उपयोग:

   (#~((0<]|+/@:=){:)\) 1 2 3 1 2 3 1 2 3 1 2 3
2 3 3 2 3

बहुत ही सीधी विधि। हम किसी संख्या के घटित होने की गणना करते हैं और संख्या का चयन करते हैं तो संख्या का विभाजन होता है।

अधिक स्पष्टीकरण बाद में आता है।

इसे यहाँ ऑनलाइन आज़माएँ।


2

पॉवरशेल, 56 बाइट्स

param($a)$b=,0*($a|sort)[-1];$a|%{if(++$b[$_-1]%$_){$_}}

रेनर पी के जवाब के रूप में एक समान सहायक-सरणी-चाल का उपयोग करता है , जिसे मैंने स्वतंत्र रूप से विकसित किया था लेकिन मुझे स्पष्ट रूप से FGITW'd मिला।

के साथ एक सरणी के रूप में इनपुट लेता है param($a)। हम तब $bओवरलोड गुणा संचालक के साथ मिलकर अल्पविराम ऑपरेटर का उपयोग करके हमारे सहायक सरणी को एक आबादी वाले-शून्य क्षेत्र सरणी के रूप में बनाते हैं । यह बनाता है $bके बराबर होना चाहिए @(0,0,0...0)साथ $b.lengthमें अधिक से अधिक संख्या के बराबर $a
(मेरी "अपनी भाषा दिखाएं" उत्तर के लिए त्वरित प्लग जहां मैं विस्तार से इसका वर्णन करता हूं)

अगला हमारा आउटपुट है। हम अपने इनपुट ऐरे के प्रत्येक तत्व पर लूप करते हैं $a|%{...}और प्रत्येक लूप एक ifस्टेटमेंट की जांच करते हैं। सशर्त हमारे सहायक सरणी में मूल्य को बढ़ाता है जो वर्तमान तत्व के साथ मेल खाता है, फिर यह जांचता है कि क्या यह मॉड्यूल तत्व के साथ वर्तमान तत्व का एक बहु है। यदि यह एक बहु है, तो %वसीयत समान है 0जो कि गलत है, इसलिए ifनिष्पादित नहीं होता है। अन्यथा, हम वर्तमान तत्व का उत्पादन करते हैं।

आउटपुट स्वरूपण पर सहेजने के लिए अंतर्निहित टाइपकास्टिंग का लाभ उठाता है। यदि कोई फ़ंक्शन या प्रोग्राम कई तत्वों को लौटाता है, और आप परिणामों को एक चर में सहेजते हैं, तो PowerShell गतिशील रूप से उस चर को एक सरणी के रूप में बनाएगा। उदाहरण:

PS C:\Tools\Scripts\golfing> $testc = .\remove-every-nth-n.ps1 @(2,2,2)

PS C:\Tools\Scripts\golfing> $testc
2
2

PS C:\Tools\Scripts\golfing> $testc.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------             
True     True     Object[]                                 System.Array

1

आर, 110 98 99 92 बाइट्स

function(a){for(i in 1:max(a))for(j in seq_along(b<-which(a==i)))if(j%%i<1)a[b[j]]=0;a[a>0]}

परीक्षण मामले 2/3 के साथ पूर्ण पुनर्लेखन फिक्स बग संपादित करें 2 संपादन @ एलेक्स-ए के लिए 7 बाइट्स सहेजें


1
92 बाइट्स:function(a){for(i in 1:max(a))for(j in seq_along(b<-which(a==i)))if(j%%i<1)a[b[j]]=0;a[a>0]}
एलेक्स ए।

1

MATL , 20 बाइट्स

tu"t@=f@@h0h)0w(]tg)

यह भाषा / संकलक की वर्तमान रिलीज़ (10.2.1) का उपयोग करता है ।

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

व्याख्या

tu        % implicitly input array. Duplicate and get unique elements
"         % for each unique element, say "i"
  t       % duplicate
  @=f     % indices of occurrences of i
  @@h0h   % build index representing i-th occurrences (Matlab's i:i:end)
  )       % keep only indices of i-th occurrences
  0w(     % set those entries to 0
]         % end for loop
tg)       % keep nonzeros only. Implicit display


1

सी #, 224 बाइट्स

List<int>R(List<int>l,int n=1){l=l.Where(w=>w!=0&&w!=1).ToList();for(int i=0,t=0;i<l.Count;i++){if(l[i]==n&&++t==n){l[i]=0;t=0;}}return !l.Any()||n>l.Max()?l:R(l,++n);}

यह कोड पुनरावृत्ति का उपयोग करता है। using224 बाइट्स के बयानों के साथ (विधि कोड के लिए 160)।

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

List <int> R(List <int> l, int n = 1)
{
    l = l.Where(w => w > 1).ToList();
    for (int i = 0, t = 0; i < l.Count; i++)
    {
        if (l[i] == n && ++t == n)
        {
            l[i] = 0;
            t = 0;
        }
    }
    return !l.Any() || n > l.Max() ? l : R(l, ++n);
}

जारी बयान को हटाकर आपको कुछ वर्णों को सहेजने में सक्षम होना चाहिए। कुछ इस तरह (अप्रकाशित)for(int i=0,t=0;i<l.Count;i++)if(l[i]==n&&++t==n)l[i]=t=0;
पीटर टेलर

@ पीटर-टेलर, आप सही कह रहे हैं, धन्यवाद। इसके अलावा, फिक्स्ड बग में कुछ कोड जोड़ना था।
दिमित्री स्टेपानोव

यदि आपने आयात किया है, System.Linqतो इससे !l.Any()छोटा है l.Count<1, जो इससे छोटा है l.Count==0
पीटर टेलर

@ पीटर-टेलर धन्यवाद, मैंने भी w != 0 && w !=1साथ दिया w > 1
दिमित्री स्टेपानोव

सरणियाँ भी अच्छी होनी चाहिए और वे थोड़े छोटे int होंगे [] R (int [] l, int n = 1)
raggy

0

सी # - 177 बाइट्स

void r(List<int> i){for(int c=1,k=1,m=i.Max();k<=m;k++){var n=new List<int>();foreach(var o in i)if(o==k&&c++==k)c = 1;else n.Add(o);i=n;}Console.WriteLine(string.Join(" ",i));}

Ungolfed

void r(List<int> i)
{
    for (int c = 1, k = 1, m = i.Max(); k <= m; k++)
    {
        var n = new List<int>();
        foreach (var o in i)
            if (o == k && c++ == k)
                c = 1;
            else
                n.Add(o);
        i = n;
    }
    Console.WriteLine(string.Join(" ", i));
}

4
मेरा मानना ​​है कि आपको उपयोग किए गए बयानों को गिनना होगा, इस स्थिति में यह 241 बाइट्स लंबा होगा।
लीजियनममाल 978 12

0

गणितज्ञ, 63 बाइट्स

Fold[Delete[#,Position[#,#2][[#2;;;;#2]]~Check~{}]&,#,Union@#]&

गोल्फ के लिए काफी दिलचस्प! कभी-कभार आने वाले संदेश को अनदेखा करें।



0

टीआई-बेसिक, 47 बाइट्स

Input X
For(I,1,dim(∟X
∟X(I
If fPart(sum(∟X=Ans),1,I)/Ans
Ans→L₁(1+dim(L₁
End
L₁

यह इस तथ्य का उपयोग करता है कि, एक ताजा कैलकुलेटर पर, L₁आरंभीकृत और साफ़ किया जाता है। ध्यान दें कि TI-BASIC में खाली सूची प्रदर्शित करने का प्रयास करने में त्रुटि होती है।


0

एपीएल, 16 वर्ण

{⍵/⍨×⍵|+/¨⍵=,\⍵}

अंग्रेजी में:

  • ,\⍵: वेक्टर का वेक्टर तर्क के nth-element तक उपसर्ग करता है
  • +/¨⍵=: उपसर्ग वेक्टर के अनुसार, गणना करें कि कितने स्वयं n-वें तत्व के बराबर हैं
  • ×⍵|: मॉड के संकेत (जो है: 0 यदि विभाजन का शेष भाग 0 है, तो 1)
  • ⍵/⍨: तर्क का केवल वही तत्व रखें जहां मॉड 0 है

0

रैकेट 179 बाइट्स

(λ(l)(define m(apply max l))(let g((n 1)(c 0))(set! l(for/list((i l))(if(= i n)(begin 
(set! c(+ 1 c))(if(= 0(modulo c n))0 i))i)))(if(< n m)(g(+ 1 n)0)(filter(λ(x)(> x 0))l))))

Ungolfed:

(define f
  (λ(l)
    (define m (apply max l))
    (let loop ((n 1) (c 0))
      (set! l (for/list ((i l))
                (if (= i n)
                    (begin
                      (set! c (+ 1 c))
                      (if (= 0 (modulo c n))
                          0 i ))                  ; replace by 0
                    i )))
      (if (< n m)
          (loop (+ 1 n) 0)
          (filter (λ(x)(> x 0)) l)                ; remove all 0s
          ))))

परिक्षण:

(f '[1]) 
(f '[2]) 
(f '[1 1 1]) 
(f '[2 2 2]) 
(f '[1 1 2 2 2 3 3 3 3])
(f '[1 2 3 1 2 3 1 2 3 1 2 3]) 
(f '[3 2 6 1 1 6 2 3 2 6 6 6 6 1 6 6 3 3 7 2])

आउटपुट:

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