কেউ জিএইউ নম্বর জানে না


22

আমি আপনাকে জিএইউ নম্বরগুলির সাথে পরিচয় করিয়ে দিই

GAU(1) = 1  
GAU(2) = 1122  
GAU(3) = 1122122333  
GAU(4) = 11221223331223334444  
GAU(6) = 11221223331223334444122333444455555122333444455555666666  
...  
GAU(10) = 11221223331223334444122333444455555122333444455555666666122333444455555666666777777712233344445555566666677777778888888812233344445555566666677777778888888899999999912233344445555566666677777778888888899999999910101010101010101010  

এই চ্যালেঞ্জটি বেশ সহজ!

একটি পূর্ণসংখ্যা দেওয়া n> 0, জিএইউ এর সংখ্যাগুলির সংখ্যা (এন) সন্ধান করুন

উদাহরণ

আসুন আমরা জিএইউ (4) তৈরি
করি আমরা নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করি (যতক্ষণ না আমরা 4 এ পৌঁছাচ্ছি) এবং তাদের সাথে সম্মতি জানাই

[1][122][122333][1223334444]   

আপনাকে অবশ্যই প্রতিটি সংখ্যাটিকে তার মান হিসাবে বহুগুণ লিখতে হবে, তবে আপনাকে প্রতিবার 1 থেকে গুণতে হবে

আসুন জিএইউ (5) করার চেষ্টা করি
আমাদের 1 থেকে 1 পর্যন্ত গণনা করতে হবে

[1]   

তারপরে 1 থেকে 2 পর্যন্ত (তবে প্রতিটি সংখ্যাকে এর মান হিসাবে বহুবার পুনরাবৃত্তি করা )

[122]     

তারপরে 1 থেকে 3 পর্যন্ত

[122333]   

তারপরে 1 থেকে 4 পর্যন্ত

[1223334444]    

এবং শেষ পর্যন্ত 1 থেকে 5 পর্যন্ত (এটি শেষ পদক্ষেপ কারণ আমরা জিএইউ ( 5 ) সন্ধান করতে চাই)

[122333444455555]     

এখন আমরা এই সমস্ত পদক্ষেপ নিই এবং তাদের সম্মতি
জানাতে ফলাফলটি জিএইউ (5)

11221223331223334444122333444455555     

আমরা এই জিএইউ সংখ্যার অঙ্কের সংখ্যাতে আগ্রহী।

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

Input⟼Output

n   ⟼ Length(GAU(n))

1   ⟼ 1  
2   ⟼ 4  
3   ⟼ 10  
10  ⟼ 230   
50  ⟼ 42190  
100 ⟼ 339240  
150 ⟼ 1295790  

এটি একটি চ্যালেঞ্জ।
বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জিতবে।

আপনার যদি এখনও কোন প্রশ্ন থাকে তবে আমাকে জানান।
আমি সত্যই চাই এখানে সবাই এই যাদু-লুকানো-জটিল প্যাটার্নটি বুঝতে পারে


4
জিএইউ কী বোঝায়?
লিকি নুন

21
জি GAU এর জন্য, এ এবং ইউ কোনও কারণ ছাড়াই আছে

2
এন = 9 অবধি দৈর্ঘ্যগুলি টেটারহেড্রাল সংখ্যা, তবে এর বাইরে বহু-অঙ্কের সংখ্যাগুলি একটি সহজ বদ্ধ ফর্মের পথে চলে
মিফ

FYI আপনার পরীক্ষার কেসটি n ⟼ Length(GUA(n))জিএইউ (এন) নয় says
নম্বরমানিয়াক

2
এই সংখ্যাটি দেখার জন্য ধন্যবাদ জিইউএ সংখ্যা সম্পূর্ণ আলাদা। এগুলি এখনও আবিষ্কার হয়নি!

উত্তর:


14

এসওজিএল ভি0.12 , 11 10 8 7 5 বাইট

∫∫l*+

এখানে চেষ্টা করুন! - এটি স্ট্যাকের ইনপুট এবং খালি খালি ইনপুট সহ একটি ফাংশন হিসাবে ডাকা হবে বলে আশা করে।
ইনপুট বাক্স থেকে ইনপুট নেওয়া 7 বাইট বিকল্প:

0.∫∫l*+

এখানে চেষ্টা করুন!

0      push 0
 .     push the input
  ∫    iterate over a range 1..POP (input) inclusive, pusing the current number
   ∫    iterate over 1..POP (above loops number) inclusive, pusing the current number
    l    push that numbers length without popping the number
     *   multiply the length by the number
      +  add to the zero, or whatever it is now

push that numbers length without popping the numberসুন্দর
এরিক দি আউটগল্ফার


7

ব্রেন-ফ্লাক , 166 বাইট tes

<>(((()()())({}){})())<>{({}[()]<({}({}<<>({}[()])((){[()](<()>)}{}){{}((((({})({})){}{}){}))<>(({}<({}())>){()<({}[({})])>}{})(<>)}{}<>>({}({})())))>)}{}({}<{}{}{}>)

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

ব্যাখ্যা

<>(((()()())({}){})())<>           # Initialize second stack with 9 and 10
{({}[()]<                          # Do main loop n times:
  ({}
    ({}
      <
        <>({}[()])                 # Subtract 1 from counter to next power of 10
        ((){[()](<()>)}{}){        # If reached a power of 10 (say, 10^k):
          {}((((({})({})){}{}){})) # Multiply existing (10^k*0.9) by 10 and push twice
          <>                       # On first stack
          (
            ({}<({}())>)           # Increment length of numbers
            {()<({}[({})])>}{}     # Divide length of new set of numbers by this length
          )                        # Add together to get new set of numbers length
        (<>)}  
      {}<>>  
      ({}({})())                   # Add number length to number set length
    )                              # Add number set length to new segment length
  )                                # Add new segment length to total length
>)}                                # End main loop
{}({}<{}{}{}>)                     # Put result on stack by itself






3

কাস্তে , 7 বাইট

ṁLṁṘNḣḣ

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

ব্যাখ্যা

          Implicit input, e.g 4
      ḣ   Range from 1 to n                               [1,2,3,4]
     ḣ    Prefixes                                        [[],[1],[1,2],[1,2,3],[1,2,3,4]]
  ṁ       Map and then concatenate
   ṘN     Repeat each number in each list by its index    [[],[1],[1,2,2],[1,2,2,3,3,3],[1,2,2,3,3,3,4,4,4,4]]
                                                          [1,1,2,2,1,2,2,3,3,3,1,2,2,3,3,3,4,4,4,4]
ṁ         Map and then sum
 L        Length (of number: 10 -> 2)                     26

ওহ আরেকটি কুঁড়ির সমাধান :) আমার পোস্ট করার সময় আপনার জমাটি দেখতে পেলেন না, একই বাইটকন্ট্ট কিন্তু সেগুলি যথেষ্ট আলাদা, তাই আমি আমার এখানেও রেখে দেব।
ბიმო


3

পাইথন 2 , 59 58 বাইট

আর একজন জ্যোনাথন ফ্রেচের কাছে ধুলোর ধন্যবাদ বাইট করে।

f=lambda n:n and sum(i*len(`i`)for i in range(n+1))+f(n-1)

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

সংক্ষিপ্ত নয় তবে এহ ... কি হ্যাক।


len(`i`)*i for-> i*len(`i`)for
জোনাথন ফ্রেচ

53 বাইট , অপরিবর্তিত।
জোনাথন ফ্রেচ

3

সিজেম , 20 বাইট

q~),(\{),{_s,*+}*+}%

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

নম্বরটি "ইনপুট" ক্ষেত্রে পাস করা হয়েছে।

অব্যক্ত ব্যাখ্যা: (উদাহরণ ইনপুট = 2)

q~),(\{),{_s,*+}*+}%                                             | Stack:
q                     read input as string                       | "2"
 ~                    eval input (add it to stack as integer)    | 2
  )                   add 1                                      | 3
   ,                  range (convert to array with values 0...N) | [0, 1, 2]
    (                 pop first item of array                    | [1, 2] 0
     \                swap top two values of stack               | 0 [1, 2]
      {           }   for each item in array...                  | 0 1
       )              add 1                                      | 0 2
        ,             range (convert to array with values 0...N) | 0 [0, 1]
         {     }      for every element in the array...          | 0 0
          _           duplicate                                  | 0 0 0
           s          convert to string                          | 0 0 "0"
            ,         get length of string                       | 0 0 1
             *        multiply                                   | 0 0
              +       add                                        | 0 1
                *     fold                                       | 0 1
                 +    add                                        | 1
                   %  repeat                                     | 4

LOL ব্যাখ্যা করার সময় এটি কঠিন মনে হয়।


2

জে, 24 বাইট

[:+/[:+/\[:(*#@":"0)1+i.

Dzaima এর APL উত্তর,, জে অনুদিত ব্যতীত আমরা এটা একটি স্ট্রিং মধ্যে বাঁক প্রথম পরিবর্তে লগ গ্রহণ করে সংখ্যা দৈর্ঘ্য নিরূপণ, এবং আমরা জে এর হুক ব্যবহার করতে সংখ্যা নিজে যে দৈর্ঘ্য বৃদ্ধি পেতে একই উচ্চ পর্যায়ের দৃষ্টীকোণ: (*#@":"0)। এর পরে এটি স্ক্যানের যোগফলের যোগফল।

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


1
1(#.]*#\*#\.)1#@":@+i.22 বাইটের জন্যও কাজ করে
মাইল মাইল

@ মাইলস এটি চালাক - এটি বের করতে আমার কিছুটা সময় লাগল জে কতক্ষণ ধরে প্রোগ্রামিং করে আসছেন?
জোনা

আমি কোড-গল্ফে যোগদানের খানিক পরে। আমি আসলে এটি কোনও বাস্তব প্রোগ্রাম লিখতে ব্যবহার করি না কারণ আমি জানি এটি পড়তে সক্ষম হবে তবে আমি এখন এটি একটি উন্নত ডেস্কটপ ক্যালকুলেটর হিসাবে ব্যবহার করি না এবং সাধারণত কোনও কিছু গণনা করার জন্য সর্বদা একটি উইন্ডো খোলা থাকে।
মাইল

2

আর , 39 বাইট

function(n)sum(nchar(rep(1:n,n:1*1:n)))

সমস্ত পরীক্ষার কেস যাচাই করুন!

সাধারণ অ্যালগরিদম; আমি পালন, যেমন সবচেয়ে করেনি, যে জন্য i1:n, iপুনরাবৃত্তি করা হয় i*(n-i+1)বার। সুতরাং আমি সেই ভেক্টরটি তৈরি করেছি, প্রতিটি বর্ণের সংখ্যা গণনা করে তাদের যোগফল করব।


1

পাইথন 2, 51 50 বাইট

lambda n:sum(~k*(k-n)*len(`k+1`)for k in range(n))

পছন্দ করুন আমি এই উত্তরটি নিজেই বিকাশ করেছি। এমনকি আমি অন্যান্য উত্তরগুলিও চেক করিনি।
orlp

1
এটি এমনকি সঠিক উত্তর আউটপুট দেয় না, এন = 1 এর জন্য 0 দেয়, এন = 2 এর জন্য 3 এবং 14 এন -3 এর জন্য
হাল্ভার্ড হুমেল

@ হালওয়ার্ডহ্ম্মেল ওফস, একটি সাইন আপ মিশ্রিত করেছে এবং একটি +1 ভুলে গেছে। এখনই স্থির।
orlp

আমি দেখতে পাচ্ছি যে আপনি শেষ পর্যন্ত বুঝতে পেরেছেন! অনলাইনে আপনার কোডটি পরীক্ষা করার কোনও উপায় আছে বা অন্য পাইথন 2 উত্তরটিও এটি কভার করে?

1

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

আপডেট হয়েছে: এখন মূলত অন্যান্য উত্তরগুলি কী করছে তার একটি বন্দর।

f=(n,i=1)=>n&&`${n}`.length*n*i+f(n-1,i+1)

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


1

গণিত, 66 বাইট

Tr[1^(f=Flatten)[IntegerDigits/@f@(a=Array)[a[#~Table~#&,#]&,#]]]&



1

জাপট , 12 11 10 9 বাইট

õõÈ*sÊÃxx

এটি ব্যবহার করে দেখুন বা 1 থেকে 150 পর্যন্ত সমস্ত সংখ্যা পরীক্ষা করুন


ব্যাখ্যা

পূর্ণসংখ্যার অন্তর্নিহিত ইনপুট U

õõ

1 থেকে শুরু করে একটি পূর্ণসংখ্যার অ্যারে তৈরি করুন Uএবং তারপরে 1 থেকে প্রতিটি পূর্ণসংখ্যায় সাব-অ্যারে তৈরি করুন।

È   Ã

একটি ফাংশনের মাধ্যমে প্রতিটি উপ-অ্যারের উপাদানগুলি পাস করুন।

*sÊ

বর্তমান উপাদানটিকে স্ট্রিং ( s) এ রূপান্তর করুন , এর দৈর্ঘ্য ( Ê) পান এবং এটিকে উপাদান দিয়ে গুণ করুন।

xx

প্রতিটি উপ-অ্যারে প্রথমে একই কাজ করার পরে মূল অ্যারে হ্রাস করুন।



1

স্ট্যাকড , 28 বাইট

[~>[~>[:rep]"!]"!flat''#`#']

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

কেউ কেউ জিজ্ঞাসা করতে পারেন, "কোন বিন্যাসটি অপঠনযোগ্য?" যদি এটি কাছাকাছি না হয়, আপনার কাছে "পাঠযোগ্যতা" এর একটি খুব উদার সংজ্ঞা রয়েছে।

ব্যাখ্যা

[~>[~>[:rep]"!]"!flat''#`#']    input: N
 ~>[          ]"!               for each number K from 1 to N
    ~>[    ]"!                  for each number J from 1 to K
       :rep                     repeat J J times
                 flat           flatten the resultant array
                     ''#`       join by the empty string
                         #'     get the length of said string


1

সি # (.নেট কোর) , 94 80 74 বাইট

n=>{int b=0,a=0,i;while(a++<n)for(i=0;i++<a;)b+=(i+"").Length*i;return b;}

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

আমি @ কমারসো94 এর উত্তর কীসের মতো প্রত্যক্ষ সমাধানের আশা করছিলাম শুরু হয়েছে , তবে আমি এতে খুব বেশি সময় ব্যয় করায় ছেড়ে দিয়েছি। সম্ভবত এটি করার একটি উপায় রয়েছে তবে সূত্রটি প্রতিটি প্রস্থের পদক্ষেপের জন্য সামঞ্জস্য করতে হবে।

প্রাপ্তি স্বীকার

14 বাইট সংরক্ষিত হয়েছে @ সোমোনকে ধন্যবাদ

@ কেভিন ক্রুইজসেনকে ধন্যবাদ 6 বাইট সংরক্ষণ করা হয়েছে


1
n=>{int b=0,a=0,i;for(;a++<n;)for(i=0;i++<a;)b+=i.ToString().Length*i;return b;} এটি অনলাইন চেষ্টা করুন! 80 বাইট এবং কর্মক্ষমতা জন্য।
আমার সর্বনামটি ম্যানিকিয়ারইনস্টেট

1
i.ToString()(i+"")আরও কিছু বাইট সংরক্ষণ করা যেতে পারে ।
কেভিন ক্রুইজসেন

1

এমএটিএল , 15 বাইট

:ttP*Y"10&YlQks

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

ব্যাখ্যা:

:                range 1:input (implicit input)
 tt              duplicate twice
   P             reverse
    *            multiply elementwise
     Y"          runlength decoding
       10&Yl     log10
            Qk   increment and floor
              s  sum (implicit output)

এই লগারিদমটি ব্যয়বহুল :-) আপনি স্ট্রিংয়ে রূপান্তর করে শূন্যস্থান, দৈর্ঘ্য সরিয়ে এটিকে প্রতিস্থাপন করতে পারেন::ttP*Y"VXzn
লুইস মেন্ডো

1

পার্ল 6 , 36 বাইট

{[+] 1..*Z*($_...1).map:{.chars*$_}}

এটা পরীক্ষা করো

সম্প্রসারিত:

{  # bare block lambda with implicit parameter 「$_」

  [+]               # reduce the following using &infix:«+»

    1 .. *          # Range from 1 to infinity

    Z*              # zip using &infix:«*»

    ( $_ ... 1 )    # sequence from the input down to 1
    .map:           # for each one
    { .chars * $_ } # multiply the number of digits with itself
}

1

কাঠকয়লা , 18 14 বাইট

IΣE⊕NΣE⊕ι×λLIλ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। সম্পাদনা করুন: Sumআমাকে 4 বাইট সংরক্ষণ করেছে। ব্যাখ্যা:

  E⊕N           Map from 0 to the input (loop variable i)
      E⊕ι       Map from 0 to i (loop variable l)
            Iλ  Cast l to string
           L    Take the length
         ×λ     Multiply by l
     Σ          Sum the results
 Σ              Sum the results
I               Cast to string
                Implicitly print

: | স্ট্রিং আর্গুমেন্টগুলি দেওয়া হলে স্ট্রিংগুলিতে
ASCII- কেবল

@ এএসসিআইআই কেবল এটিই ছিল না, এটি কেবল একটি Σপরিবর্তে মুদ্রণ করছিল ...
নীল

@ এএসসিআইআই-তে এছাড়াও, সর্বোত্তম আমি Sumএখনও 18 বাইট সহ করতে পারি :Print(Cast(Sum(Map(InclusiveRange(1, InputNumber()), Sum(Map(InclusiveRange(1, i), Times(l, Length(Cast(l)))))))));
নীল


@ হওয়া ASCII শুধুমাত্র আমি পণ্য এর সমষ্টি চেষ্টা করেছিলেন কিন্তু 17 বাইট ছিল: ≔⊕NθIΣEθ×⁻θι×ιLIι। তবে শেভের Incrementedপরিবর্তে InclusiveRange4 বাইট ব্যবহার করে আমার আগের মন্তব্যটি বন্ধ করে দিন!
নিল


1

[ডায়ালগ এপিএল], 22 20 বাইট

{+/≢¨⍕¨↑,/(/⍨¨⍳¨⍳⍵)}

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

ব্যাখ্যা:

{+/≢¨⍕¨↑,/(/⍨¨⍳¨⍳⍵)}
{                  } anonymous function with right argument named 
                ⍳⍵   range 1 to right arg
              ⍳¨     for each, range 1 to it
             ¨       for each
           /⍨          for each item, repeat right arg left arg times
          (       )  take that and
        ,/           join the sub-arrays together
                    convert from a nested array to a simple array (or something like that, I don't quite understand it :p)
     ⍕¨              convert each number to a char-array (aka string version)
   ≢¨                get length of each
 +/                  sum that together

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