প্রতি N-th N সরান


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 বাইট বন্ধ করে গল্ফ করার জন্য @ এসপি 3000 কে ধন্যবাদ!

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

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

=;\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 বাইট

প্রতি লাইনে এক নম্বর, এসটিডিএন-এ ইনপুট প্রত্যাশিত।

++a[$1]%$1

ব্যাখ্যা

সহযোগী অ্যারেতে প্রতিটি সংখ্যার জন্য একটি কাউন্টার রাখে, কাউন্টারের মান মডুলো nশূন্য না হলে কেবল প্রিন্ট করে । মুদ্রণ জড়িত। দীর্ঘ সংস্করণ:

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

19

পাইথ, 18 15 14 10 9 বাইট

f%/aYTTTQ

আমি মনে করি এটিই আমি প্রথম কোড লিখেছি যা নয়টি বাইটে টানা পাঁচটি পরিবর্তনশীল রেফারেন্স রয়েছে।

আমি চাই অ্যারে ম্যানিপুলেশন সমাধান ( u.DG%HgxHGH{QQ, 14 বাইট) এত দীর্ঘ না ছিল long

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

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

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

ব্র্যাডের পার্ল অ্যালগরিদমের মতোই পরিণত হয়েছে।

সম্পাদনা: @ বর্ধিত 2 বাইট ধন্যবাদ @ edc65।


ভাল! অভ্যন্তরীণ বন্ধনীগুলি অপসারণ করে 2 বাইট সংরক্ষণ করুনa=>a.filter(v=>f[v]=-~f[v]%v,f=[])
এডক 65

5

গণিত, 40 38 36 বাইট

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

এটি একটি নামহীন ফাংশন যা গ্রহণ করে এবং ফেরত দেয় Listfমৃত্যুদন্ড কার্যকর করার সময় এটি একটি নামকৃত কার্যকারিতা সংজ্ঞায়িত করে (সংখ্যার উপর নজর রাখার জন্য), তবে প্রাসঙ্গিক সংজ্ঞাগুলি fপূর্বে পুনঃস্থাপনের যত্ন নেয় ।

ব্যাখ্যা

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

আমরা যদি কোড থেকে গল্ফিটিউডটি সরিয়ে ফেলি তবে এটি দেখতে কিছুটা এ জাতীয় দেখাচ্ছে:

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

সুতরাং প্রথমে আমরা ইনপুটটি লুপ করব এবং তালিকার f[x] = xসকলের জন্য সংজ্ঞা দিন xfপ্রতিটি সংখ্যা ইতিমধ্যে তালিকায় কতবার উপস্থিত হয়েছে তা ট্র্যাক রাখতে অবশেষে ব্যবহার করা হবে। আমরা কেন গণনা করি না 0? তালিকার উপরের লুপটি হ'ল ক Map। এক্সপ্রেশনটি f[x] = yফিরে আসে y(ফাংশন সংজ্ঞা সংরক্ষণ করার পাশাপাশি)। সুতরাং সেট f[x]করে x, মানচিত্রটি ইনপুট তালিকার নিজেই মূল্যায়ন করবে। এটি দুটি বাইট সংরক্ষণ করে কারণ তারপরে আমাদের listআবার স্পষ্টভাবে সরবরাহ করার দরকার নেই Selectxপরিবর্তে থেকে শুরু করা 0মোটেই গণ্যকে প্রভাবিত করে না কারণ আমরা কেবলমাত্র আগ্রহী Mod[f[x], x]

(সাধারণত আমরা f[_] = 0এড়াতে ফ্যালব্যাক সংজ্ঞা হিসাবে কিছু ব্যবহার করতে Mapপারি, তবে আমাদের ফাংশনটি আগে ব্যবহার করা হয়েছে কিনা তা আমরা জানি না, যা আমাদের পূর্ববর্তী মানগুলি সংজ্ঞায়িত করে দেয় যা আমাদের গণনাতে গোলমাল করবে।)

তারপরে Selectঅজ্ঞাতনামা ফাংশনটি দ্বিতীয় আর্গুমেন্টের ফলন হিসাবে পাস করার পরে কেবল সেই উপাদানগুলিকে রেখে তালিকাটি ফিল্টার করে True। ঘটনাটি গণনা করার জন্য এই ফাংশনটি প্রথমেf[x] ( xবর্তমান তালিকার উপাদানটি কোথায় ) এর মান বাড়িয়ে তোলে এবং তারপরে এটি ফলাফল হিসাবে গণনা মডুলো গ্রহণ করে x। যেখানে ফলন হয় সেই সমস্ত উপাদানকে আমরা বাতিল করতে চাই 0


5

সিজেম, 17 বাইট

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

শুধু মার ... জে? সত্যিই এই চ্যালেঞ্জের জন্য আমার প্রত্যাশাগুলি কী তা নিশ্চিত নয়। মনে রাখবেন যে ""খালি অ্যারে সিজেমের প্রতিনিধিত্ব।

অনলাইনে চেষ্টা করে দেখুন | টেস্ট স্যুট ( পারমালিঙ্কের জন্য শেষ মামলাটি দীর্ঘ দীর্ঘ)

ব্যাখ্যা

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

জাভাস্ক্রিপ্ট ES6, 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]%$_){$_}}

হিসাবে অনুরূপ সহায়ক-অ্যারে-ট্রিক ব্যবহার করে রেনার পি এর উত্তর , যা আমি স্বাধীনভাবে বিকাশ করেছি তবে আমি দৃশ্যত এফজিআইটিডব্লু পেয়েছি।

একটি অ্যারের সাথে ইনপুট নেয় param($a)। তারপরে আমরা $bওভারলোডেড গুণিত অপারেটরের সাথে মিলিত কমা অপারেটরটি ব্যবহার করে পপুলেটেড- জিরোস অ্যারে হিসাবে আমাদের সহায়ক অ্যারে তৈরি করি । এটি সর্বাধিক সংখ্যার সমান সাথে সমান $bহতে তৈরি করে । (আমার "আপনার ভাষা প্রদর্শনের জন্য" দ্রুত প্লাগ উত্তর যেখানে আমি এটি বিশদভাবে বর্ণনা করি)@(0,0,0...0)$b.length$a

এরপরে আমাদের আউটপুট। আমরা আমাদের ইনপুট অ্যারের প্রতিটি উপাদানকে লুপ করি $a|%{...}এবং প্রতিটি লুপ একটি ifবিবৃতি পরীক্ষা করি । শর্তসাপেক্ষে আমাদের সহায়ক সহায়তায় অ্যারে মান বর্তমানের সাথে সামঞ্জস্যপূর্ণ, তারপরে এটি মডুলো অপারেটরের সাথে বর্তমান উপাদানটির একাধিক কিনা তা পরীক্ষা করে। যদি এটি একাধিক হয় তবে উইলের %সমান হবে 0যা মিথ্যা theif কার্যকর হবে না। অন্যথায়, আমরা বর্তমান উপাদান আউটপুট।

আউটপুট বিন্যাসে সংরক্ষণের জন্য অন্তর্ভুক্ত টাইপকাস্টিংয়ের সুবিধা গ্রহণ করে। যদি কোনও ফাংশন বা প্রোগ্রাম একাধিক উপাদান ফেরত দেয় এবং আপনি ফলাফলগুলিকে একটি চলকতে সংরক্ষণ করেন, পাওয়ারশেল গতিশীলভাবে অ্যারে হিসাবে পরিবর্তনশীল তৈরি করবে will উদাহরণ:

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

এমএটিএল , 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
দিমিত্রি স্টেপানভ

অ্যারেগুলিও খুব ভাল হওয়া উচিত এবং এগুলি কিছুটা সংক্ষিপ্ত হবে [] আর (
ইনট্রে

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 বাইট দীর্ঘ হবে।
LegionMammal978

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₁আরম্ভ করা এবং সাফ করা হয়। নোট করুন যে টিআই-বেসিকের খালি তালিকা প্রদর্শন করার চেষ্টা করে একটি ত্রুটি ছুঁড়েছে।


0

এপিএল, ১rs টি চর

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

ইংরেজীতে:

  • ,\⍵: ভেক্টরের ভেক্টর আর্গুমেন্টের নবম-উপাদান পর্যন্ত উপসর্গ করে
  • +/¨⍵=: উপসর্গের ভেক্টর অনুসারে, এন-তম উপাদানটির সাথে কতটি সমান তার গণনা করুন
  • ×⍵|: মোডের লক্ষণ (এটি: 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)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.