মিশ্রণে বেস


23

ইনপুট:
পূর্ণসংখ্যার একটি তালিকা / অ্যারে যার জন্য প্রতিটি আইটেমের ব্যাপ্তি থাকে 2-36

আউটপুট:
পূর্ণসংখ্যার যোগফল (বেস 10 হিসাবে), যেখানে প্রতিটি পরবর্তী পূর্ণসংখ্যা পূর্ববর্তী মানের বেসে হয় (নিয়মিত বেস 10 দিয়ে শুরু হয়)।

উদাহরণ: ধরা
যাক আমাদের এর মতো একটি ইনপুট রয়েছে: [4, 12, 34, 20, 14, 6, 25, 13, 33]
তারপরে আমাদের এর সমষ্টি হবে:

4    (4  in base-10) +
6    (12 in base-4 ) +
40   (34 in base-12) +
68   (20 in base-34) +
24   (14 in base-20) +
6    (6  in base-14) +
17   (25 in base-6 ) +
28   (13 in base-26) +
42   (33 in base-13)
= 235

গাণিতিক বেস ব্যাখ্যা করেছে:
আমি ধরে নিয়েছিলাম বিবেচনা করেছিলাম যে বেস কীভাবে কাজ করে তা সবাই জানে তবে আমি কীভাবে এটি যাইহোক কিভাবে কাজ করে তার একটি সংক্ষিপ্ত উদাহরণ দেব। আসুন34 in base-12উদাহরণস্বরূপনেওয়া যাক, আমরা কীভাবে পেলাম40?

1-34 in regular base-10:
 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
 So, from 1 to 34 is 34 steps in base-10

1-34 in base-12:
 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 30, 31, 32, 33, 34
 So, from 1 to 34 is 40 steps in base-12

এখানে সম্ভবত একটি দরকারী ক্যালকুলেটর রয়েছে।

চ্যালেঞ্জ বিধি:

  • অ্যারের আকার যুক্তিসঙ্গত পরিসরে হবে (যেমন 1-100/ পরীক্ষার ক্ষেত্রে দেখুন)।
  • পরীক্ষার কেসগুলিতে কখনই পূর্ণসংখ্যা থাকে না যার পূর্ববর্তী বেসের জন্য বর্তমান মানটি অবৈধ ie (যেমন আপনার কাছে কখনও কখনও 19 in base-6বা এর মতো কিছু থাকবে না 6 in base-6, কারণ বেস -6 কেবলমাত্র অঙ্কগুলি রাখে 0-5)।
  • আপনি যেভাবে চান ইনপুট নিতে পারেন। কোনও অন্তর্-অ্যারে হিসাবে, কমা / স্থান দ্বারা পৃথক স্ট্রিং ইত্যাদির মতো হতে পারে Your (আপনাকে ইনট অ্যারে বিপরীত গ্রহণেরও অনুমতি দেওয়া হবে যা স্ট্যাক-ভিত্তিক প্রোগ্রামিং ভাষার জন্য কার্যকর হতে পারে))

সাধারাইওন রুল:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষা আপনাকে নন-গল্ফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবে না। যে কোনও প্রোগ্রামিং ভাষার জন্য যথাসম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতিগুলি, সম্পূর্ণ প্রোগ্রামগুলির সাথে STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজন হলে একটি ব্যাখ্যা যোগ করুন।

পরীক্ষার কেস:

[4, 12, 34, 20, 14, 6, 25, 13, 33]                            ->   235
 4+ 6+  40+ 68+ 24+ 6+ 17+ 28+ 42

[5, 14, 2, 11, 30, 18]                                        ->   90
 5+ 9+  2+ 3+  33+ 38

[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 12, 2, 11, 3, 10, 2, 10]    ->   98
 12+ 13+ 11+ 9+ 8+ 7+ 6+ 5+ 4+ 3+ 5+  2+ 3+  3+ 3+  2+ 2

[36, 36]                                                      ->   150
 36+ 114

1
LIFO ধারক রয়েছে এমন স্ট্যাক ভিত্তিক ভাষার জন্য, ইনপুটটি কি বিপরীত ক্রমে দেওয়া যেতে পারে? ডিসি-তে আমার প্রয়োজন হবে ~ 30 বাইট কেবল স্ট্যাকটি উল্টাতে ইনপুটটিতে প্রথম নম্বর হবে প্রক্রিয়াজাতকরণের জন্য, নন-স্ট্যাক ভিত্তিক ভাষাগুলি ডিফল্টরূপে রয়েছে।
শৈশুমারা

@ সেশৌমারা কেন নেই। আমি চ্যালেঞ্জে এটি স্পষ্ট করব এটি মূলত চ্যালেঞ্জ এবং আউটপুট সম্পর্কে, এবং ইনপুট-ফর্ম্যাট সম্পর্কে নয়।
কেভিন ক্রুইজসেন

উত্তর:


4

05 এ বি 1 ই , 7 6 5 বাইট

05AB1E এনকোডিং ব্যবহার করে ।

কেভিন ক্রুইজসেনেরš পরামর্শ অনুসারে নতুন বিল্ট-ইন ব্যবহার করে 1 বাইট সংরক্ষণ করা হয়েছে

TšüöO

ব্যাখ্যা

চ্যালেঞ্জের স্পেসিফিকেশন দ্বারা অনুমোদিত হিসাবে ইনপুট তালিকাটি বিপরীতে নেওয়া হয়।

Tš     # prepend a 10 to the list
  üö   # reduce by conversion to base-10
    O  # sum

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

পরীক্ষিত সংশোধিত


2
এর šপরিবর্তে বিল্টিন সহ এখন 5 বাইট হতে পারে ¸ì। এছাড়াও, আপনার ব্যাখ্যা যুক্তরাষ্ট্রের " পরিশেষে যোগ পরিবর্তে" এর " শুরুতে যোগ "। :)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন: আপনাকে ধন্যবাদ :)
এমিগিনা

9

পাইথন 3, 40 বাইট

lambda a:sum(map(int,map(str,a),[10]+a))

পরীক্ষাগুলি আদর্শে

map(str, a)একটি জেনারেটর তৈরি করে G, যা strপ্রতিটি মানকে কল করে a, স্ট্রিংগুলিতে রূপান্তর করে
map(int, G, [10]+a)এমন একটি জেনারেটর তৈরি করে যা জুড়ির int(g, v)জন্য জুড়ে কল করে Gএবং পূর্ণসংখ্যা বেস থেকে [10]+a
int(g, v)স্ট্রিংকে রূপান্তর করে (যদি থাকে এবং বৈধ হয়) টিনে যা বলে তা করেgvv[2,36]g
sum


7

পাইথন 2, 48 বাইট

lambda a:sum(int(`x`,y)for x,y in zip(a,[10]+a))

পরীক্ষাগুলি আদর্শে

zip(a,[10]+a)মানগুলির জোড়া ঘোরে aএবং পূর্ববর্তী মান বা 10প্রথম এ কল রূপান্তর একটি স্ট্রিং জন্য, স্ট্রিং পরিবর্তিত পূর্ণসংখ্যা বেস থেকে (যদি থাকে এবং বৈধ) কি এটা টিনের না
backticksintxs
int(s, y)syy[2,36]s
sum


6

পার্ল, 35 34 33 বাইট

জন্য +2 অন্তর্ভুক্ত -ap

STDIN এ সংখ্যার তালিকা সহ চালান:

basemix.pl <<< "4 12 34 20 14 6 25 13 33";echo

basemix.pl:

#!/usr/bin/perl -ap
$\+=$&+"$`$& 10"*/.$/*$`for@F}{

আমি এই অপব্যবহারটি ব্যবহার করার সুযোগের জন্য যুগে যুগে অপেক্ষা করছি ...

ব্যাখ্যা

ইনপুট সংখ্যায় সর্বাধিক 2 অঙ্ক থাকতে পারে। xyবেস একটি সংখ্যা bসহজভাবে হয় b*x+y। আমি রেজেক্সটি ব্যবহার করতে যাচ্ছি /.$/যাতে প্রথম সংখ্যাটি শেষ হয় $`এবং শেষ সংখ্যাটি শেষ হয় $&, সুতরাং যোগফলটির অবদান $&+$b*$`

আমি এই সত্যটি অপব্যবহার করি যে forরেগেক্স ভেরিয়েবলগুলি যথাযথভাবে স্থানীয়করণ করে না (উদাহরণস্বরূপ mapএবং whileকরুন) সুতরাং আগের লুপের সাথে একটি মিলের ফলাফলগুলি বর্তমান লুপে এখনও উপলব্ধ। সুতরাং যদি আমি যে ক্রমে আমি অপারেশন বেস হিসাবে পাওয়া যায় না ব্যাপারে সতর্ক আছি "$`$&", খুব প্রথম লুপ যেখানে আমি বেস প্রয়োজন তাই আমি ব্যবহার 10. হতে করা ছাড়া তাদের "$`$& 10"পরিবর্তে

প্রথমটি যেভাবে $&কাজ করে তা হ'ল আপত্তিজনক কারণ এটি /.$/ইতিমধ্যে পরিবর্তিত হয়ে যখন এটি ইতিমধ্যে যুক্ত হওয়ার অপেক্ষায় রয়েছে।

চূড়ান্ত অপব্যবহার }{শেষ যা লুপ ক্ষেত্রে প্রযোজ্য পরিবর্তন এ -pথেকে

LINE: while (defined($_ = <ARGV>)) {
    ...code..
}
continue {
    die "-p destination: $!\n" unless print $_;
}

থেকে

LINE: while (defined($_ = <ARGV>)) {
    ...code..
}
{
}
continue {
    die "-p destination: $!\n" unless print $_;
}

যার অর্থ $_মুদ্রণে অপরিজ্ঞাপিত হবে তবে এটি এখনও যোগ $\করে যার মধ্যে আমি যোগফলটি জমা করেছি। পোস্ট-লুপ প্রসেসিং পেতে এটি একটি স্ট্যান্ডার্ড গল্ফ কৌশল


আমি দুর্বল পেরেল-ফু দিয়ে আমাদের তাদের জন্য একটি ব্যাখ্যাতে সত্যই আগ্রহী!
এম-ক্রিজান

2
@ এম-ক্রজান সমাধান সমাধান এবং ব্যাখ্যা যুক্ত হয়েছে
টন হসপেল

4

পিএইচপি, 53 51 বাইট

for(;$x=$argv[++$i];$b=$x)$s+=intval($x,$b);echo$s;

প্রতিটি ইনপুটকে স্ট্রিং ভেরিয়েন্টে রূপান্তর করে ইনপুটটির উপরে আইট্রেটস। তারপরে আগের সংখ্যাটিকে বেস হিসাবে ব্যবহার করে পূর্ণসংখ্যার মানটি নেয়। প্রথম সংখ্যার জন্য, বেস সেট করা হবে না, পিএইচপি তারপরে 10 (নম্বর ফর্ম্যাট থেকে অনুমিত) দিয়ে শুরু হবে।

এটি চালান ( -dকেবল নান্দনিকতার জন্য যুক্ত):

php -d error_reporting=30709 -r 'for(;$x=$argv[++$i];$b=$x)$s+=intval($x,$b);echo$s;' -- 12 11 10 9 8 7 6 5 4 3 12 2 11 3 10 2 10;echo

বদলান

  • আসলে, স্ট্রিংতে রূপান্তর করার দরকার নেই, কারণ সি এল এল আর্গুমেন্ট ইতিমধ্যে স্ট্রিং। 2 বাইট সংরক্ষণ করা হয়েছে।

3

3
আপনি এর ṖḌসাথে প্রতিস্থাপন করতে পারেনF
জোনাথন অ্যালান

4
দুর্ভাগ্যক্রমে, এটি প্রথম সংখ্যাটিতে কাজ করবে না তার দুটি অঙ্ক রয়েছে।
ডেনিস

3

জাভা, 86 বাইট

s->{int[]b={10};return s.reduce(0,(r,n)->{r+=n.valueOf(""+n,b[0]);b[0]=n;return r;});}

পরীক্ষা এবং ungolfed

import java.util.function.ToIntFunction;
import java.util.stream.Stream;

public class Main {

  public static void main(String[] args) {
    ToIntFunction<Stream<Integer>> f = s -> {
      int[] b = {10};                 // Base, initialized with 10
      return s.reduce(0, (r, n) -> {  // Typical use of reduction, sum starts with 0.
        r += n.valueOf("" + n, b[0]); // Add the value in the previous base.
        b[0] = n;                     // Assign the new base;
        return r;
      });
    };

    System.out.println(f.applyAsInt(Stream.of(new Integer[]{4, 12, 34, 20, 14, 6, 25, 13, 33})));
  }
}

3

জাভাস্ক্রিপ্ট ES6, 45 42 41 বাইট

const g =
     a=>a.map(v=>s+=parseInt(v,p,p=v),s=p=0)|s
;

console.log(g.toString().length);                                            // 42
console.log(g([4, 12, 34, 20, 14, 6, 25, 13, 33]));                          // 235
console.log(g([5, 14, 2, 11, 30, 18]  ));                                    // 90
console.log(g([12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 12, 2, 11, 3, 10, 2, 10] )); // 98

Conventiently parseInt(x,0) === parseInt(x,10)

সম্পাদনা : @ বুদ্ধিমানের জন্য 1 টি বাইট সংরক্ষণ করা হয়েছে


নিস! আমার মনে হয় আপনি প্রতিস্থাপন দ্বারা একটি বাইট সংরক্ষণ করতে পারবেন &&sসঙ্গে |s
ETH প্রচারগুলি

এছাড়াও আপনি প্রতিস্থাপন করতে পারেন const gশুধু সঙ্গেg
ক্লাইড লোবো

3

খাঁটি বাশ, 38

b=10
for i;{((t+=$b#$i,b=i));}
echo $t

ইনপুট তালিকাটি কমান্ড-লাইনে দেওয়া আছে। for i;ইনপুট প্যারামিটারগুলির সাথে স্বয়ংক্রিয়ভাবে পুনরাবৃত্তি হয় (সমতুল্য for i in $@;)।

Ideone।


3

জাভা 7, 109 89 86 বাইট

int c(int[]a){for(Byte i=1;i<a.length;a[0]+=i.valueOf(a[i]+"",a[++i-2]));return a[0];}

@ ক্লিফ্রুটকে ধন্যবাদ 20 বাইট (যার মধ্যে 12 টি আমি আমার নিজের মতো করেছিলাম এমন একটি বোকা ভুলের কারণে) to

অবরুদ্ধ এবং পরীক্ষার কোড:

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

class M{
  static int c(int[] a){
     for(Byte i = 1; i < a.length; a[0] += i.valueOf(a[i]+"", a[++i-2]));
     return a[0];
  }

  public static void main(String[] a){
    System.out.println(c(new int[]{ 4, 12, 34, 20, 14, 6, 25, 13, 33 }));
    System.out.println(c(new int[]{ 5, 14, 2, 11, 30, 18 }));
    System.out.println(c(new int[]{ 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 12, 2, 11, 3, 10, 2, 10 }));
    System.out.println(c(new int[]{ 36, 36 }));
  }
}

আউটপুট:

235
90
98
150

আপনার কি সত্যিই দরকার p? সমষ্টি ভালো নির্ণিত যেতে পারে, করতে পারে না: r+=r.valueOf(""+a[i],a[i-1])?
অলিভিয়ার গ্রাগোয়ার

1
+""পরিবর্তে ব্যবহৃত রূপান্তর valueOfএবং অপ্রয়োজনীয় ভেরিয়েবলগুলি মুছে ফেলা -int c(int[]a){for(Integer i=1;i<a.length;a[0]+=i.valueOf(a[i]+"",a[++i-2]));return a[0];}
ক্লিফ্রুট

@cliffroot আহ, আমি একটা গাধা .. যখন আমি পরীক্ষা ছিল আমি কোন ভুল করেছি এবং ছিল 10এবং pবিপরীত। আমি ভুলটি বুঝতে পেরেছি এবং এটি সংশোধন করেছি, তবে স্ট্রিং অংশটি এখন নিয়মিত বেস -10 হওয়ায় আমি সত্যই সরিয়ে ফেলতে পারি toStringএবং ব্যবহার করতে পারি +"".. ধন্যবাদ, এবং অন্যান্য জিনিসগুলি গল্ফ করার জন্য ধন্যবাদ, -20 বাইট। আমি সত্যিই একটি উত্তর দিতে চাইছি যে আপনি আরও গল্ফ করতে পারবেন না (এটির আমি প্রশংসা করি না! কোর্সটি আরও ভাল - কোড-গল্ফিংয়ে এটি পি;)
কেভিন ক্রুইজসেন

শুধু আমার উত্তরের সাথে তুলনা করতে, আপনার বর্তমান জাভার সিনট্যাক্সে 79 বাইট দীর্ঘ (আমার বর্তমানে 86 বাইট দীর্ঘ)। তবে এটি অন্যের কোড নেওয়া মজাদার নয়;)
অলিভিয়ের গ্রাগোয়ার

1
@ কেভিন ক্রুজসেন, আমি এটির সাথে আরও ভাল আছি :) আমি কেবল অনুভব করি যে বাস্তববাদী জাভা 5-6 বাইটের সমস্ত সমাধানের সাথে প্রতিযোগিতা করে না, তাই আমি নিজের উত্তরগুলি প্রায়শই যোগ করি না, তবে আমি এখনও গল্ফকে মজাদার মনে করি find অন্যের সমাধান নিচে।
ক্লিফ্রুট

2

আসলে, 12 বাইট

;p(dX(♂$♀¿Σ+

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

ব্যাখ্যা:

;p(dX(♂$♀¿Σ+
;             dupe input
 p            pop first element from list
  (dX         pop and discard last element from other copy
     (♂$      stringify all elements in first copy
        ♀¿    for each pair of elements in the two lists, interpret the first element as a base-(second element) integer
          Σ   sum
           +  add first element of original list

2

সিজেম , 15 বাইট

l~{A\:A10bb}%:+

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

ব্যাখ্যা

l~     e# Read and evaluate input.
{      e# Map this block over the input...
  A    e#   Push A. Initially this is 10, afterwards it will be the value of the
       e#   last iteration.
  \:A  e#   Swap with current value and store that in A for the next iteration.
  10b  e#   Convert to base 10 to get its decimal digits.
  b    e#   Interpret those in the base of the previous A.
}%
:+     e# Sum all of those values.


2

মতলব, 68 বাইট

খুব সৃজনশীল সমাধান নয়, তবে এটি এখানে:

function[s]=r(x);j=10;s=0;for(i=x)s=s+base2dec(num2str(i),j);j=i;end

পরীক্ষা:

>> r([4,12,34,20,14,6,25,13,33])
ans =
   235
>> r([12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 12, 2, 11, 3, 10, 2, 10])
ans =
   98
>> r([5, 14, 2, 11, 30, 18])
ans =
   90
>> r([36,36])
ans =
   150

আপনি এর মাধ্যমে একটি বাইট সংরক্ষণ করতে পারেনfunction s=r(x);...
লুইস মেন্ডো

2

জাভাস্ক্রিপ্ট (ES6), 54 48 40 বাইট

আমি পুনরাবৃত্তি পদ্ধতির ব্যবহার করেছি।

f=([b,...a],c)=>b?parseInt(b,c)+f(a,b):0

6 টি বাইট সংরক্ষণ করা হয়েছে, Lmis ধন্যবাদ!
8 টি আরও বাইট সংরক্ষণ করা হয়েছে, নীলকে ধন্যবাদ!


1
আমার মনে হয় আপনি ব্যবহার করে 3 বাইট সংরক্ষণ করতে পারবেন parseInt(a,b)পরিবর্তে parseInt(a[0],b)যেহেতু parseIntস্ট্রিং প্রথম আর্গুমেন্ট ধর্মান্তরিত এবং প্রথম অবৈধ অক্ষর থেকে শুরু সবকিছু উপেক্ষা করে (অর্থাত ',')।
Lmis

1
আমি আরও মনে করি আপনি এর a[0]?stuff():0পরিবর্তে কিছু বাইট সংরক্ষণ করতে পারবেনa.length&&stuff()
Lmis

@ লিমিস ধন্যবাদ, আমি এটি আপডেট করেছি :)
হান্ট্রো

1
আমি মনে করি আপনি এটি 40 বাইটে সংক্ষিপ্ত করতে পারবেন:f=([b,...a],c)=>b?parseInt(b,c)+f(a,b):0
নিল

@ sliceফাংশনটি ব্যবহার না করার খুব সুন্দর উপায়
হান্ট্রো

2

পার্ল 6 ,  52  50 বাইট

{sum (10,|@_).rotor(2=>-1).map:{+":{.[0]}<{.[1]}>"}}
{sum (10,|@_).rotor(2=>-1).map:{":{.[0]}<$_[1]>"}}

ব্যাখ্যা:

# bare block lambda with implicit parameter 「@_」
{
  sum

    ( 10, |@_ )        # the input with a preceding 10
    .rotor( 2 => -1 )  # grab 2 values, back up one, repeat
    .map:
    {
      # create a string of the form ":10<4>"
      ":{
        .[0]            # first element from $_
      }<{
        .[1]            # second element from $_
      }>"
    }
}


1

জুলিয়া, 63 বাইট

f(l)=sum([parse(Int,string(l[i]),l[i-1])for i=2:length(l)])+l[]

পূর্ববর্তী উপাদানটিকে বেস এবং অঙ্ক হিসাবে গ্রহণ করে প্রতিটি সংখ্যা (প্রথমটি ব্যতীত) পার্স করে। শেষে প্রথম উপাদান যুক্ত করে


1

রুবি, 52 বাইট

->a{eval a.zip([10]+a).map{|e|'"%s".to_i(%s)'%e}*?+}

ungolfed

->a{
  eval(
    a.zip([10]+a).map { |e|
      '"%s".to_i(%s)' % e
    }.join("+")
  )
}

ব্যবহার

f=->a{eval a.zip([10]+a).map{|e|'"%s".to_i(%s)'%e}*?+}
p f[[4, 12, 34, 20, 14, 6, 25, 13, 33]] # => 235

1

স্কালা, 67 বাইট

def f(a:Int*)=a zip(10+:a)map{t=>Integer.parseInt(""+t._1,t._2)}sum

ব্যাখ্যা:

def f(a: Int*) =     //declare a method f with varargs of type Int as parameter
a zip (10 +: a)      //zip a with 10 prepended to a, resulting in...
                     //...Array((4,10), (12,4), (34,12), (20,34), (14,20), (6,14), (25,6), (13,25), (33,13))
map { t =>           //map each tuple t to...
  Integer.parseInt(  //...an integer by parsing...
    ""+t._1, t._2    //...a string of the first item in base-second-item.
  )
}
sum                  //and sum

1

গণিত, 59 বাইট

আমি আশা করি গণিতের ফাংশন নামগুলি সংক্ষিপ্ত হত। তবে অন্যথায় আমি খুশি।

Tr[FromDigits@@@Transpose@{IntegerDigits/@{##,0},{10,##}}]&

উদাহরণ স্বরূপ,

Tr[FromDigits@@@Transpose@{IntegerDigits/@{##,0},{10,##}}]&[4,12,34,20,14,6,25,13,33]

ফলন 235

{##,0}0 সংযুক্ত (সংখ্যার প্রতিনিধিত্ব করে) সহ ইনপুট আর্গুমেন্টের একটি তালিকা; {10,##}10 টি চাপ দেওয়া (ঘাঁটিগুলি উপস্থাপন করে) সহ ইনপুট আর্গুমেন্টগুলির একটি তালিকা। সেই জোড় তালিকাগুলি Transposeপ্রত্যেককে তার বেসের সাথে সংখ্যার সাথে যুক্ত করার জন্য, এবং FromDigits(হ্যাঁ!) প্রতিটি সংখ্যা-বেস জুটি বেস -10 পূর্ণসংখ্যায় রূপান্তর করে, যার ফলাফলগুলি সংক্ষেপে বলা হয় Tr


1

কমন লিস্প, 83

(lambda(s)(loop for b ="10"then x for x in s sum(#1=parse-integer x :radix(#1#b))))

বিস্তারিত

(defun base-mix (list)
  (loop
     for base = "10" then string
     for string in list
     sum (parse-integer string :radix (parse-integer base))))

loopকনস্ট্রাক্ট গ্রহণ "W তারপর বনাম" পুনরাবৃত্তির নির্মান, যেখানে V একটি অভিব্যক্তি প্রথমবার পুনরাবৃত্তির পরিবর্তনশীল নির্ণয় করা হয় মূল্যায়ন করা করা হয়, এবং W অভিব্যক্তি ধারাবাহিক পুনরাবৃত্তিও জন্য মূল্যায়ন করা হয়। ঘোষণা একের পর এক মূল্যায়ন করা হয়, তাই baseপ্রথম "10", তারপরে পূর্ববর্তী উপাদান stringতালিকার listহচ্ছে iterated। sumশব্দ একটি সমষ্টি নির্ণয়: পূর্ণসংখ্যা থেকে পড়তে stringবেস সঙ্গে , যেখানে পূর্ণসংখ্যা থেকে পার্স হয় baseবেস 10. মধ্যে স্ট্রিং, #1=এবং #1#সংজ্ঞায়িত করতে স্বরলিপি এবং ব্যবহার হয় পাঠক ভেরিয়েবল: প্রথমটি কোনও ভেরিয়েবলের জন্য একটি এস-এক্সপ্রেশনকে প্রভাবিত করে, অন্যটি একই বস্তুর দ্বারা রেফারেন্সটি প্রতিস্থাপন করে। এটি দীর্ঘ নামের জন্য কিছু অক্ষর সংরক্ষণ করে।

উদাহরণ

(base-mix '("4" "12" "34" "20" "14" "6" "25" "13" "33"))
=> 235

1

জাপট -x , 7 বাইট

äÏsnX}A

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

äÏsnX}A     :Implicit input of array
ä           :Take each consecutive pair of elements
 Ï          :Pass them through the following function as X & Y
  s         :  Convert Y to a base-10 string
   nX       :  Convert to an integer from base-X
     }      :End function
      A     :Before doing any of that, though, prepend 10 to the array
            :Implicit output of the sum of the resulting array
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.