পলের সাথে মুরগি খেতে পাঁচ বন্ধুকে সন্ধান করুন


15

পল আপনার বেলজিয়ামের পরিচিত একজন এবং তিনি চান আপনি এমন একটি প্রোগ্রাম তৈরি করুন যা নিম্নলিখিত পাঁচটি স্ট্রিংয়ের মধ্যে কমপক্ষে একটির ফলাফল দেয় :

12496=>14288=>15472=>14536=>14264

14264=>12496=>14288=>15472=>14536

14536=>14264=>12496=>14288=>15472

15472=>14536=>14264=>12496=>14288

14288=>15472=>14536=>14264=>12496

এটি তার সবচেয়ে বেশি গর্বিত বন্ধুদের প্রতিনিধিত্ব করে এবং তিনি তাদের সাথে খেতে চান। পল আরও মনে করেন যে 6 নম্বরটি নিখুঁত, এবং এটিই কেবল মূল্যবান সংখ্যা worth সুতরাং আপনি আপনার কোডে "6" ব্যতীত অন্য কোনও সংখ্যা ব্যবহার করতে পারবেন না (0 থেকে 5 এবং 7 থেকে 9 নিষিদ্ধ)। আপনার প্রোগ্রামটি কোনও ইনপুট নিতে পারে না। আউটপুটটিতে স্ট্রিংয়ের আগে এবং / বা পরে আবর্জনা থাকতে পারে তবে উপরের স্ট্রিংগুলির মধ্যে কমপক্ষে একটি থাকা উচিত।

উদাহরণস্বরূপ এটি একটি বৈধ আউটপুট:

220frefze
f**14288=>15472=>14536=>14264=>12496**fczfe fz**15472=>14536=>14264=>12496=>14288**zfe
fzehth

আমি "দীর্ঘায়িতভাবে" প্রশ্নটিতে ইঙ্গিত দিয়েছিলাম যে আমি কীভাবে এটি সমাধানের আশা করব, তবে কীভাবে জানবে? সম্ভবত আরও ভাল উপায় আছে ... আশা করি আপনি মজা পাবেন।

এটি কোড-গল্ফ: বাইট জিতে সর্বনিম্ন স্কোর।


3
সম্পর্কিত OEIS ক্রম।
এমিগিনা

5
এর সাথে পল বা মুরগির কী করণীয় তা আমি বুঝতে পারি না।
ম্যাজিক অক্টোপাস আরন

6
@ কারাসোকম্পিউটিং: সৃজনশীল চেইন '12496 => 14288 => 15472 => 14536 => 14264 "1915 সালে (একটি বেলজিয়ান গণিতবিদ) পল পাউলেট খুঁজে পেয়েছিলেন And এবং" পাউলেট "অর্থ ফরাসী ভাষায়" মুরগী ​​"Also এছাড়াও একটি নির্ভুল সংখ্যাটি এই অর্থে যে এর
বিভাজকের

8
অপেক্ষা করুন, সুতরাং একজন মনচিকেন 1918 সালে সংখ্যার ক্রম খুঁজে পেয়েছিলেন ... এবং আমরা পল নামের গাণিতিক মনছিকেনের চেয়ে সংখ্যা ক্রমটি সম্পর্কে আরও যত্নশীল?
ম্যাজিক অক্টোপাস উরান

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

উত্তর:


12

05 এ বি 1 ই , 18 17 বাইট

•w[•Y·FDѨO})„=>ý

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

ব্যাখ্যা

•w[•                # base 214 encoding of 12496
    Y·F             # loop 2*2 times
       D            # duplicate top of stack
        Ñ           # push divisors
         ¨          # remove the last element (itself)
          O         # sum
           }        # end loop
            )       # wrap in list
             „=>ý   # join list on "=>"

সংক্ষেপে, আমরা প্রতিটি সংখ্যা হিসাবে হিসাবে গণনা f(n+1) = sum(divisors(f(n)) - f(n)


5

পাইকে, 16 বাইট

wヰw$VDlsh)J"=>

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

wヰ             -  12496
  w$            -   4
    V    )      -  repeat ^:
     D          -   duplicate(^)
      l         -     factors(^)
       s        -    sum(^)
        h       -   ^ + 1
          J     - v.join(^)
           "=>  -  "=>"

যে কোনও সময় কোনও প্রোগ্রামের শেষে স্ট্রিং আক্ষরিক হয়, এটি একেবারে ঠিক আগে টোকেন দিয়ে অদলবদল করে, যেমন এর ক্ষেত্রে 1 বাইট সংরক্ষণ করে। পাইকের ফাংশনটিতে factorsনম্বরটি নিজেই বা 1 টিও অন্তর্ভুক্ত নয় numbers যদি সংখ্যাগুলি মঞ্জুর হয় তবে 1 বাইট প্রতিস্থাপনের w$মাধ্যমে সংরক্ষণ করা যেতে পারে4

পাইকে, 21 বাইট

uバ㟐㱰㣈㞸J"=>

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

প্রয়োজনীয় সংখ্যার একটি তালিকা তৈরি করুন এবং তাদের সাথে যোগ দিন। স্ট্রিংগুলির সাথে কৌশলটি বাদ দিয়ে খুব আকর্ষণীয় নয়।


4

ম্যাটল্যাব, 44 বাইট

['','=>@EBIJ=@>DDIJ=A@C>IJ=@A?BIJ=@>B@'-6-6]

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

আমি সংখ্যায় একটি প্যাটার্ন খুঁজে পাইনি (এবং যে কোনওভাবেই প্যাটার্নটি ব্যবহার করা শক্ত হবে, যেহেতু আমি সংখ্যা ব্যবহার করতে পারি না), তাই আমি কেবল নিষ্পাপ পদ্ধতির জন্য যাব।

'=>@EBIJ=@>DDIJ=A@C>IJ=@A?BIJ=@>B@''12496=>14288=>15472=>14536=>14264'এএসসিআইআই-মানগুলিতে 12 যুক্ত করা হলে স্ট্রিংটি হয়। এখন, স্ট্রিংটি ইনপুট করুন, এটি একটি অক্ষর অ্যারে রূপান্তর করতে 6+6খালি স্ট্রিং দিয়ে বিয়োগ করুন , এবং বিয়োগ করুন ''


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

1
কোডেড স্ট্রিংটিতে এখনও যেভাবে রয়েছে তা আমি পছন্দ করি =>
নিল

3

জাভাস্ক্রিপ্ট (ES6), 57 বাইট / 47 (UTF-8) অক্ষর

10 বি সংরক্ষণের জন্য ব্যবহারকারীর 5050812 কে ধন্যবাদ to

_=>[...'バ㟐㱰㣈㞸'].map(a=>a.charCodeAt()).join`=>`

ব্যাখ্যা

প্রথমে আমরা একটি অ্যারে তৈরি করি এবং স্ট্রিংয়ের অক্ষরগুলি দিয়ে এটি পূরণ করি バ㟐㱰㣈㞸। তারপরে আমরা স্ট্রিংটির উপর লুপ করব ( aবর্তমান উপাদানটির মান রয়েছে) এবং আমরা অক্ষরটিকে তার অক্ষর কোডে পরিবর্তন করি। তারপরে আমরা অ্যারেতে সমস্ত মান যোগ করি=>

পুরাতন: 67 বাইট

_=>[6,6,6,6,6].map((_,a)=>`バ㟐㱰㣈㞸`.charCodeAt(a)).join`=>`

ব্যাখ্যা

প্রথমে আমরা দৈর্ঘ্যের একটি অ্যারে তৈরি করি 5 তারপরে আমরা স্ট্রিংয়ের একই সূচীতে অক্ষরের অক্ষর কোডের জন্য প্রতিটি সূচকে অ্যারের মানগুলি পরিবর্তন করি バ㟐㱰㣈㞸, যা ক্রমের সাথে পলের সমস্ত বন্ধুদের সংখ্যা। যখন আমরা এটি পেলাম, আমরা এক সাথে অ্যারে যোগদান করি এবং আমরা =>বিভাজক হিসাবে ব্যবহার করি ।

ব্যবহার

এটি ব্যবহার করতে, কেবল এটি চালান:

f=_=>[...'バ㟐㱰㣈㞸'].map(a=>a.charCodeAt()).join`=>`;alert(f())

আউটপুট

12496=>14288=>15472=>14536=>14264

কীভাবে _ => [... 'バ 㟐 㱰 㣈 㞸']। মানচিত্র (গুলি => s.charCodeAt ()) `join` =>`
ব্যবহারকারী 5090812

@ user5090812 পরামর্শের জন্য ধন্যবাদ!
লুক

3

রুবি, 36 বাইট (26 টি অক্ষর)

p"バ㟐㱰㣈㞸".unpack("U*")*"=>"

কারণ, কেন নয়। নরক হিসাবে বিরক্তিকর।

পুরানো সংস্করণ - 53 বাইট

p %w(jol mld oim n6b mke).map{|x|x.to_i ~-6*~-6}*'=>'

ব্যাখ্যা: সংখ্যা 25 তে সংখ্যাগুলি এনকোডিংয়ের ফলে 5 টি ছয়-মুক্ত স্ট্রিং দেয়, সেগুলি ডিকোড করার জন্য আমাকে কেবল 6: (6-1) (6-1) => ~ -6 ~ -6 ব্যবহার করে 25 নম্বরটি উপস্থাপন করতে হবে


আমি UTF8 হওয়া 36 বাইট গণনা 26. না
smls

1
আমি অনুমান করি তিনি চরিত্রগুলি গণনা করেছেন, বাইটগুলি নয়। আমি সর্বদা এই সাইটটি বাইট গণনার জন্য ব্যবহার করি ।
লুক

এখনই গণনা সংশোধন করা হয়েছে।
জিবি

3

পার্ল 6 , 63 59 বাইট

{$/=6;$/--;join "=>",<JOL MLD OIM N6B MKE>».parse-base($/*$/)}

{join "=>",<JOL MLD OIM N6B MKE>».parse-base(--($_=6)*$_)}

বেস 25 থেকে সংখ্যাগুলি ডিকোড করুন কারণ এটিই কেবলমাত্র বেস .parse-base(2 থেকে 36) দ্বারা সমর্থিত যেখানে তাদের কোনওটিরই অবৈধ সংখ্যা নেই।

নীলকে -৩ বাইটের জন্য ধন্যবাদ

পার্ল 6 , 82 75 বাইট

{my \a="BXS".parse-base(6*6);join "=>",(a,{sum grep $_%%*,^$_}...^{$_==a if $++})}

{my \a="BXS".parse-base(6*6);join "=>",({$/=$_//a;sum grep $/%%*,^$/}...a)}

সংখ্যাটি 15472বেস ৩ base-তে ডিকোড করে এবং তারপরে প্রতিটি সংখ্যাকে পূর্ববর্তী সংখ্যার যথাযথ বিভাজনের যোগফল হিসাবে গণনা করে ক্রম তৈরি করে।

পার্ল 6 , 69 বাইট (47 টি অক্ষর) - নন-কেপটিং

{"{١٢۴۹6}=>{١۴۲۸۸}=>{١۵۴۷۲}=>{١۴۵۳6}=>{١۴۲6۴}"}

নিষিদ্ধ ASCII সংখ্যাগুলির কোনও ব্যবহার করবেন না, পরিবর্তে আরবি-ইন্ডিক ব্লক থেকে ইউনিকোড ডিজিটগুলি ব্যবহার করুন (প্রতিটি 2 বাইট)! দ্য{ }স্ট্রিং interpolations তারা পার্ল 6 সংখ্যা লিটারেল যেমন পার্স করছি, এবং তারপর তাদের হওয়া ASCII উপস্থাপনাগুলির ক্ষেত্রেও stringified ভুলবেন না।

ঠিক আছে, এটি প্রতারণা করছে - এ কারণেই আমি এটিকে আমার প্রধান উত্তর হিসাবে ব্যবহার করিনি ... :)


যেহেতু পার্ল inter দোভাষীকে আমার সহজেই অ্যাক্সেস নেই, তাই এটি --$/*$/কী লেখার কাজ করে ?
নিল

@ নীল: তা করে। ধন্যবাদ! আসলে, আমি এমনকি যদি কাজটি ইনলাইন করি তবে এটি কাজ করে --($/=6)*$/)
স্মৃতি

3

জেলি , 5 4 বাইট

ȷṗȷỌ

পাঁচটি স্ট্রিং মুদ্রণ করে। "আবর্জনা" আউটপুট মঞ্জুরিপ্রাপ্ত এবং 10 3003 এ পাঁচটি স্ট্রিং কবর দেয় এই বিষয়টি নিয়ে সুবিধা গ্রহণ করে অক্ষরের আউটপুটটিতে ।

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

ȷṗȷỌ  Main link. No arguments.

ȷ     Set the return value to 1000.
 ṗȷ   Cartesian power; form all arrays of length 1000 that consist of integers in
      [1, ..., 1000].
   Ọ  Unordinal; convert all integers to characters.

আউটপুট মধ্যে প্রয়োজনীয় স্ট্রিং এর বাইট অফসেট কি?
নীল

প্রয়োজনীয় স্ট্রিংগুলির যে কোনও একটিকে সমর্থন করার কোনও প্রমাণ আসলে মুদ্রিত আছে?
এরিক আউটগলফার

1
@ নীল চরিত্রটির অফসেটটি 48049051056053060061048051049055055060061048052051054049060061048051052050053060061048051049053051000 হওয়া উচিত । বাইট সম্পর্কে নিশ্চিত না।
ডেনিস

@ এরিকথ আউটগল্ফার যদি আসলে আপনার যুক্তিযুক্ত সময় এবং স্মৃতিশক্তি বাধা দিয়ে বোঝায় তবে তা নয়। চ্যালেঞ্জ যদিও কোনও সীমা নির্দিষ্ট করে না এবং সেগুলি ডিফল্টরূপে সীমাহীন।
ডেনিস

@ ডেনিস না, আমার অর্থ হ'ল অবশ্যই এটি বোঝানো হয়েছে যে এটি শীঘ্রই এর কাজ শেষ করবে না। কোডটি দিয়ে বিচার করলেও, আমি মনে করি যে এরকম কোনও স্ট্রিং প্রিন্ট করা সত্যিই অসম্ভব। তারপরে, আমি কেবল কিছু যুক্তিসঙ্গত প্রমাণের কথা ভেবেছিলাম ...
এরিক দ্য আউটগল্ফার

2

সি, 94 84 77 বাইট

স্টুওপিড সহজ। বিশেষ ধন্যবাদ @ নীল

g(){char*m="!mnpuryzmpnttyzmqpsnyzmpqoryzmpnrp";for(;*++m;)putchar(*m-66+6);}

চ () {printf, ( "% d =>% D =>% D =>% D =>% ঘ", '~' 'আর' - 'ডি', '~' 'ডি' - 'এইচ', ' ~ ' ' আর '-' এল ',' ~ ' ' জেড '+' ডি ',' ~ '*' টি '-' পি ');


Ideone উপর অন্তত, আপনি স্থানান্তর করতে পারেন char*mভিতরে for()একটি বাইট সংরক্ষণ করতে, এবং এটা ফাংশন পুনর্ব্যবহারযোগ্য (ফাংশন প্রয়োজনীয় শর্ত) করে তোলে। এছাড়াও, আপনি একটি আড়াল নাল আউটপুট; *++mএটা ঠিক করবে। এছাড়াও, আপনি 66: এর পরিবর্তে 60 বিয়োগ করে কিছু বাইট সংরক্ষণ করতে পারেন g(){for(char*m="!mnpuryzmpnttyzmqpsnyzmpqoryzmpnrp";*++m;)putchar(*m-66+6);}
নিল

অথবা আপনি ম্যাটল্যাব উত্তর থেকে এই পদ্ধতির অনুলিপি করতে পারেন, যা এর উপরে অন্য একটি বাইট সংরক্ষণ করতে পারে।
নিল

@ নীল আমার সংকলক আমাকে লুপটির ভেতরে ডিক্লেয়ার করতে দেবে না initial declaration used outside C99 mode সরল করে খুশি। ধন্যবাদ!
ক্লাব্ল্যাঙ্ক

1

পিএইচপি, 73 63 60 বাইট

for(;$c="|`*X6H-$*@"[$i];)echo!!$i&++$i?"=>".!!6:"",ord($c);

সাথে চালাও -nr

একটু কম অলস: এর তালিকা হিসাবে স্ট্রিং নেন =>1(ascii)(ascii)
অর্থাত: 124, 96, =>1, 42, 88, =>1,54 , 72, =>1, 45, 36, =>1, 42, 64; স্ট্রিং সূচক দ্বারা
মুদ্রণ =>1করুন, ascii কোড যুক্ত করুন

ভাঙ্গন

            # loop through string with index $i
for(;$c="|`*X6H-$*@"[$i];)echo
            # string ascii values: 124,96,42,88,54,72,45,36,42,64
    !!$i        # true if $i>0
    &++$i       # odd if (old) $i is 0,2,4,6,8
                # -> true for 2,4,6,8
        ?"=>".!!6   # if true, print "=>1"
        :"",        # else print nothing
    ord($c);    # print ascii value


1

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

<?=join('=>',unpack('v*',gzinflate('�`p������s')));

হেক্স ডাম্প:

00000000: 3c3f 3d6a 6f69 6e28 273d 3e27 2c75 6e70  <?=join('=>',unp
00000010: 6163 6b28 2776 2a27 2c67 7a69 6e66 6c61  ack('v*',gzinfla
00000020: 7465 2827 bb60 70c1 bcc0 e684 c50e 7300  te('.`p.......s.
00000030: 2729 2929 3b                             ')));

আউটপুট:

12496=>14288=>15472=>14536=>14264

ব্যাখ্যা:

পাঁচ-সংখ্যার পূর্ণসংখ্যার বিভাগগুলির প্রত্যেকটিই স্বাক্ষরবিহীন শর্ট সামান্য এন্ডিয়ান হিসাবে এনকোড করা হয়, তারপরে একসাথে সংমিশ্রিত হয় এবং ফলাফলটি জিপ্ করা হয়। এটি একটি বাইট স্টিম উত্পাদন করতে ঘটে যার কোনও আপত্তিকর অঙ্কের অক্ষর নেই, যা পরে স্ট্রিংয়ে হার্ড-কোডড হয়। নিষ্কাশন করতে, স্ট্রিমটিকে আন-জিপ করুন, দ্বি-বাইট শর্টসগুলি আনপ্যাক করুন, প্রতিটি স্ট্রিং হিসাবে ব্যাখ্যা করুন এবং এর সাথে যোগ দিন >=


ভাঙ্গন কেমন?
তিতাস

1

জাভা 8, 134 বাইট

Golfed:

()->{String s="";for(String a:new String[]{"JOL","MLD","OIM","N6B","MKE"}){if(!s.isEmpty())s+=("=>");s+=Long.valueOf(a,25);}return s;}

অবহেলিত, সম্পূর্ণ প্রোগ্রাম:

import java.util.function.*;

public class FindFiveFriendsToEatChickenWithPaul {

  public static void main(String[] args) {
    System.out.println(toString(() -> {
      String s = "";
      for (String a : new String[] { "JOL", "MLD", "OIM", "N6B", "MKE" }) {
        if (!s.isEmpty()) s += ("=>");
        s += Long.valueOf(a, 25);
      }
      return s;
    }));

  }

  private static String toString(Supplier<String> s) {
    return s.get();
  }

}

1

ব্যাচ, 191 বাইট

@set/as=n=66*(66+66+66+6*6)+66/6+66/6+6,u=6/6
@call:t
@call:t
@echo %s: ==^>%
@exit/b
:t
@call:c
:c
@for /l %%i in (%u%,%u%,%n%)do @set/an-=%%i*!(%n%%%%%i)
@set/an=-n
@set s=%s% %n%

আমি অনুমান করি যে প্রতিটি সংখ্যাটি কেবলমাত্র ব্যবহার করে গণনা করতে সর্বনিম্ন 32 বাইট লাগবে 6 them২ সেগুলি মুদ্রণ করতে যা ইতিমধ্যে 192 বাইট, তাই আমি মজাদার চেইনটি গণনা করে জিতেছি। এছাড়াও, আমি মনে করি একটানা পাঁচটি %এস আমার জন্য একটি রেকর্ড। এছাড়াও, ঝরঝরে ব্যাচের কৌশল: লুপটি মূল্যায়নের %n%আগে প্রতিস্থাপন করা forহয়, সুতরাং লুপটি সমস্ত কারণগুলি গণনা করে nএবং সেগুলি থেকে বিয়োগ করে n, ফলে কাঙ্ক্ষিত ফলাফলের প্রত্যাখ্যান ঘটে।


1

জেলি , 12 বাইট

“<ọ’ÆṣÐĿj“=>

চতুর্থ স্ট্রিং মুদ্রণ করে অন্য কিছু নয়।

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

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

“<ọ’ÆṣÐĿj“=>  Main link. No arguments.

“<ọ’          Yield the 1-based indices of '<' and 'ọ' in Jelly's code page, i.e.,
              [61, 222], and convert the array from base 250 to integer.
              This yields 15472.
      ÐĿ      Iteratively call the link to the left until the results are no longer
              unique and return the array of all unique results.
    Æṣ        Compute the proper digit sum of the previous value (initially 15472).
        j“=>  Join, separating by the string "=>".

0

পাইথন 2, 78 72 বাইট

print''.join(chr(ord(x)-6-6)for x in'=@>DDIJ=A@C>IJ=@A?BIJ=@>B@IJ=>@EB')

সম্পাদনা করুন - স্টিভি গ্রিফিনকে ধন্যবাদ 6 বাইট সংরক্ষণের জন্য !

এছাড়াও, আরও একটি সমাধান হ'ল সম্ভাব্য সকল অনুমতি আউটপুট। ওপি বলেছেন আবর্জনা ঠিক আছে।

from itertools import permutations
print str(list(permutations(''.join(str(x)+'.'for x in range(int('9'*5)).replace(',','').replace('\'','') 
# also 9 and 5 need to be converted using ord and chr

সেখান থেকে রূপান্তর অত্যধিক অতিরেক হয় intবা listকরতে str। আমি অনুমান করি যে এটি কয়েকটি রহস্যময় ভাষায় আরও সহজ হবে তবে আমি সেগুলির কোনওটিই জানি না।


আপনি 12 এর পরিবর্তে 66 যোগ করতে পারেন? এটি অন্য একটি বাইট সংরক্ষণ করতে পারে।
জিবি

এটি স্বাভাবিক এএসসিআইআই-রেঞ্জের @ জিবি ছাড়বে, যার অর্থ আপনাকে চরিত্র অনুসারে দুটি বাইট গুনতে হবে।
স্টিভি গ্রিফিন

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