আত্মবিশ্বাসী নম্বর


14

আত্মবিশ্বাসী নম্বর

যাক xএকটি নির্বিচার বেসের একটি পূর্ণসংখ্যা, যেমন Dএটির একটি অঙ্কের অ্যারে। xএর nমধ্যে 1এবং দৈর্ঘ্যের সকলের জন্য, যদি একটি বিশ্বাসযোগ্য নম্বর হয় D:

D[n+1] = D[n] + D[n-1] + ... + D[1] + n

উদাহরণস্বরূপ, 349বেস 10 তে সংখ্যাটি ধরুন যদি আমরা এই সংখ্যার জন্য সূচকগুলি লেবেল করি তবে আমাদের নীচে রয়েছে।

Index    Digit
-----    -----
1        3
2        4
3        9

প্রথম অঙ্ক থেকে শুরু করে, আমাদের রয়েছে 1 + 3 = 4, যা পরবর্তী অঙ্কটি দেয়। তারপরে দ্বিতীয় অঙ্ক সহ আমাদের রয়েছে 3 + 4 + 2 = 9যা আবার অঙ্ক করে পরবর্তী অঙ্কটি। সুতরাং, এই নম্বরটি একটি কনফিডেন্ট নম্বর।


1 এবং 62 এর মধ্যে একটি বেসের সাথে একটি পূর্ণসংখ্যা দেওয়া, সেই বেসের জন্য সমস্ত বিশ্বাসী নম্বর গণনা করুন এবং তাদের নতুন তালিকা তৈরি করে একটি তালিকা আউটপুট করুন। আপনি ধরে নিতে পারেন যে প্রদত্ত বেসের জন্য কনফিডেন্ট নম্বরগুলির সীমাবদ্ধ পরিমাণ রয়েছে।

9 টিরও বেশি সংখ্যার জন্য, আলফা অক্ষর A-Zএবং Zআলফা অক্ষর ব্যবহারের চেয়ে বেশি সংখ্যার জন্য ব্যবহার করুন a-z। এর বাইরে অঙ্কগুলি নিয়ে আপনাকে চিন্তা করতে হবে না z

তাদের কোনও নির্দিষ্ট ক্রমে আউটপুট হতে হবে না।


নমুনা ইনপুট:

16

নমুনা আউটপুট:

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
12
23
34
45
56
67
78
89
9A
AB
BC
CD
DE
EF
125
237
349
45B
56D
67F
125B
237F

এটি কোড গল্ফ, তাই সংক্ষিপ্ততম কোডটি জয়ী। শুভকামনা!

(বিন্যাসে সহায়তার জন্য এবং কয়েকটি সমস্যা চিহ্নিত করার জন্য জাচকে ধন্যবাদ))


দুঃখিত, প্রশ্নটি সম্পর্কে আমার এবং জাচের মধ্যে সামান্য বিভ্রান্তি। এখনই সবকিছু ফর্ম্যাট করা উচিত।
একটি স্প্যাগেটো

একটি দরকারী পর্যবেক্ষণ: একটি বিশ্বাসযোগ্য সংখ্যায়, প্রতিটি অঙ্কের চেয়ে পূর্বের অঙ্কের দ্বিগুণ হয়, দ্বিতীয় অঙ্ক বাদে প্রথম সংখ্যাটি হয়।
xnor

কলামের দিকে যাওয়া আরেকটি (সম্ভবত) দরকারী প্যাটার্ন প্রকাশ করে;)
জিওবিটস

1
উদাহরণস্বরূপ, তালিকায় কেন নেই CD? যেহেতু দ্বিতীয় অঙ্কটি প্রথম সংখ্যার চেয়ে আরও একটি আরও কম্বিনেশন তালিকাভুক্ত রয়েছে তাই কেন CDযোগ্যতা অর্জন করে না তা আমি বুঝতে পারি না ।
রেটো কোড়াদি

এটি একটি দুর্ঘটনা ছিল: পি স্থির, এটি নির্দেশ করার জন্য ধন্যবাদ।
একটি স্প্যাগেটো

উত্তর:


2

পাইথ, 38 বাইট

0jms@L+s`MT+rG1Gdf<eTQsm.u+N+lNsNQ]dSQ

অনলাইনে চেষ্টা করুন: বিক্ষোভ

ব্যাখ্যা:

0jms@L+s`MT+rG1Gdf<eTQsm.u+N+lNsNQ]dSQ  implicit: Q = input base
0                                       print 0
                       m            SQ  map each d of [1, 2, ..., Q] to:
                        .u       Q]d      start with N=[d], apply v Q times
                          +N+lNsN           add (len(N) + sum(N)) to N
                                          gives all intermediate results
                      s                 join to one list of candidates
                 f<eTQ                  filter those, where every digit < Q
  ms@L+s`MT+rG1Gd                       convert numbers to letters 0-9A-Za-z
 j                                      print each on separate line

9

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

n=input()
for i in range(n):
 s=''
 while i<n:s+=chr(48+i+(i>9)*7+i/36*6);print s;i+=n**0**i+i*(s>s[:1])

এর ফলে, নিম্নলিখিত পর্যবেক্ষণ ব্যবহার করে: একটি বিশ্বস্ততার সংখ্যা, অঙ্ক iদ্বারা অনুসরণ করা হয় 2*i+1ছাড়া এটা i+1দ্বিতীয় অঙ্ক জন্য এর পরিবর্তে। সমস্ত সম্ভাব্য প্রথম সংখ্যা ব্যবহার করে এবং আরও বেশি সংখ্যা যোগ করার পরে যতক্ষণ না সেগুলি আরও বড় হয়, আমরা সমস্ত বিশ্বাসী সংখ্যা উত্পন্ন করতে পারি।

আমরা চরিত্র সংশ্লিষ্ট সংখ্যা গণনা iহিসাবে chr(48+i+(i>9)*7+i/36*6)যা নম্বর, বড় হাতের অক্ষর, বা অন্তর জন্য টি বড়হাতের অক্ষর সীমার মধ্যে জনতার, 0-9, 10-35, 36-61

এর পরে, আমরা বৃদ্ধি iমাধ্যমে i+=i+1দুই সমন্বয়গুলি। i+=1প্রথম অঙ্কের পরিবর্তে এটি তৈরি করতে , আমরা অক্ষরের চেয়ে বেশি থাকার ক্ষেত্রে iশর্তযুক্ত যুক্ত করি al এছাড়াও, একই সাথে অনুমতি দেওয়ার সময় আমাদের 0 টি প্রিন্ট হওয়া থেকে শুরু হওয়া এড়াতে হবে । এটি করার জন্য, আমরা একটি হ্যাক করি যা এর সাথে যুক্ত হয়ে পরবর্তী লুপের শর্তটি ব্যর্থ করে দেয়। এই প্রতিস্থাপন সম্পন্ন করা হয় সঙ্গে , যা ডান-সহযোগীদের , যা সমান বা ।s10i=0i<nn1n**0**in**(0**i)n**(i==0)n if i==0 else 1


বাহ, ডাং পাইথন 3 এর তুলনায় প্রায় অর্ধেক আকার! হুম। আমি অবাক হয়েছি আমি যদি আপনার কয়েকটি কৌশল ব্যবহার করি তবে আমি কতগুলি বাইট সঞ্চয় করতে পারি ...
এল'েন্ডিয়া স্টারম্যান

4

পাইথন 3, 201 200 বাইট

n=int(input())
X=[[i]for i in range(1,n)]
for x in X:
 y=sum(x)+len(x)
 if y<n:X.append(x+[y])
X=[[0]]+X
print('\n'.join(''.join(map(lambda x:[str(x),chr(x+55),chr(x+61)][(x>9)+(x>35)],x))for x in X))

ব্যাখ্যা

এখানে মূল অন্তর্দৃষ্টিটি হ'ল একটি অনুক্রম দেওয়া হয়েছে x(যেমন, বলুন [1,2,5]), আপনি পরবর্তী ক্রমটি পরবর্তী ক্রমটি পেতে পারেন sum(x)+len(x)যা 11এই ক্ষেত্রে ( B) দেয়। nএটির চেয়ে কম কিনা তা পরীক্ষা করে দেখুন এবং তা যদি হয় তবে এই জাতীয় সমস্ত ক্রমগুলির তালিকাতে (সমস্ত একক সংখ্যা দ্বারা বদ্ধ) বর্ধিত ক্রম যুক্ত করুন।

[str(x),chr(x+55),chr(x+61)][(x>9)+(x>35)]

এইভাবে আমি অক্ষরগুলিতে ক্রম আইটেমগুলি ম্যাপ করি। এগুলি ''.joinএকসাথে সম্পাদনা করা হয় এবং তারপরে মুদ্রণ করা হয়, নিউলাইন দ্বারা পৃথক করা হয়।


আপনি আপনার শেষ লাইনটি পরিবর্তন করে একটি বাইট সংরক্ষণ করতে পারেন print('\n'.join(''.join(map(lambda x:[str(x),chr(x+55),chr(x+61)][(x>9)+(x>35)],x))for x in X))। এছাড়াও, বর্তমানে এটি 201 বাইট; 200. না
জ্যাক গেটস

@ জ্যাচগেটস: আমি সেটার কথা ভেবেছিলাম, কিন্তু বুঝতে পারি না আমি বন্ধনীগুলি ছেড়ে দিতে পারি। ধন্যবাদ!
এল'েন্ডিয়া স্টারম্যান

4

জিএস 2, 44 বাইট

26 c8 2f 08 4d 08 40 64 45 2e 30 42 67 40 24 d0
75 d3 20 e1 35 09 cb 20 23 78 22 09 34 30 e0 32
08 86 84 30 85 30 92 58 09 34 10

এটি একটি পৃথক ক্রমে সংখ্যাগুলি উত্পাদন করে, তবে সমস্যার বিবরণ নির্দিষ্ট করে না, তাই আমি এটির জন্য যাচ্ছি! এখানে 16 ইনপুট জন্য আউটপুট।

1
12
125
125B
2
23
237
237F
3
34
349
4
45
45B
5
56
56D
6
67
67F
7
78
8
89
9
9A
A
AB
B
BC
C
CD
D
DE
E
EF
F
0

এখানে বাইটগুলির জন্য স্মৃতিগত সমতুল্য:

read-num dec save-a
range1
{
    itemize
    {
        dup 
        sum
        over length
        add

        swap right-cons

        dup last push-a le

            push-d eval
        block2 when
    }
    save-d eval
    init inits tail
} map

+ ' fold 

{
    ascii-digits
    uppercase-alphabet catenate
    lowercase-alphabet catenate
    select 
    show-line
} map

0

ওহ মানুষ, এটি দুর্দান্ত। আমি জিএস 2 শিখার চেষ্টা করছি কিন্তু আমি এটির সাথে সত্যিকারের সময় কাটাচ্ছি: পি
স্প্যাগেটো

3

সিজেম, 46 42 40 বাইট

ri:R,{Q{+_A,s'[,_el^+f=oNo__,+:+_R<}g&}*

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

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

ri:R            e# Read an integer from STDIN and save it in R.
,               e# Push [0 ... R-1].
{               e# Fold; For each element but the first:
                e#   Push the element.
  Q             e#   Push an empty array (accumulator for base-R digits).
  {             e#   Do:
    +           e#     Concatenate the integer and the array on the stack.
    _           e#     Push a copy of the result.
    A,s'[,_el^+ e#     Push "0...0A...Za...z".
                e#     See: http://codegolf.stackexchange.com/a/54348
    f=          e#     Replace each base-R digit with the corresponding character.
    oNo         e#     Print the resulting string and a linefeed.
    _           e#     Push another copy of the accumulator.
    _,+         e#     Append its length to it.
    :+          e#     Add all digits (including the length).
    _R<         e#     Push a copy of the result and compare it with R.
  }g            e#   If the sum is less than R, it is a valid base-R digit,
                e#   the comparison pushes 1, and the loop is repeated.
  &             e#   Intersect the accumulator with an integer that is greater
                e#   or equal to R. This pushes an empty array.
}*              e#

0 এর শেষে এবং কয়েকটি খালি অ্যারে স্ট্যাকের উপর রেখে গেছে, তাই দোভাষী দলে মুদ্রণ করা হবে 0


1

gawk, 111 বাইট

{for(n=$0;n>c=++i;)for(j=0;n>$++j=c+=j;print"")for(c=k=0;k++<j;c+=$k)printf"%c",$k+($k>9?$k>35?61:55:48)}$0="0"

থেকে শুরু অঙ্ক জন্য 1করতে base-1আগামী সংখ্যার হিসাব, এবং এই বেস তুলনায় কম আমরা এখনও একটি বিশ্বস্ততার নম্বর আছে। মুদ্রণের সময় পরবর্তী অঙ্ক গণনা করা হচ্ছে। শেষ পর্যন্ত মুদ্রণ 0

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