কার্বন অ্যালেকনেসের সংখ্যা


16

একটি ধনাত্মক সংখ্যা দেওয়া , এর সংখ্যা খুঁজে বের alkanes সঙ্গে কার্বন পরমাণু উপেক্ষা স্টেরিও ; বা equivalently সঙ্গে লেবেল নেই গাছের সংখ্যা নোড, যে নোড ডিগ্রী আছে যেমন যে ।এনএনএন4

এটি OEIS ক্রম A000602

আরও দেখুন: প্যারাফিনস - রোসেটা কোড

উদাহরণ

জন্য , উত্তর , কারণ heptane নয়টি হয়েছে আইসোমাররের :এন=79

  • Heptane :এইচ3সি-সিএইচ2-সিএইচ2-সিএইচ2-সিএইচ2-সিএইচ2-সিএইচ3

Heptane

  • 2-মিথাইলেক্সেন :এইচ3সি-সিএইচ(সিএইচ3)-সিএইচ2-সিএইচ2-সিএইচ2-সিএইচ3

2-Methylhexane

  • 3-মিথাইলেক্সেন :এইচ3সি-সিএইচ2-সিএইচ(সিএইচ3)-সিএইচ2-সিএইচ2-সিএইচ3

3-Methylhexane

  • ২,২- :এইচ3সি-সি(সিএইচ3)2-সিএইচ2-সিএইচ2-সিএইচ3

2,2-Dimethylpentane

  • ২,৩- :এইচ3সি-সিএইচ(সিএইচ3)-সিএইচ(সিএইচ3)-সিএইচ2-সিএইচ3

2,3-Dimethylpentane

  • 2,4-Dimethylpentane :এইচ3সি-সিএইচ(সিএইচ3)-সিএইচ2-সিএইচ(সিএইচ3)-সিএইচ3

2,4-Dimethylpentane

  • 3,3- :এইচ3সি-সিএইচ2-সি(সিএইচ3)2-সিএইচ2-সিএইচ3

3,3-Dimethylpentane

  • 3-ইথিলিপেন্টেন :এইচ3সি-সিএইচ2-সি(সিএইচ2সিএইচ3)-সিএইচ2-সিএইচ3

3-Ethylpentane

  • ২,২,৩-ত্রিমেথাইলবুটেন :এইচ3সি-সি(সিএইচ3)2-সিএইচ(সিএইচ3)-সিএইচ3

2,2,3-Trimethylbutane

নোট করুন যে 3-মিথাইলহেক্সেন এবং 2,3-ডাইমথিলিপেন্টে চিরাল , তবে আমরা এখানে স্টেরিওসোমারদের উপেক্ষা করি।

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

আপনার কেস হ্যান্ডেল করার দরকার নেই ।এন=0

intput	output
=============
0	1
1	1
2	1
3	1
4	2
5	3
6	5
7	9
8	18
9	35
10	75
11	159
12	355
13	802
14	1858
15	4347
16	10359
17	24894
18	60523
19	148284
20	366319

3
কেউ যদি অ্যালকেমিস্টের সাথে সমাধান লিখতে পরিচালিত হয় তবে আমি মুগ্ধ হব !
23

@ পিটারটেলর ওয়েল এটি প্রতিবার ডিজিটের আউটপুট নিতে পারে
l4m2


@ l4m2: আমি এটি আগে সিক্যুয়েন্স চ্যালেঞ্জ এবং কয়েকটি সংখ্যক চ্যালেঞ্জের জন্য ব্যবহার করেছি, আপনি আনরিয়া আউটপুটও ব্যবহার করতে পারেন যা সম্ভবত খুব সহজ। এবং হ্যাঁ, এটি সম্ভবত টিসি ( বাইনগাম ব্যবহার করে ), যদিও আমি এটি আনুষ্ঠানিকভাবে প্রমাণ করতে পারি নি।
27

@ বিএমও দেখে মনে হচ্ছে এটি কেবলমাত্র মুখ্যমন্ত্রীকে অনুকরণ করতে সক্ষম হবে
l4m2

উত্তর:


11

সিজোম ( 100 98 91 89 83 বাইট)

1a{_[XX]*\_{_0a*}:E~\{E\_{ff*W%{0@+.+}*}:C~.+2f/}:D~.+C.+3f/1\+}q~:I*DE1$D.-X\+.+I=

স্টিডিন থেকে স্টপআউট আউটপুট লাগে। লক্ষ্য করুন এই ইনপুট হ্যান্ডেল লাইসেন্স শোষণ 0সংজ্ঞা ইনলাইনিং দুটি বাইট সংরক্ষণ করতে Cএবং Dঅনলাইন ডেমো

এনবি এটি খুব ধীর এবং মেমরি-অদক্ষ। অ্যারে ছাঁটাই করে একটি দ্রুত সংস্করণ পাওয়া যায় (3 বাইট আরও) অনলাইন ডেমো

ব্যবচ্ছেদ

একজন000598(এক্স)=1+ +এক্সজেড(এস3;একজন000598(এক্স))একজন000678(এক্স)=এক্সজেড(এস4;একজন000598(এক্স))একজন000599(এক্স)=জেড(এস2;একজন000598(এক্স)-1)একজন000602(এক্স)=একজন000678(এক্স)-একজন000599(এক্স)+ +একজন000598(এক্স2)
জেড(এসএন;(এক্স))এসএন(এক্স)

আমি এটিকে সামান্য গল্ফিয়ার পচনতে হেরফের করলাম, এবং তারপরে মধ্যবর্তী ধারাগুলি সন্ধান করলাম এবং আবিষ্কার করলাম যে তারা ওআইআইএস-এও রয়েছে:

একজন000642(এক্স)=জেড(এস2,একজন000598(এক্স))একজন000631(এক্স)=জেড(এস2,একজন000642(এক্স))একজন000602(এক্স)=একজন000642(এক্স)+ +এক্সএকজন000642(এক্স2)-এক্সএকজন000631(এক্স)

পূর্ববর্তী সংস্করণগুলি এই উত্তরC থেকে অবরুদ্ধ পুনরুদ্ধার (দুটি বহুভিত্তিক সংলগ্ন) । আমি একটি সংক্ষিপ্ত একটি খুঁজে পেয়েছি, কিন্তু আমি উত্তরটি আপডেট করতে পারি না কারণ এটি একটি শৃঙ্খলাবদ্ধ প্রশ্ন থেকে।

1a            e# Starting from [1]...
{             e# Loop I times (see below) to build A000598 by f -> 1 + Z(S_3; f)
  _[XX]*      e#   Copy and double-inflate to f(x^3)
  \_          e#   Flip and copy: stack is f(x^3) f(x) f(x)
  {_0a*}:E~   e#   Assign copy-and-inflate to E and execute
              e#   Stack: f(x^3) f(x) f(x) f(x^2)
  \           e#   Flip
  {           e#   Define and execute block D, which applies f -> Z(S_2;f)
              e#     Stack: ... f
    E\_       e#     Stack: ... f(x^2) f(x) f(x)
    {         e#     Define and execute block C, which convolves two sequences
      ff*     e#       Multiply copies of the second sequence by each term of the first
      W%      e#       Reverse
      {       e#       Fold
        0@+.+ e#         Prepend a 0 to the first and pointwise sum
      }*
    }:C~      e#     Stack: ... f(x^2) f(x)^2
    .+2f/     e#     Pointwise average
  }:D~        e#   Stack: f(x^3) f(x) f(x^2) Z(S_2;f(x))
  .+C         e#   Stack: f(x^3) f(x)*(f(x^2) + Z(S_2;f(x)))
  .+3f/       e#   Add and divide by 3 to finish computing Z(S_3; f)
  1\+         e#   Prepend a 1
}
q~:I          e# Read input to I
*             e# Loop that many times
              e# Stack: I+1 terms of A000598 followed by junk
D             e# Stack: I+1 terms of A000642 followed by junk
E1$D          e# Stack: A000642 A000642(x^2) A000631
.-X\+.+       e# Stack: A000602
I=            e# Extract term I

5

নোড.জেএস 11.6.0 ,  229 223 221  218 বাইট

রোসটা কোডে প্রস্তাবিত জাভা প্রয়োগ থেকে প্রাপ্ত ।

f=(N,L=1,u=[...r=[c=[],1,...Buffer(N)]],k=u[(g=(n,B,S,i,b=B,m,d=0)=>{for(;++b<5;)for(x=c[B]=(d+r[m=n])*(d++?c[B]/d:i),u[S+=n]+=L*2<S&&x,r[S]+=b<4&&x;--m;)g(m,b,S,c[B])})(L,0,1,1),L]-=~(x=r[L++/2])*x>>1)=>L>N?k:f(N,L,u)

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


5

অ্যালকেমিস্ট (1547 বাইট)

_->In_NN+2b+al+g
al+g+0NN->ak
al+g+NN->ah
ah+b->ah+m+d+z+a
ah+0b->C+Z+Q
Z+j+z->Z+j+d
Z+j+0z->M+s
M+g+b->M+g+r
M+g+h->M+g+d
M+g+0b+0h+q->J+U
J+o+h->J+o+m
J+o+a->J+o+d
J+o+0h+0a->2C+an+Q
an+j+h->an+j+d
an+j+0h->aC+s
aC+g->e+am+P
am+l+b->am+l+d
am+l+0b->al+s
ak+b->ak+m+d
ak+0b->C+aj+Q
aj+j+h->aj+j+b
aj+j+0h->I+n
I+f+e->I+f+a
I+f+b->I+f+m+d+z
I+f+0e+0b->C+ai+Q
ai+j+h->ai+j+b
ai+j+0h->aB+n
aB+f->H
H+z->H+d
H+a+e->H
H+0z+0e->G+i
G+i+0b->ag
G+i+b->az+b+n
az+f+0b->Out_a
az+f+b->G+b+n
G+f->G+t
ag+e->ag
ag+0e->af+t
af+i+e->af+i+a
af+i+0e->Out_a
Q->F+s
F+g+b->F+g+y
F+g+A->F+g
F+g+0b+0A->av+o
av+o+0m->w
av+o+m->m+ae+A
ae+m->ae+b
ae+0m->u+n
u+f+b->u+f+m
u+f+e->u+f+E
u+f+A->u+f+k+c
u+f+0b+0e+0A->ad
ad+c->ad+A
ad+0c->ac
ac+y->ac+d+c
ac+0y->ab
ab+c->ab+y
ab+0c->V+l
V+l+0k->x
V+l+k->aa+t
aa+i+0e->W
aa+i+e->Y
Y+E->Y+D+c
Y+0E->X
X+c->X+E
X+0c->aa+i
W+D->W+e
W+0D->V+P
x+E->x
x+d->x
x+b->x+k
x+0E+0d+0b->aw
aw+h->aw+d
aw+0h->aE+s
aE+g->p
p+b->p+2r
p+k->p+d
p+B->p
p+q->p
p+0b+0k+0B+0q->r+q+av+U
w+h->w+d
w+y->w+r
w+C->w+B+q
w+0h+0y+0C->aD+U
aD+o->j
U->au+s
au+g+b->au+g+d
au+g+0b->v
v+d->d+aA+t
aA+i+k->R
aA+i+0k->at
at+B->at+k+c
at+0B->L
L+c->L+B
L+r->L+b
L+0c+0r->as+n
as+f+b->as+f+r
as+f+0b->R
R+0e->K
R+e+q->ar+D+c
ar+e+q->ar+c
ar+0q->aq
aq+c->aq+q
aq+0c->R
K+D->K+e
K+h->K+b
K+0D+0h->ap+P
ap+l+b->ap+l+h
ap+l+0b->v
v+0d+k->v
v+0d+r->v
v+0d+0k+0r->o
s+0d->g
s+d->d+ao+t
ao+i->ao+P
ao+l->s
P->O+c
O+b->2c+O
O+0b->N
N+c->b+N
N+0c+e->O
N+0c+0e->l
n+b->n+c
n+0b->T
T+c->ay
T+0c->e+n
ay+c->b+T
ay+0c->f
t+d->t+c
t+0d->S
S+c->ax
S+0c->e+t
ax+c->d+S
ax+0c->i

অনলাইন ডেমো

দ্রষ্টব্য: এটি বেশ ধীর। যদি কোনও দোভাষীর সাথে পরীক্ষা করে যা একবারে একাধিকবার বিধি প্রয়োগ করতে সহায়তা করে (উদাহরণস্বরূপ আমার এক - যদিও আপনার সর্বশেষ সংস্করণ যা পার্সারে একটি বাগ সংশোধন করে তা নিশ্চিত করে নিন) তবে আপনি দুটি নিয়ম যুক্ত করে একটি উল্লেখযোগ্য গতি অর্জন করতে পারেন:

T+2c->b+T
S+2c->d+S

যা বিদ্যমান নিয়মের মাধ্যমে একটি রুটকে ইনলাইন করে

T+c->ay
ay+c->b+T
S+c->ax
ax+c->d+S

আংশিক বিচ্ছেদ

উচ্চ স্তরে, এটি আমার সিজেএম উত্তরের মতো একই পদ্ধতির ব্যবহার করে।

অ্যালকেমিস্টের গণনার মডেলটি মূলত মিনস্কি রেজিস্টার মেশিন । তবে, অ্যালকেমিস্ট খুব সুন্দরভাবে কোড এবং ডেটার সমতুল্যতা প্রকাশ করেছেন, এবং কোনও উত্পাদন নিয়মের বাম দিকে অনেকগুলি টোকেনকে কার্যকরভাবে রাষ্ট্রকে একটি পরমাণুর দ্বারা প্রতিনিধিত্ব করার জন্য বাধা দেয় না: আমরা পরমাণুর একটি টুপল ব্যবহার করতে পারি এবং এটি (পুনরাবৃত্তিমূলক) সাবরটাইনগুলিকে অনুমতি দেয়। এটি গল্ফের জন্য খুব দরকারী। কেবলমাত্র এটির অভাব হ'ল ম্যাক্রো এবং ডিবাগিবিলিটি।

0এক্সএকজন(2একজন+ +1)2এক্সPebnbebtded

a, b = b, 0

কমপক্ষে 17 বাইটে প্রসারিত:

S+a->S+b
S+0a->T

Sবর্তমান অবস্থা কোথায় এবং Tপরের রাজ্য। একটি অ ধ্বংসাত্মক "কপি করো" এমনকি আরও ব্যয়বহুল, কারণ এটি থেকে "পদক্ষেপ" হিসাবে কাজ করতে হবে aকরতে bএবং একটি অক্জিলিয়ারী tmpথেকে একটি "প্রবর্তন" দ্বারা অনুসরণ tmpফিরে a

কিংকর্তব্যবিমূঢ়তা

আমি একে অপরের সাথে বিভিন্ন ভেরিয়েবল যুক্ত করেছিলাম এবং প্রোগ্রামটি গল্ফ করার প্রক্রিয়াতে প্রায় 60 টি রাজ্যকে মুছে ফেলেছিলাম এবং তাদের অনেকেরই বিশেষভাবে অর্থবোধক নাম ছিল না তবে পুরোপুরি গল্ফ করার জন্য আমি একটি মিনিমিজার লিখেছিলাম যাতে নামগুলি এখন পুরোপুরি অনিবার্য। গুড লাক বিপরীত প্রকৌশল এটি! এখানে মিনিমিজার (সিজেমে) রয়েছে, যা কোড সম্পর্কে কয়েকটি ধারণা তৈরি করে তবে অন্যান্য অ্যালকেমিস্ট প্রোগ্রামগুলি হ্রাস করার জন্য এটি রূপান্তরিত হতে পারে:

e# Obfuscate / minimise Alchemist program

e# Tokenise
qN%[SNS]e_*S%

e# Get token frequencies for substitution purposes, special-casing the I/O ones
_["+" "0" "2" "->" "_" N "In_n" "n" "Out_tmp2" "tmp2"]-
$e`$W%1f=

e# Empirically we want a two-char input for n and a one-char one for tmp2
["In_n" "Out_tmp2" "n" "tmp2"]\+
["In_NN" "Out_a" "NN"] "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"1/:A+ A2m*:e_"NN"a-+
1$,<

er
_s,p

অপেক্ষা করুন ... যে দোভাষী কাজ করেন? আফিক্স ... আপনি একটি এলোমেলো নিয়ম চয়ন করুন, তারপরে এটি প্রয়োগ করা যেতে পারে তা বের করুন figure এটি কি সঠিকভাবে কাজ করে?
ASCII- কেবলমাত্র

হুম। আপনি কীভাবে ডিবাগিবিলিটি উন্নত করবেন
ASCII- কেবল

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

কিন্তু ... নিয়ম প্রয়োগের আদেশ প্রোগ্রামের অর্ডারকে প্রভাবিত করে
ASCII- কেবলমাত্র

@ কেবলমাত্র এসসিআইআই, হ্যাঁ এই কারণেই অনেকগুলি ভেরিয়েবল রয়েছে। এর মধ্যে প্রায় 16 টি ডেটা: বাকিগুলি রাষ্ট্রীয়। আমি স্বাধীন "মুভ" ক্রিয়াকলাপগুলিকে কার্যকরভাবে সমান্তরাল করে গল্ফে অ-নির্ধারণবাদ ব্যবহার করেছি।
পিটার টেলর

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