দ্বিগুণ করে এবং পুনরায় ব্যবস্থা করে আপনি এই নম্বরটিতে পৌঁছাতে পারবেন?


34

ম্যাথ.এসইতে এই প্রশ্নে অনুপ্রাণিত ।

1আপনার সাথে শুরু করে বারবার নিম্নলিখিত দুটি ক্রিয়াকলাপগুলির মধ্যে একটি সম্পাদন করতে পারেন:

  • সংখ্যাটি দ্বিগুণ করুন।

    অথবা

  • আপনি যে কোনও উপায়ে চাইলে এর অঙ্কগুলি পুনরায় সাজান, সেখানে কোনও নেতৃস্থানীয় শূন্য না থাকা উচিত।

লিঙ্কযুক্ত ম্যাথ.এসই পোস্ট থেকে একটি উদাহরণ গ্রহণ করে আমরা 1000নিম্নলিখিত পদক্ষেপগুলির মাধ্যমে পৌঁছাতে পারি :

1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 125, 250, 500, 1000

এই প্রক্রিয়াটি নিয়ে আপনি কোন সংখ্যায় পৌঁছাতে পারেন এবং সংক্ষিপ্ততম সমাধানটি কী?

চ্যালেঞ্জ

একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া হয়েছে , যদি সম্ভব হয় তবে উপরের প্রক্রিয়াটি দিয়ে Nপৌঁছানোর জন্য সংখ্যার সংক্ষিপ্ততম ক্রমটি নির্ধারণ করুন Npossible যদি বেশ কয়েকটি অনুকূল সমাধান হয় তবে তার মধ্যে যে কোনও একটি আউটপুট করুন। যদি এই জাতীয় ক্রম উপস্থিত না থাকে তবে আপনার খালি তালিকা আউটপুট করা উচিত।

ক্রমটি কোনও সুবিধাজনক, দ্ব্যর্থহীন স্ট্রিং বা তালিকার বিন্যাসে থাকতে পারে।

আপনি STDIN (অথবা নিকটতম বিকল্প), কমান্ড-লাইন আর্গুমেন্ট বা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট নিয়ে কোনও প্রোগ্রাম বা ফাংশন লিখতে এবং STDOUT (বা নিকটতম বিকল্প), ফাংশন রিটার্ন মান বা ফাংশন (আউট) প্যারামিটারের মাধ্যমে ফলাফল আউটপুট করতে পারেন।

এটি কোড গল্ফ, তাই সংক্ষিপ্ত উত্তরটি (বাইটে) জেতে।

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

এখানে 256 অবধি এবং সমস্ত আপিলযোগ্য সংখ্যার একটি তালিকা রয়েছে first প্রথম কলামটি হ'ল নম্বর (আপনার ইনপুট), দ্বিতীয় কলামটি পদক্ষেপগুলির সর্বাধিক সংখ্যার (যা আপনি আপনার সমাধানটির মেয়াদ পরীক্ষা করতে ব্যবহার করতে পারেন) এবং তৃতীয় কলামটি সেখানে যাওয়ার জন্য একটি সর্বোত্তম ক্রম:

1       1       {1}
2       2       {1,2}
4       3       {1,2,4}
8       4       {1,2,4,8}
16      5       {1,2,4,8,16}
23      7       {1,2,4,8,16,32,23}
29      10      {1,2,4,8,16,32,23,46,92,29}
32      6       {1,2,4,8,16,32}
46      8       {1,2,4,8,16,32,23,46}
58      11      {1,2,4,8,16,32,23,46,92,29,58}
61      6       {1,2,4,8,16,61}
64      7       {1,2,4,8,16,32,64}
85      12      {1,2,4,8,16,32,23,46,92,29,58,85}
92      9       {1,2,4,8,16,32,23,46,92}
104     15      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,104}
106     14      {1,2,4,8,16,32,64,128,256,265,530,305,610,106}
107     14      {1,2,4,8,16,32,23,46,92,29,58,85,170,107}
109     18      {1,2,4,8,16,32,23,46,92,184,368,386,772,277,554,455,910,109}
116     12      {1,2,4,8,16,32,23,46,92,29,58,116}
122     7       {1,2,4,8,16,61,122}
124     16      {1,2,4,8,16,32,23,46,92,29,58,85,170,107,214,124}
125     11      {1,2,4,8,16,32,64,128,256,512,125}
128     8       {1,2,4,8,16,32,64,128}
136     18      {1,2,4,8,16,32,23,46,92,184,148,296,592,259,518,158,316,136}
140     15      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,140}
142     16      {1,2,4,8,16,32,23,46,92,29,58,85,170,107,214,142}
145     17      {1,2,4,8,16,32,23,46,92,184,368,736,376,752,257,514,145}
146     18      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,104,208,416,146}
148     11      {1,2,4,8,16,32,23,46,92,184,148}
149     16      {1,2,4,8,16,32,64,128,182,364,728,287,574,457,914,149}
152     11      {1,2,4,8,16,32,64,128,256,512,152}
154     17      {1,2,4,8,16,32,23,46,92,184,368,736,376,752,257,514,154}
158     16      {1,2,4,8,16,32,23,46,92,184,148,296,592,259,518,158}
160     14      {1,2,4,8,16,32,64,128,256,265,530,305,610,160}
161     13      {1,2,4,8,16,32,23,46,92,29,58,116,161}
163     18      {1,2,4,8,16,32,23,46,92,184,148,296,592,259,518,158,316,163}
164     18      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,104,208,416,164}
166     20      {1,2,4,8,16,32,23,46,92,184,368,736,376,752,257,514,154,308,616,166}
167     17      {1,2,4,8,16,32,23,46,92,184,148,296,269,538,358,716,167}
169     23      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,104,208,416,461,922,229,458,916,169}
170     13      {1,2,4,8,16,32,23,46,92,29,58,85,170}
176     17      {1,2,4,8,16,32,23,46,92,184,148,296,269,538,358,716,176}
182     9       {1,2,4,8,16,32,64,128,182}
184     10      {1,2,4,8,16,32,23,46,92,184}
185     16      {1,2,4,8,16,32,23,46,92,184,148,296,592,259,518,185}
188     23      {1,2,4,8,16,32,23,46,92,184,148,296,592,259,518,185,370,740,470,940,409,818,188}
190     18      {1,2,4,8,16,32,23,46,92,184,368,386,772,277,554,455,910,190}
194     16      {1,2,4,8,16,32,64,128,182,364,728,287,574,457,914,194}
196     23      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,104,208,416,461,922,229,458,916,196}
203     16      {1,2,4,8,16,32,64,128,256,265,530,305,610,160,320,203}
205     13      {1,2,4,8,16,32,64,128,256,512,125,250,205}
208     16      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,104,208}
209     19      {1,2,4,8,16,32,23,46,92,184,368,736,376,752,257,514,145,290,209}
212     8       {1,2,4,8,16,61,122,212}
214     15      {1,2,4,8,16,32,23,46,92,29,58,85,170,107,214}
215     11      {1,2,4,8,16,32,64,128,256,512,215}
218     9       {1,2,4,8,16,32,64,128,218}
221     8       {1,2,4,8,16,61,122,221}
223     14      {1,2,4,8,16,32,23,46,92,29,58,116,232,223}
227     20      {1,2,4,8,16,32,23,46,92,184,148,296,592,259,518,158,316,361,722,227}
229     20      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,104,208,416,461,922,229}
230     16      {1,2,4,8,16,32,64,128,256,265,530,305,610,160,320,230}
232     13      {1,2,4,8,16,32,23,46,92,29,58,116,232}
233     22      {1,2,4,8,16,32,23,46,92,184,368,736,376,752,257,514,154,308,616,166,332,233}
235     19      {1,2,4,8,16,32,23,46,92,184,148,296,269,538,358,716,176,352,235}
236     19      {1,2,4,8,16,32,23,46,92,184,148,296,592,259,518,158,316,632,236}
238     19      {1,2,4,8,16,32,64,128,256,512,125,250,205,410,104,208,416,832,238}
239     25      {1,2,4,8,16,32,23,46,92,184,368,736,376,752,257,514,154,308,616,166,332,233,466,932,239}
241     16      {1,2,4,8,16,32,23,46,92,29,58,85,170,107,214,241}
244     8       {1,2,4,8,16,61,122,244}
247     21      {1,2,4,8,16,32,23,46,92,184,148,296,592,259,518,158,316,632,362,724,247}
248     17      {1,2,4,8,16,32,23,46,92,29,58,85,170,107,214,124,248}
250     12      {1,2,4,8,16,32,64,128,256,512,125,250}
251     11      {1,2,4,8,16,32,64,128,256,512,251}
253     19      {1,2,4,8,16,32,23,46,92,184,148,296,269,538,358,716,176,352,253}
256     9       {1,2,4,8,16,32,64,128,256}

আপনি যদি আরও পরীক্ষার ডেটা চান তবে এখানে 1,000 টি সহ একই টেবিল রয়েছে

এই টেবিলগুলিতে উপস্থিত না হওয়া যে কোনও সংখ্যার একটি খালি তালিকা পাওয়া উচিত (শর্তটি সারণির সীমার মধ্যে থাকে)।


ফাঁসির সময়টিতে কি কোনও সীমা রয়েছে?
19:30

2
@ ফ্যাটালাইজ নো, পাগল হও
মার্টিন ইন্ডার

আমি মনে করি সম্ভাব্য অসীম সম্পাদনের সময়টি গ্রহণযোগ্য নয় কি? এটি তাত্ত্বিকভাবে শেষ করতে হবে?
32


যখন একাধিক ফলাফল আসে তখন কী হবে: [1, 2, 4, 8, 16, 32, 64, 46, 92, 29] [1, 2, 4, 8, 16, 32, 23, 46, 92, 29]
dbramwell

উত্তর:


18

পাইথ, 43 বাইট

?}QKhu?Jf}QTGJsm+Ld+yedsMfnhT\0.p`edGQ]]1KY

প্রদর্শন.

এটি সমস্ত সম্ভাব্য দ্বৈত বা পুনর্বিন্যাসের ক্রমগুলি তৈরি করে শুরু হয়। তবে, যেহেতু আমি আসলে এটি শেষ দেখতে চেয়েছি, তাই আমি একটি শর্ট সার্কিট যুক্ত করেছি।

এটি হয় সমাধান না পাওয়া পর্যন্ত চালিয়ে যায় বা ইনপুট সমান সংখ্যক পুনরাবৃত্তির জন্য, যে সময়ে এটি ছেড়ে দেয় এবং ফিরে আসে []


এটি যথেষ্ট পুনরাবৃত্তি হওয়ার গ্যারান্টিযুক্ত। প্রথমত, আমরা জানি যে এই বহু পুনরাবৃত্তি সমস্ত এন <= 1000 এর জন্য যথেষ্ট, উদাহরণস্বরূপ ফলাফলগুলির জন্য ধন্যবাদ। বৃহত সংখ্যার জন্য, নিম্নলিখিত যুক্তিটি ধারণ করে:

প্রথমত, প্রক্রিয়াটির প্রতিটি ধাপে হয় অঙ্কের সংখ্যা বজায় রাখতে হবে বা বৃদ্ধি করতে হবে।

দ্বিতীয়ত, তিনটি সংখ্যার যা একে অপরের সমস্ত পুনর্বিন্যাস সমস্তই সংক্ষিপ্ত ক্রমে হাজির হতে পারে না, কারণ প্রথম থেকে শেষ পর্যন্ত কেবল একটি একক পুনর্বিন্যাস করা তত দ্রুত হত।

তৃতীয়ত, 3 এর সমস্ত গুণকগুলি অ্যাক্সেসযোগ্য, কারণ দ্বিগুণ বা পুনর্বিন্যাস দুটিই 3 এর একাধিক থেকে 3 এর একাধিক উত্পাদন করতে পারে।

সুতরাং, প্রদত্ত সংখ্যায় শেষ হওয়া দীর্ঘতম সিক্যুয়েন্সটি ইনপুট হিসাবে সংখ্যার চেয়ে কম সংখ্যার সমান বা সমান সংখ্যার সংখ্যার দ্বিগুণ সংখ্যার সমান এবং যেখানে সংখ্যাগুলি 3 এর একাধিকের সমষ্টি হয় না।

প্রতিটি সংখ্যার জন্য এই জাতীয় সংখ্যার সেটগুলির সংখ্যা:

4 - 474
5 - 1332
6 - 3330

তদতিরিক্ত, আমরা উদাহরণগুলি থেকে জানি যে 3 সংখ্যার সংখ্যার সাথে শেষ হওয়া কোনও সংক্ষিপ্ত ক্রম 26 এর চেয়ে বেশি দৈর্ঘ্যের নয় Thus সুতরাং, অনুক্রমের দৈর্ঘ্যের একটি উপরের প্রান্তটি হ'ল:

4: 474 * 2 + 26 = 974
5: 974 * 2 + 1332 = 3638
6: 3330 * 2 + 3638 = 10298

প্রতিটি ক্ষেত্রে, উপরের সীমাটি সংখ্যার সংখ্যা সহ যে কোনও সংখ্যার চেয়ে কম

অঙ্কের সংখ্যাটি যখন এক দ্বারা বাড়ানো হয় তখন দশকের সেটগুলির সংখ্যা 10 টির বেশি ফ্যাক্টর দ্বারা বাড়তে পারে না, কারণ নতুন সংখ্যাগুলি শেষ সংখ্যা দ্বারা বিভক্ত করা যেতে পারে, যার প্রত্যেকটিরই কম সংখ্যার চেয়ে বেশি সেট থাকতে পারে না অঙ্ক.

সুতরাং, উপরের সীমানা 4 টিরও বেশি বা তার সমান সংখ্যার সম্ভাব্য সংখ্যার জন্য যে কোনও সংখ্যার সাথে কম সংখ্যার চেয়ে কম হবে, যা প্রমাণটি সম্পূর্ণ করে যে ইনপুট সমান সংখ্যক পুনরাবৃত্তি সর্বদা যথেষ্ট।


আপনি কি নিশ্চিত যে ইনপুট সমান সংখ্যক পুনরাবৃত্তি যথেষ্ট? তত্ত্বের ভিত্তিতে উপরের সীমাটি পরবর্তী বৃহত্তর 10 টির মতো হবে না (যেহেতু ক্রমটি নির্বিচারে প্রায়শই হ্রাস পেতে পারে)।
মার্টিন এন্ডার

@ মার্টিনব্যাটনার ভাল পয়েন্ট। আমি মনে করি একটি প্রমাণ থাকা উচিত যে ইনপুট সর্বদা যথেষ্ট, তবে আমি এখনই এটি সম্পাদনা করব।
isaacg

@ মার্টিনব্যাটনার প্রমাণ যে ইনপুট সমান পুনরাবৃত্তি সর্বদা যথেষ্ট যোগ করা হয়।
isaacg

আহ, খুব সুন্দর। :) (মজার কথা, এমনকি 100,000 অবধি আপনার 26 টি ধাপের বেশি প্রয়োজন নেই))
মার্টিন এন্ডার

আমি বিশ্বাস করি যে সমস্ত পদক্ষেপগুলি ইনপুটটির চেয়ে দীর্ঘ নয় গণনা করা আরও দ্রুত হবে?
জন ডিভোরাক

7

এসডাব্লুআই-প্রোলগ, 252 বাইট

a(N,Z):-findall(X,b(N,[1],X),R),sort(R,[Z|_]);Z=[].
b(N,[A|T],Z):-n(A,C),n(N,M),length(C,L),length(M,O),L=<O,((A=N,reverse([A|T],Z));(A\=N,(B is A*2;permutation(C,D),\+ nth0(0,D,48),n(B,D),\+member(B,[A|T])),b(N,[B,A|T],Z))).
n(A,B):-number_codes(A,B).

উদাহরণ: a(92,Z).আউটপুটসZ = [1, 2, 4, 8, 16, 32, 64, 46, 92]

আমি নিরীক্ষণ করে দেখিনি যে এটি সময়> N> 99 এর জন্য কাজ করে, তবে এটি কাজ করবে না এমন কোনও কারণ আমি দেখতে পাচ্ছি না।


2

জুলিয়া, 306 245 218 বাইট

এখনও এটি গল্ফ উপর কাজ করে। আমার কাজ শেষ হয়ে গেলে একটি অবারিত সংস্করণ সরবরাহ করবে।

s->(M=s=[s];while 1∉s C=0;for i=1:size(s,1) p=2;for j=permutations(dec(s[i])) j[1]>48&&j[end]%2<1&&(l=int(j);l=l÷p;l∉M&&(M=[M,l];S=[l s[i,:]];C==0?C=S:C=[C;S]));p=1end;end;C==0&&return [];s=C;end;sortrows(s)[1,:])

1

হাস্কেল, 246 বাইট

এটি পুরোপুরি নিশ্চিত নয় যে এটি কাজ করে কিনা, এটি যদি if ক্রমটি প্রথমে নিম্নদিকে ডাইভার্ট করে (কম বাছাই করা হয়) সর্বদা সংক্ষিপ্ত হয়, উদাহরণস্বরূপ

[1,2,4,8,16,32,64,128,256,512,125,250,500,1000]

এর চেয়ে কম

[1,2,4,8,16,32,64,128,256,512,251,502,250,500,1000]

যা আমি 1000 পর্যন্ত সত্য বলে পরীক্ষা করেছি।

import Data.List
h l|mod(e l)2==0=l:h(div(e l)2:l)|0<1=[l]
s l=map((:l).read)(filter((/='0').e)(permutations$show$e l))
e=head
m=map e
n f=m.groupBy(\a b->e a==e b).sort.concatMap f
w l|e(e l)==1=[nub$e l]|m x/=m l=w x|0<1=[[]] where x=n h(n s l)

1

সি # 655 বাইট

List<int> C(int i,List<int> x,int a){x.Add(a);if(a==i)return x;List<int> o=null;string s=a.ToString(),m=i.ToString();var res=G(s,s.Length);foreach (var r in res)if (r.First()!='0'){var l=int.Parse(new String(r.ToArray()));if(!x.Contains(l)&&l.ToString().Length<=m.Length){var n=C(i,x.ToList(),l);if(n!=null&&(o==null||o.Count()>n.Count()))o=n;}}if ((a*2).ToString().Length>m.Length)return o;var p = C(i, x.ToList(), a * 2);if (p!=null&&(o==null||o.Count()>p.Count()))o=p;return o;}IEnumerable<IEnumerable<T>> G<T>(IEnumerable<T> l,int i){return i==1?l.Select(t =>new T[]{t}):G(l,i-1).SelectMany(t=>l.Where(e=>!t.Contains(e)),(a,b)=>a.Concat(new T[]{b}));}

(লিনকপ্যাড) সাথে কল করুন:

var i = 64;
C(i,new List<int>(),1).Dump();

99 টির উপরে সংখ্যা পরীক্ষা করা হয়নি you আপনার যদি সময় থাকে -> সৌভাগ্য ;-)

সম্পাদনা: নিরবচ্ছিন্ন সংস্করণ:

List<int> C(int i, List<int> x, int toAdd, bool removeLast)
{
    x.Add(toAdd);

    if ( toAdd == i )
    {
        return x;
    }
    else
    {
        List<int> shortest = null;
        if ( toAdd > 9 )
        {
            var res = G(toAdd.ToString(), toAdd.ToString().Length);

            foreach ( var r in res )
            {
                if ( r.First () != '0' )
                {
                    var resi = int.Parse(new String(r.ToArray()));

                    if ( !x.Contains(resi) && resi.ToString().Length <= i.ToString().Length )
                    {
                        var resPerm = C(i, x.ToList(), resi, false);
                        if ( resPerm != null )
                        {
                            if ( shortest == null || shortest.Count() > resPerm.Count() )
                            {
                                shortest = resPerm;
                            }
                        }
                    }
                }
            }
        }
        if ( (toAdd * 2).ToString().Length > i.ToString().Length )
        {
            return shortest;
        }
        var resDouble = C(i, x.ToList(), toAdd * 2, false);
        if ( resDouble != null )
        {
            if ( shortest == null || shortest.Count() > resDouble.Count() )
            {
                shortest = resDouble;
            }
            return shortest;
        }

        return shortest;
    }
}
IEnumerable<IEnumerable<T>> G<T>(IEnumerable<T> l,int i)
{
    return i==1?l.Select(t => new T[]{t}):G(l,i-1).SelectMany(t=>l.Where(e=>!t.Contains(e)),(a,b)=>a.Concat(new T[]{b}));
}

0

সিজেম, 83

ri:N_1a:Xa:Y;{X,{XI=__se!{c~},:i^\2*|NA*,&X-_YI=f+Y\+:Y;X\+:X;}fI}*X#_){Y=W%}{;L}?p

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

আমি দীর্ঘদিন ধরে এটি বসে আছি, এটি খুব স্বল্প বা দ্রুত নয় এবং আমি এটির উন্নতি করার শক্তি / অনুপ্রেরণাও জানি না, তাই আমি কেবল এটি পোস্ট করছি।

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