সত্তর সাতটি সাত


19

একটি নম্বর দেওয়া nএবং সর্বোচ্চ সীমা lতালিকা সংখ্যার যে গঠিত দুই বা ততোধিক সংখ্যার গুন দ্বারা তৈরি করা যেতে পারে শুধুমাত্র সেভেনস দৈর্ঘ্যের nযে কম বা তার কম lA161145 এই চ্যালেঞ্জের নিকটে, তবে, আপনি 7, 77, 777, 7777, 77777, ইত্যাদি সহ পাবেন না ..

উদাহরণ

n=anything, l<49 ফলাফল হবে:

[]

n=1, l=49 ফলাফল হবে:

7*7=49

f(1,49)=[49]

n=1, l=343 ফলাফল হবে:

7*7   =49
7*7*7 =343

f(1,343)=[49,343]

n=2,l=6000 ফলাফল হবে:

7*7    =49
7*7*7  =343
7*7*7*7=2401
7*77   =539
7*7*77 =3773
77*77  =5929

f(2,6000)=[49,343,539,2401,3773,5929]

n=3, l=604000 ফলাফল হবে:

[49, 343, 539, 2401, 3773, 5439, 5929, 16807, 26411, 38073, 41503, 59829, 117649, 184877, 266511, 290521, 418803, 456533, 603729]

ইত্যাদি ...

বিধি

  1. আপনাকে মধ্যবর্তী পদক্ষেপগুলি আউটপুট দিতে হবে না , এটি পরিষ্কারতার জন্য করা হয়েছিল।
  2. আউটপুট একটি অ্যারের হিসাবে হতে পারে বা যে কোনও অক্ষর দ্বারা পৃথক করা যেতে পারে (এমনকি নিউলাইনও)।
  3. আউটপুট অবশ্যই সংখ্যায়িত হতে হবে, সর্বনিম্ন থেকে সর্বোচ্চ।
  4. শিরোনামটিকে প্রাসঙ্গিক করে তুলতে, সর্বোচ্চ nযেটি পরিচালনা করতে হবে তা হ'ল n=77(যদি আপনি এই উচ্চটি পরিচালনা করতে না পারেন তবে কেন নখ করুন - ভাষার সীমাবদ্ধতা গ্রহণযোগ্য, অলসতা নয়)। এই সীমাবদ্ধতা স্মৃতিতে পুরো সুপারসেট তৈরি করতে চাইছে বাধা to
  5. যদি টিআইও আপনার কোডটির n=77জন্য চলতে না পারে তবে কী চশমা অর্জনের জন্য প্রয়োজনীয় ছিল তা ব্যাখ্যা করুন n=77
  6. কোনও পণ্য বৈধ হওয়ার জন্য এটিতে কমপক্ষে 2 টি সংখ্যা থাকতে হবে।
  7. এটি সর্বনিম্ন বাইট-গণনাটি বিজয়ী হিসাবে গণ্য হবে।
  8. আপনি কম lবা তার চেয়ে কম / সমান আইটেম ধারণ করতে তালিকাটি চয়ন করতে পারেন l
  9. বোনাস : আপনার কোডটি যদি ঠিক 77 বাইট হয় তবে আমার কাছ থেকে কুডোস; মূল্যহীন, আমি জানি।

আমি কষ্ট পার্সিং "তালিকায় নম্বর তৈরি করা যেতে পারে যে দৈর্ঘ্য মাত্র সেভেনস গঠিত দুই বা ততোধিক সংখ্যার গুন দ্বারা হচ্ছে nহয় কম বা কম যে l"
xnor

কিছু সংখ্যার আউটপুট একাধিকবার গ্রহণযোগ্য কি?
গণিত জাঙ্কি

5 নীতিটি বেশ অর্থহীন, কোনও কোড দেওয়া হবে n=77এবং l=7**7**7উদাহরণস্বরূপ?
জোনাথন অ্যালান

1
আমরা কি ধরে নিতে পারি যে ফলাফলটি খালি হবে না?
টাইটাস

@ জোনাথান অ্যালান সত্য
যাদু অক্টোপাস উরন

উত্তর:


1

05 এ বি 1 , 19 বাইট

L7×1¸ì©IF®âPD²‹Ïê®K

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

ব্যাখ্যা

খুব অদক্ষ। টিআইও লিঙ্কটি বড় টেস্টকেসগুলির সহজ পরীক্ষার জন্য গল্ফযুক্ত সংস্করণে ব্যবহৃত ceil(l^(1/7))পুনরাবৃত্তির পরিবর্তে পুনরাবৃত্তিগুলি সম্পাদন করে l

L7×                   # create the list ['7', '77', '777' ...] 
                      # with the final item having n 7's 
   1¸ì©               # prepend a 1 and store a copy in register
       IF             # l times do:
         ®â           # cartesian product between current list and the list in register 
           P          # product of each sublist
            D²‹Ï      # keep only numbers smaller than l
                ê     # remove duplicates and sort
                 ®K   # remove 1, 7, 77, 777 ... from the list

$L7ׂ˜- 5 বাইট পাওয়ার চেষ্টা করেছিল, পারল না।
যাদু অক্টোপাস উরন

@ কারাসোকম্পিউটিং: হ্যাঁ, আমার মনে হয় 6 বাইট অনেক বেশি, তবে আমি সত্যিই আরও ছোট উপায় দেখতে পাচ্ছি না। আমি আশা করছিলাম আপনি আমাকে আরও একটি ছোট উপায়ে স্কুল করবেন;)
এমিলিগা

আমি ভাবছিলাম .pবা .sখুব, তবে এগুলি আরও দীর্ঘ বলে মনে হচ্ছে। আমি দুর্ঘটনাবশত টিআইও পৃষ্ঠায় 'রিফ্রেশ' হিট করেছি দৌড়ের পরিবর্তে আমার উদাহরণ প্রয়োগের সাথে, এটি অস্তিত্ব থেকে মুছে ফেলে। আমি মনে করি এটি যদিও 26 ছিল।
ম্যাজিক অক্টোপাস উরন

1
@ কারাসোকম্পুটিং: এজন্য আপনার লিঙ্ক বোতামটি নিয়মিত চাপতে হবে। কম্পিউটারকে রিফ্রেশ করে বা রিবুট করে কোনও কিছু শিথিল করবেন না।
Looseিলে looseালা

7

জেলি , 21 20 19 18 বাইট

R7ẋḌµ;ŒċP€⁹f€FµÐLḟ

দ্রষ্টব্য যে আউটপুটটি ওপি'র সাথে মেলে না। আমি একটি মন্তব্য রেখেছি।

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

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

R7ẋḌµ;ŒċP€⁹f€FµÐLḟ  Main link. Left argument: n. Right argument: l

R                   Range; yield [1, ..., n].
 7ẋ                 Times; yield [[7], ..., [7] * n].
   Ḍ                Undecimal; yield s := [7, 77, ...].
    µ         µÐL   Begin a new chain with argument s and call the chain between 
                    until the results no longer chain.
                    Return the last unique result.
      Œċ            Combinations; return all unordered pairs in integers in the
                    return value.
     ;              Concatenate the return value and its pairs.
        P€          Take the product of each individual integer and each pair in
                    the result.
          ⁹f€       Filter each; for each j in [1, ..., l], intersect [j] with the
                    array of products. The result is sorted and contains no 
                    duplicates.
                 ḟ  Filterfalse; remove the elements of s from the result.


4

জাভাস্ক্রিপ্ট (ES6), 103 101 বাইট

বাক্য গঠন সিনট্যাক্সে ইনপুট নেয় (n)(l)

n=>l=>(a=[],g=(n,m,p,i)=>(p>l||g(n,m,(a[i>1?p:a]=p)*m,-~i),--n?g(n,m+7,p,i):a.filter(n=>n)))(n,'7',1)

পরীক্ষার মামলা

শেষ পরীক্ষার কেসটি সম্পূর্ণ হতে কয়েক সেকেন্ড সময় নিতে পারে।


4

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

$r=[];for([,$n,$l]=$argv;$n--;)f($v[]=$z.=7);function f($t){global$v,$l,$r;while($c=$t*$v[+$i++])$l<$c?:f($c)&$r[$c]=$c;}sort($r);print_r($r);

-5 বাইটগুলি অপসারণ $r=[];এবং এর sort($r);সাথে প্রতিস্থাপন করুন@sort($r);

অনলাইন সংস্করণ

সম্প্রসারিত

একটি পুনরাবৃত্ত ফাংশন সীমা সহ সমস্ত অনুমতি দেয়

$r=[];
for([,$n,$l]=$argv;$n--;)
  f($v[]=$z.=7);
function f($t){
    global$v,$l,$r;
    while($c=$t*$v[+$i++])
      $l<$c?:f($c)&$r[$c]=$c;
}
sort($r);
print_r($r);

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

for([,$n,$l]=$argv;$n;)$t[]=str_pad(7,$n--,7);for(;$l>=$i+=49;$v>1?:$u[]=$r)for($v=$i,$r=!$c=0;$d=$t[$c];)$v%$d?$c++:($v/=$d)&$r*=$d;print_r($u);

সম্প্রসারিত

সীমা সহ একটি লুপ 49 দ্বারা বিভাজ্য প্রতিটি মান পরীক্ষা করে নিন check

for([,$n,$l]=$argv;$n;)
  $t[]=str_pad(7,$n--,7);
for(;$l>=$v=$i+=49;$v>1?:$u[]=$r)
  for($r=!$c=0;$d=$t[$c];)
    $v%$d?$c++:($v/=$d)&$r*=$d;
print_r($u);

অনলাইন সংস্করণ

কয়েকটি বাইট আরও এবং একটি সহযোগী অ্যারে নম্বর কী তৈরি করা যেতে পারে এবং মান হিসাবে ব্যবহৃত সেভেনের একটি অ্যারে

for([,$n,$l]=$argv;$n;)
  $t[]=str_pad(7,$n--,7);
for(;$l>=$v=$i+=49;$v>1?:$u[array_product($r)]=$r)
  for($r=[],$c=0;$d=$t[$c];)
    $v%$d?$c++:($v/=$d)&$r[]=$d;
print_r($u);

অনলাইন সংস্করণ


while($c=$t*$v[+$i++])$l<$c?f($c)&$r[$c]=$c;3 বাইট সাশ্রয়; তবে তা হওয়া উচিত $l<=$c$r?sort($r)&print_r($r):0;পরিবর্তে একটি $r=[];সংরক্ষণ করুন।
তিতাস

1
$z.=7;5 চেয়ে খাটো বাইট $z=$z*10+7;
টাইটাস

এবং এর @চেয়ে কম 4 বাইট কম $r?...:0;। (ধন্যবাদ @ ক্রিসটফ)
টাইটাস

@ টিটাস কেন এটি হওয়া উচিত $l<=$c? দেখে মনে হচ্ছে গতকালটি আমার পক্ষে $z.=7পাওয়া অতিরিক্ত 2 বাইটের জন্য নয় not আমি প্রথমে আপনার অন্য দুটি পরামর্শ বিবেচনা করছি। আপনি :যখন লুপটি মিস করেন
জার্গ হালসারম্যান

আমি ওপিকে স্পষ্ট করতে বলেছি। বর্ণনায় তিনি ফলাফল সম্পর্কে কথা বলেন that are less than l, তার উদাহরণগুলিতে তারা are less than or equal। স্পষ্টতার উপর নির্ভর করে, $c>$l||.../ $c>$l?:...অথবা $c<$l&&...সবচেয়ে কম হয়।
তিতাস


3

পাইথ , 22 বাইট

JsM._*\7Eu@s*LR+JGJSQJ

JsM._*\7E
        E               second input
     *\7                repeat "7" as many times as the above
   ._                   all prefixes of above
 sM                     convert each to integer
J                       store list as J

         u@s*LR+JGJSQJ
         u              repeat the following until results not unique
                     J  starting from G = J
                        at each iteration, G is the current value
               +JG      append G to J
                  J     J
            *LR         multiply the elements of the above two, vectorizing each
           s            flatten list
          @        SQ   intersect with [1,2,3,...,first input]
                        this takes elements from [1,2,3,...,first input] and
                        check if each element is in the previous list
                        which ensures the result is sorted and unique

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

চশমা

  • ইনপুট: l[newline]n
  • আউটপুট: array containing the sorted result

3

পিএইচপি, 128 125 130 129 127 123 বাইট

22 7টি পর্যন্ত কাজ করবে তবে বৃহত্তর মানগুলিকে গোল করবে (7 ** 23 একটি 64 বিট মেশিনে ভাসমান পয়েন্ট)।

খালি ফলাফলের জন্য সতর্কতা এড়াতে 3 বাইট জার্গ দ্বারা সংরক্ষিত, আমার দ্বারা 3, 5 4 1 যোগ করা হয়েছে।

for([,$c,$z]=$argv,$n=$c+1;$c<$z;$p<$z&&$r[$p]=$p)for($b=$c+=$p=1;$b|0;$b/=$n)$p*=str_pad(7,$b%$n,7);@sort($r);print_r($r);

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়; এটি দিয়ে চালান -nrবা অনলাইনে চেষ্টা করুন

ভাঙ্গন

for([,$c,$z]=$argv,$n=$c+1;         # $z=L, $n=N+1
    $c<$z;                          # loop $c from N to L-1:
    $p<$z&&$r[$p]=$p                    # 2. if product is < L, add to array
)                                       #    (key=val to avoid duplicates)
    for($b=$c+=$p=1;$b|0;$b/=$n)        # 1. loop $b through ++$c as base-N+1 number
        $p*=str_pad(7,$b%$n,7);             # take each base-N+1 digit as length
                                            # for a streak of 7s as factor
        // (str_pad is 1 byte shorter than str_repeat and saves 3 by ensuring positive $p)
@sort($r);                          # sort array (muted to avoid warning for empty result)
print_r($r);                        # print array

1
for([,$c,$z]=$argv,$n=1+$c;$c<$z;পরিবর্তেfor($n=1+$c=$argv[1];$c<$z=$argv[2];
জার্গ হালসারম্যান

1
সতর্কতা দমন করার @পরিবর্তে ব্যবহার করবেন $r&&? $p<$z&&$r[$p]=$p
ক্রিস্টোফ

আমি কেবল লক্ষ্য করেছি এটি $p>$z?:$r[$p]=$pউদাহরণ থেকে হওয়া উচিত n=1, l=343এটি স্পষ্ট যে lঅন্তর্ভুক্ত করা উচিত। সুতরাং $p>$z||$r[$p]=$pবা ব্যবহারের সময় সেখানে কোনও সঞ্চয় নেই $p>$z?:$r[$p]=$p
ক্রিস্টোফ

1
@ ক্রিসটফ আমি ওপিকে স্পষ্ট করতে বলেছি। আমাকে মনে করিয়ে দেওয়ার জন্য ধন্যবাদ @; ওপি উত্তর দিলে সম্পাদনা করবে।
তিতাস

1
@ ক্রিসটফ উভয়ই ঠিক আছে বলে মনে হচ্ছে; এবং এটি সত্যই $p>$z||বা অন্যথায় গুরুত্বপূর্ণ নয় $p<$z&&। আমি বিবরণ দিয়ে লাঠি।
টাইটাস

3

ব্র্যাচল্যাগ , 28 বাইট

h>.ḋ{p~c×ᵐ{=h7&l}ᵐobt≤~t?∧!}

ভাষাতেই এখানে উন্নতির অনেক সুযোগ রয়েছে; বেশ কয়েকটি জিনিস আমি লিখেছি দেখে মনে হচ্ছে তারা ভাষার নকশার কিছু পরিবর্তন নিয়ে স্পষ্টতই অসম্ভব হয়ে উঠবে। এটি হ'ল বর্তমান সংস্করণটির সাথে সংক্ষিপ্ততম উপায়। আমি ব্র্যাচ্ল্যাগের জন্য কিছু পরামর্শ দিতে পারি যা এই প্রোগ্রামটিকে আরও দক্ষ, খাটো এবং আরও পাঠযোগ্য করে তুলবে।

খুব, খুব ধীর; এমনকি সহজ সম্ভাব্য উত্তরহীন উত্তরেও তিন বার সময় বেরিয়ে যায়, তাই টিআইও লিঙ্ক সরবরাহ করার পক্ষে খুব একটা পয়েন্ট নেই। আমি এই প্রোগ্রামটি স্থানীয়ভাবে চালিয়ে যাচাই করেছি।

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

ব্যাখ্যা

h>.ḋ{p~c×ᵐ{=h7&l}ᵐobt≤~t?∧!}
  .                           The desired output is
h>                            a number less than the first input
   ḋ p                        such that taking its prime factors in some order,
      ~c                      partitioning them,
        ×ᵐ                    and taking the product of each partition
          {     }ᵐ            produces a number for which each digit
           =h7                is composed only of 7s
              &l              and for which the lengths of those numbers
                  o           are in sorted order
                    t         and the last element
                   b          (which is not also the first element)
                     ≤        is less than or equal to
                      ~t?     the last input.
                         ∧    (Delete an unwanted implicit constraint.)
   ḋ{                     !}  Output each number only once.

2

বাশ + জিএনইউ ইউটিলিটিস, 108

seq -f3o%gp $2|dc|sed -r "/0|1{$1}/d;s/./&7/g;s/1//g;s/2/*/g;/[*]/!d;s/^/a=7/;s/$/;if(a<=$2)a;/"|bc|sort -un

এটি অনলাইনে চেষ্টা করুন । টিআইও শেষ টেস্টকেসটির জন্য প্রায় এক মিনিট সময় নেয়। আমার ফলাফল @ ডেনিসের সাথে মেলে


1

পাইথ - 57 51 49 42 বাইট

FY}2eQKYJv*\7hQWJIqYJBW!%KJ=/KJ)=/JT)Iq1KY

চেষ্টা করে দেখুন


2
পিপিসিজিতে আপনাকে স্বাগতম! অনেকগুলি শর্টকাট উপলভ্য রয়েছে, যা আপনার কোডটি অনেকগুলি বাইট দ্বারা কেটে দিতে পারে। আপনি যদি আরও জানতে চান তবে আপনি আমাদের চ্যাটরুমে এসে আমাকে পিং করতে পারেন।
ফাঁস নুন

1
দুর্ভাগ্যক্রমে, আপনার বর্তমান প্রোগ্রামটি সঠিক ফলাফল উত্পন্ন করে না, যথা এটি এতে অন্তর্ভুক্ত করে 7এবং 77আপনার বর্তমান ইনপুট।
ফাঁস নুন

1
বাইটস কেটে নেওয়ার উপায়গুলির মধ্যে রয়েছে: mপরিবর্তে Fবা Vইত্যাদি ব্যবহার করা (ক্রিয়ামূলক প্রোগ্রামিং বনাম সম্পাদন নিয়ন্ত্রণ); hQপরিবর্তে ব্যবহার @Q0; eQপরিবর্তে ব্যবহার @Q1; i*hQ]7Tলং ফর লুপ তৈরির পরিবর্তে ব্যবহার করে 777...7
ফাঁস নুন

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