এরপর কী?


15

পূর্ণসংখ্যার একটি স্থান-বিভাজিত তালিকা দেওয়া আপনার ক্রম অনুসারে পরবর্তী পূর্ণসংখ্যাটি অনুসন্ধান করা task ক্রম প্রতিটি পূর্ণসংখ্যা একটি একক গাণিতিক অপারেশন (প্রয়োগের ফল +, -, *বা /পূর্ববর্তী পূর্ণসংখ্যা করার জন্য), এবং প্রতিটি ক্রম যেমন অপারেশনের একটি পরিবর্তনশীল সংখ্যা (কিন্তু কোন 10 বছরের কম বেশি) গঠিত। কোনও ক্রম পূর্ণসংখ্যার ক্রমের অর্ধ দৈর্ঘ্যের চেয়ে বেশি দীর্ঘ হবে না, সুতরাং আপনার প্রতিটি ক্রম নিশ্চিতকরণের জন্য কমপক্ষে দুবার উপস্থিত হবে।
ইনপুট স্টিডিনের মাধ্যমে (বা promptজাভাস্ক্রিপ্ট সমাধানের জন্য) হবে।

এখানে কিছু ব্যাখ্যামূলক উদাহরণ দেওয়া হল।

ইনপুট:

1 3 5 7 9 11

আউটপুট:

13

মোটামুটি সহজ, এই এক। সমস্ত মান পূর্ববর্তী মান +2

ইনপুট:

1 3 2 4 3 5 4 6 5 7 6

Ouput:

8

এই ক্রম দুটি পদক্ষেপ, +2তারপর -1

ইনপুট:

2 6 7 3 9 10 6 18 19 15 45 46

আউটপুট:

42

তিনটি পদক্ষেপ - *3, +1, -4

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

এখানে আরও কয়েকটি পরীক্ষার মামলা রয়েছে:

ইনপুট:

1024 512 256 128 64 32 16

আউটপুট:

8

ইনপুট:

1 3 9 8 24 72 71 213 639

আউটপুট:

638

ইনপুট:

1 2 3 4 5 2 3 4 5 6 3 4 5 6 7

আউটপুট:

4

ইনপুট:

1 2 4 1 3 9 5 8 32 27 28 56 53 55 165 161 164 656 651 652 1304

আউটপুট:

1301

আমার কাছে একটি অবারিত স্কাল সমাধান (৪২ টি লাইন) রয়েছে যা আমি কয়েক দিনের মধ্যে পোস্ট করব।

এটি কোড-গল্ফ - সংক্ষিপ্ত উত্তর জেতে।


বিভাগটি কি নির্ভুল হওয়ার নিশ্চয়তা রয়েছে?
পিটার টেলর

@ পিটার হ্যাঁ প্রতিটি পদক্ষেপ একটি পূর্ণসংখ্যার ফলাফল হবে।
গ্যারেথ

তবে পদক্ষেপটি যদি "/ 3" হয় তবে কি গ্যারান্টিযুক্ত যে বাকীটি সর্বদা 0 থাকবে?
পিটার টেলর

@ পিটার হ্যাঁ, বাকিটি সর্বদা 0 থাকবে
গ্যারেথ

উত্তর:


12

গল্ফস্ক্রিপ্ট, 203 138 অক্ষর

~]0{).2$.);[\(;]zip\/zip{.{~-}%.&({-}+\{;{.0={.~\%{.~%{;0}{~/{/}+}if}{~\/{*}+}if}{~!{;}*}if}%.&(\{;;0}/}{\;}if}%.{!}%1?)!{0}*}do\@)\,@%@=~

এটি ifএকটি স্ট্যান্ডার্ড গল্ফস্ক্রিপ্ট প্রোগ্রামের চেয়ে অনেক বেশি বেশি ব্যবহার করে , এবং এর অপারেশনটি বেশ ক্রিপ্টিক, তাই এখানে একটি মন্তব্য দেওয়া হয়েছে (তবে সাদা অংশ এবং মন্তব্য সংযোজন বাদে অন্যরকম নয়) সংস্করণ:

~]0
# Loop over guesses L for the length of the sequence
{
    # [x0 ... xN] L-1
    ).
    # [x0 ... xN] L L
    2$.);[\(;]zip
    # [x0 ... xN] L L [[x0 x1][x1 x2]...[x{N-1} xN]]
    \/zip
    # [x0 ... xN] L [[[x0 x1][xL x{L+1}]...][[x1 x2][x{L+1} x{L+2}]...]...]
    {
        # [x0 ... xN] L [[xi x{i+1}][x{i+L} x{i+L+1}]...]
        # Is there an operation which takes the first element of each pair to the second?
        # Copy the pairs, work out each difference, and remove duplicates
        .{~-}%.&
        # Turn the first difference into an operation
        ({-}+\
        # If there was more than one unique difference, look for a multiplication
        {
            ;
            # [x0 ... xN] L [[xi x{i+1}][x{i+L} x{i+L+1}]...]
            # Do something similar, but working out multiplicative factors
            # Note that if we have [0 0] it could be multiplication by anything, so we remove it.
            # However, they can't all be [0 0] or we'd have only one unique difference
            {
                # [0     0   ] =>
                # [0     _   ] => 0     # a "false" value, because it can't possibly be multiplication
                # [a     a.b'] => {b'*}
                # [a'.b  b   ] => {a'/}
                # [_     _   ] => 0     # ditto
                # This is the obvious place to look for further improvements
                .0={.~\%{.~%{;0}{~/{/}+}if}{~\/{*}+}if}{~!{;}*}if
            }%.&
            # If we have one unique multiplication, even if it's false, keep it.
            # Otherwise discard them and replace them with false.
            (\{;;0}/
        }
        # There was only one unique difference. Discard the pairs
        {\;}if
        # operation - one of 0, {d+}, {m*}, {M/}
    }%
    # [x0 ... xN] L [op0 ... op{L-1}]
    # Is any of the operations false, indicating that we couldn't find a suitable operation?
    .{!}%1?
    # [x0 ... xN] L [op0 ... op{L-1}] idxFalse
    # If idxFalse is -1 then all the ops are ok, and we put a false to exit the loop
    # Otherwise one op failed, so we leave the array of ops, which is non-false, to be popped by the do.
    )!{0}*
}do
# [x0 ... xN] L [op0 ... op{L-1}]
\@)\,@%@=~
# op{(len(Xs)-1)%L} (Xs[-1])

আমার আসল জমাটি 88 টি অক্ষরে নিম্নলিখিত ছিল:

~]:x;2.{;).(2base(;{[{--}{@*\.!+/}]=}%[x.(;2$]zip\,<{~++}%x,.@[*x\]zip<{~~}%)\x(;=!}do\;

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


1
একটি ব্যাখ্যা পোস্ট করার জন্য আপনাকে অনেক ধন্যবাদ! আমি বিচ্ছিন্ন গল্ফস্ক্রিপ্ট প্রোগ্রামগুলি খুঁজছি যাতে আমি সেগুলি আরও জানার চেষ্টা করতে পারি।
মাইগিমারু

6

হাস্কেল, 276 261 259 257 243 টি অক্ষর

এখানে আমার অদক্ষ সমাধান। এটি আনবাউন্ডেড (এবং সীমাবদ্ধ) পূর্ণসংখ্যার উপর কাজ করে। এই সমাধানটি সঠিকভাবে অ-নির্ভুল বিভাগের সাথে কাজ করার জন্য ঘটে (যেমন 5 / 2 = 2:)।

import Control.Monad
main=interact$show.n.q read.words
f=flip
q=map
_%0=0
x%y=div x y
s b=[1..]>>=q cycle.(f replicateM$[(+),(*),(%)]>>=f q[-b..b].f)
m l x s=[y!!l|y<-[scanl(f($))(x!!0)s],x==take l y]
n x=(s(maximum$q abs x)>>=m(length x)x)!!0

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

Ungolfed:

import Control.Monad

main :: IO ()
main = print . next . map read . words =<< getLine

opSequences :: Integral a => a -> [[a -> a]]
opSequences bound = [1 ..] >>= map cycle . (`replicateM` (ops >>= (`map` args) . flip))
  where
    ops = [(+), (*), \x y -> if y == 0 then 0 else div x y]
    args = [-bound .. bound]

match :: (MonadPlus m, Integral a) => [a] -> [a -> a] -> m a
match ns opSeq = guard (ns == take len ms) >> return (ms !! len)
  where
    n0 = ns !! 0
    len = length ns
    ms = scanl (flip ($)) n0 opSeq

next :: Integral a => [a] -> a
next ns = (opSequences bound >>= match ns) !! 0
  where
    bound = maximum $ map abs ns

অ-নির্ভুল বিভাগ পরিচালনা করার জন্য দুর্দান্ত ধারণা।
পিটার টেলর

এটি একটি দুর্ঘটনাজনক পার্শ্ব প্রতিক্রিয়া ছিল। সমাধান অনুসন্ধানের জন্য এই সমস্যাটি কীভাবে সমাধান করা যায় সে সম্পর্কে আমার প্রাথমিক ধারণা ছিল, যেমন আমার কাছে মনে হয়েছে উত্তরটি গণনার চেয়ে এটি একটি সহজ কাজ বলে মনে হয়েছিল।
থমাস এডিং

কি Control.Monad -> Monadসম্ভব? এবং কীভাবেinteract$show.n.q read.words
এফইউজেডএক্সএক্সএল

6

পাইথন, 333 366 ... 315 303 278 269 261 246 অক্ষর

n=map(float,raw_input().split())
y=len(n)-1
l=1
def O(f):
 p,q=n[f:y:l],n[f+1::l]
 for a,b in zip(p,q):
    for x in((b-a).__add__,(b/(a or 1)).__mul__):
     if map(x,p)==q:return x
while 1:
 if all(map(O,range(l))):print int(O(y%l)(n[y]));break
 l+=1

প্রথম জোড়া সংখ্যার সাথে ক্রিয়াকলাপ তৈরি করে এবং অন্যান্য জোড়ায় এটি পরীক্ষা করে। সমস্ত ক্রিয়াকলাপ সঞ্চয় করে, এবং যদি সেগুলি সমস্ত সফল হয় তবে তালিকার শেষ উপাদানটিতে যথাযথ অপারেশন প্রয়োগ করে।

সম্পাদিত: অশুভ পরীক্ষায় উত্তীর্ণ :-) এখন সমস্ত পজিশনে অপারেশন অনুসন্ধান করুন।


খুশী হলাম। আমার সমস্ত পরীক্ষায় উত্তীর্ণ হয়েছে, তবে পিটার টেলরের বিশেষত 0 0 1 2 3 6 7 14
খারাপটি নয়

0 0 0 0 1 0 0 0 0 1আউটপুট দেয় না 0
টমাস এডিং

@ ত্রিনিদিস যে ইনপুটটি অনুমিত হয় না। অপারেশনগুলির ক্রমটি অবশ্যই কমপক্ষে একবারে সম্পূর্ণ পুনরাবৃত্তি করতে হবে।
গ্যারেথ

1
ওহ, এখানে একটি মজাদার উন্নতি: lambda x:x+b-a-> (b-a).__add__। খুব খারাপ এটি একটি চরিত্র, আমি এগুলি করে পাইথন সম্পর্কে অনেক কিছু শিখছি।
ক্লুলেস

1
lসুস্পষ্টভাবে বিশ্বব্যাপী তৈরি করা অনেকটা সাশ্রয় করে: pastie.org/2416407
ক্লুলেস

4

পাইথন, 309 305 295 279 অক্ষর

সমস্ত আসল পরীক্ষার কেস, পাশাপাশি পিটার টেলরের জেনারেল হ্যান্ডেলগুলি 0 0 1 2 3 6 7 14:

l=map(int,raw_input().split())
i=v=0
while v<1:
 v=i=i+1
 for j in range(i):
    p=zip(l[j::i],l[j+1::i])
    d,r=set(q[1]-q[0]for q in p),set(q[1]*1./(q[0]or 1)for q in p if any(q))
    m,n=len(d)<2,len(r)<2
    v*=m+n
    if(len(l)-1)%i==j:s=l[-1]+d.pop()if m else int(l[-1]*r.pop())
print s

ডিবাগিং আউটপুট (নির্ভুলতা যাচাইকরণে খুব সহায়ক) সহ অবহেলিত:

nums = map(int,raw_input().split())
result = None

for i in range(1,len(nums)/2+1):
    print "-- %s --" % i
    valid = 1
    for j in range(i):
        pairs = zip(nums[j::i], nums[j+1::i])
        print pairs

        diffs = [pair[1] - pair[0] for pair in pairs]
        # this is the tough bit: (3, 6) -> 2, (0, 5) -> 5, (5, 0) -> 0, (0, 0) ignored
        ratios = [float(pair[1])/(pair[0] or 1) for pair in pairs if pair[0] != 0 or pair[1] != 0]

        if len(set(diffs))==1:
            print "  can be diff", diffs[0]
            if (len(nums) - 1) % i == j:
                result = nums[-1] + diffs.pop()
        elif len(set(ratios))==1:
            print "  can be ratio", ratios[0]
            if (len(nums) - 1) % i == j:
                result = int(nums[-1]*ratios.pop())
        else:
            print "** invalid period **"
            valid=0
    if valid and result is not None:
        break

print result

ব্যবহার:

echo 0 0 1 2 3 6 7 14 | python whatcomesnext.py

কমান্ড আর্গুমেন্টের পরিবর্তে কঠোরভাবে ইনপুটটি স্টিডিনের মাধ্যমে হওয়া উচিত বলে আমি উজ্জীবিত হয়েছি।
গ্যারেথ

এটি আসলে আমাকে চারটি অক্ষর দ্বারা প্রোগ্রামটি সংক্ষিপ্ত করতে দেয় :)
ক্লিলেস

কয়েকটি অক্ষর, i = v = 0 এবং যখন v == 0:
এন্টে

@ ধন্যবাদ ধন্যবাদ, আমি ভেবেছিলাম আপনি অজগরটিতে এটি করতে পারবেন না কারণ অ্যাসাইনমেন্টটি কোনও অভিব্যক্তি নয়, তবে এটি গল্ফের জন্য সহায়ক সহায়ক। দ্বিতীয় স্তরের ইন্ডেন্টেশন হিসাবে আক্ষরিক ট্যাবগুলিও সহায়তা করে।
ক্লিলেস

আমি পাইথনার নই, তবে আপনি মনে করছেন যে আপনি কিছু অভিব্যক্তিতে বুলিয়ানগুলি পূর্ণসংখ্যা হিসাবে ব্যবহার করছেন, এবং এখনও পরীক্ষার সময় বুলিয়ান হিসাবে পূর্ণসংখ্যা v ব্যবহার করতে পারবেন না। এটা কি সঠিক? যদি তা হয় তবে অবশ্যই v<1প্রহরী হিসাবে কাজ করে।
পিটার টেলর

2

রুবি 1.9 (437) (521) (447) (477)

"দুষ্টু" টি সহ সমস্ত পরীক্ষার ক্ষেত্রে কাজ করে। আমি আরও পরে গল্ফ করব।

সম্পাদনা: আমি বুঝতে পেরেছিলাম যে আরও একটি মামলা আছে যে আমি সঠিকভাবে পরিচালনা করছি না - যখন ধারাবাহিকতার জন্য "রহস্য" অপারেশনটি ব্যবহার করা দরকার। ক্রমটি 2 0 0 -2 -4 -6প্রাথমিকভাবে -12 এর পরিবর্তে 0 ফিরছিল। আমি এখন এটি স্থির করেছি।

সম্পাদনা: আরও কয়েকটি প্রান্তের কেস স্থির করে কোডটি 447 এ কেটে দেওয়া হয়েছে।

সম্পাদনা: উঘ। অন্যান্য "দুষ্ট" ক্রমগুলি যেমন পরিচালনা করতে কিছু কোড যুক্ত করতে হয়েছিল0 0 0 6 18 6 12

def v(c,q);t=*q[0];q.size.times{|i|f=c[z=i%k=c.size]
f=c[z]=(g=q[z+k])==0??_:((h=q[z+k+1])%g==0?"*(#{h/g})":"/(#{g/h})")if f==?_
t<<=f==?_?(a=q[i];b=q[i+1].nil?? 0:q[i+1];(a==0&&b==0)||(a!=0&&(b%a==0||a%b==0))?b:0):eval(t.last.to_s+f)}
*r,s=t
(p s;exit)if q==r
end
s=gets.split.map &:to_i
n=[[]]
((s.size-1)/2).times{|i|a,b=s[i,2]
j=["+(#{b-a})"]
j<<=?_ if a==0&&b==0
j<<="*#{b/a}"if a!=0&&b%a==0
j<<="/#{a/b}"if a*b!=0&&a%b==0
n=n.product(j).map(&:flatten)
n.map{|m|v(m*1,s)}}

1

scala

এই সমাধানটি আমি নিয়ে এসেছি:

object Z extends App{var i=readLine.split(" ").map(_.toInt)
var s=i.size
var(o,v,f)=(new Array[Int](s),new Array[Double](s),1)
def d(p:Int,j:Array[Int]):Unit={if(p<=s/2){def t(){var a=new Array[Int](s+1)
a(0)=i(0)
for(l<-0 to s-1){o(l%(p+1))match{case 0=>a(l+1)=a(l)+v(l%(p+1)).toInt
case _=>a(l+1)=(a(l).toDouble*v(l%(p+1))).toInt}}
if(a.init.deep==i.deep&&f>0){f^=f
println(a.last)}}
o(p)=0 
v(p)=j(1)-j(0)
t
d(p+1,j.tail)
o(p)=1
v(p)=j(1).toDouble/j(0).toDouble
t
d(p+1,j.tail)}}
d(0,i)
i=i.tail
d(0,i)}

Ungolfed:

object Sequence extends App
{
    var input=readLine.split(" ").map(_.toInt)
    var s=input.size
    var (ops,vals,flag)=(new Array[Int](s),new Array[Double](s),1)
    def doSeq(place:Int,ints:Array[Int]):Unit=
    {
        if(place<=s/2) 
        {
            def trysolution()
            {
                var a=new Array[Int](s+1)
                a(0)=input(0)
                for(loop<-0 to s-1)
                {
                    ops(loop%(place+1))match
                    {
                        case 0=>a(loop+1)=a(loop)+vals(loop%(place+1)).toInt
                        case _=>a(loop+1)=(a(loop).toDouble*vals(loop%(place+1))).toInt
                    }
                }
                if(a.init.deep==input.deep&&flag>0)
                {
                    flag^=flag
                    println(a.last)
                }
            }
            ops(place)=0
            vals(place)=ints(1)-ints(0)
            trysolution
            doSeq(place+1,ints.tail)
            ops(place)=1
            vals(place)=ints(1).toDouble/ints(0).toDouble
            trysolution
            doSeq(place+1,ints.tail)
        }
    }
    doSeq(0,input)
    input=input.tail
    doSeq(0,input)
}

আমি কীভাবে এটি প্রার্থনা করব? echo "0 0 1 2 3 6 7 14" | scala Sequenceপর্দা কালো রাখে।
ব্যবহারকারী অজানা

@ ব্যবহারকারী অজানা scala Sequenceএবং তারপরে ক্রমটি প্রবেশ করুন এবং এন্টার টিপুন।
গ্যারেথ

আহ, আপনি প্রশ্নগুলির মন্তব্যে লিখেছেন, আপনি এই নির্দিষ্টটি সমাধান করেন না - এটি সমাধানযোগ্য প্রশ্নের জন্য উপরের মতো প্রতিধ্বনিত - পাইপ দিয়ে কাজ করে।
ব্যবহারকারীর অজানা

1

স্কাল 936

type O=Option[(Char,Int)]
type Q=(O,O)
type L=List[Q]
val N=None
def t(a:Int,b:Int):Q=if(a>b)(Some('-',a-b),(if(b!=0&&b*(a/b)==a)Some('/',a/b)else N))else
(Some('+',b-a),(if(a!=0&&a*(b/a)==b)Some('*',b/a)else N))
def w(a:Q,b:Q)=if(a._1==b._1&&a._2==b._2)a else
if(a._1==b._1)(a._1,N)else
if(a._2==b._2)(N,a._2)else(N,N)
def n(l:L):Q=l match{case Nil=>(N,N)
case x::Nil=>x
case x::y::Nil=>w(x,y)
case x::y::xs=>n(w(x,y)::xs)} 
def z(l:L,w:Int)=for(d<-1 to w)yield
n(l.drop(d-1).sliding(1,w).flatten.toList)
def h(s:L):Boolean=s.isEmpty||(s(0)!=(N,N))&& h(s.tail)
def j(s:L,i:Int=1):Int=if(h(z(s,i).toList))i else j(s,i+1)
def k(b:Int,o:Char,p:Int)=o match{case'+'=>b+p
case'-'=>b-p
case'*'=>b*p
case _=>b/p}
val e=getLine 
val i=e.split(" ").map(_.toInt).toList
val s=i.sliding(2,1).toList.map(l=>t(l(0),l(1)))
val H=n(s.drop(s.size%j(s)).sliding(1,j(s)).flatten.toList)
val c=H._1.getOrElse(H._2.get)
println (k(i(i.size-1),c._1,c._2))

ungolfed:

type O = Option[(Char, Int)]

def stepalize (a: Int, b: Int): (O, O) = (a > b) match {
   case true => (Some('-', a-b), (if (b!=0 && b * (a/b) == a) Some ('/', a/b) else None)) 
   case false=> (Some('+', b-a), (if (a!=0 && a * (b/a) == b) Some ('*', b/a) else None)) }

def same (a: (O, O), b: (O, O)) = {
  if (a._1 == b._1 && a._2 == b._2) a else
  if (a._1 == b._1) (a._1, None) else 
  if (a._2 == b._2) (None, a._2) else 
  (None, None)}

def intersection (lc: List[(O, O)]): (O, O) = lc match {
  case Nil => (None, None)
  case x :: Nil => x
  case x :: y :: Nil => same (x, y)
  case x :: y :: xs  => intersection (same (x, y) :: xs)} 

def seriallen (lc: List[(O, O)], w: Int= 1) =
  for (d <- 1 to w) yield 
    intersection (lc.drop (d-1).sliding (1, w).flatten.toList)

def hit (s: List[(O, O)]) : Boolean = s match {
  case Nil => true 
  case x :: xs => (x != (None, None)) && hit (xs)}

def idxHit (s: List[(O, O)], idx: Int = 1) : Int =
  if (hit (seriallen (s, idx).toList)) idx else 
    idxHit (s, idx+1)

def calc (base: Int, op: Char, param: Int) = op match {
  case '+' => base + param
  case '-' => base - param
  case '*' => base * param
  case _   => base / param}

def getOp (e: String) = {
  val i = e.split (" ").map (_.toInt).toList
  val s = i.sliding (2, 1).toList.map (l => stepalize (l(0), l(1)))
  val w = idxHit (s)
  val hit = intersection (s.drop (s.size % w).sliding (1, w).flatten.toList)
  val ci = hit._1.getOrElse (hit._2.get)
  val base = i(i.size - 1)
  println ("i: " + i + " w: " + w + " ci:" + ci + " " + calc (base, ci._1, ci._2))
}

val a="1 3 5 7 9 11"
val b="1 3 2 4 3 5 4 6 5 7 6"
val c="2 6 7 3 9 10 6 18 19 15 45 46"
val d="1024 512 256 128 64 32 16"
val e="1 3 9 8 24 72 71 213 639"
val f="1 2 3 4 5 2 3 4 5 6 3 4 5 6 7"
val g="1 2 4 1 3 9 5 8 32 27 28 56 53 55 165 161 164 656 651 652 1304"
val h="0 0 1 2 3 6 7 14"
val i="0 0 0 0 1 0 0 0 0 1 0"

List (a, b, c, d, e, f, g, h, i).map (getOp)

পিটার টেলরের পক্ষে মারাত্মকভাবে ব্যর্থ h, তবে আমি যুক্তিযুক্ত সময়ে প্রোগ্রামটি নিরাময়ের সম্ভাবনাটি দেখছি না।


এটা সঙ্কুচিত আপনি চিকিত্সা সাহায্য করবে -একটি বিশেষ কেস হিসাবে +এবং /একটি বিশেষ কেস হিসাবে *? পিটার টেলরের (এবং অনুরূপ) ইনপুটটি পাস করার আমার উপায়টি ছিল ক্রমের প্রথম সংখ্যাটি কেটে আবার চেষ্টা করা। আপনার প্রোগ্রামটি কীভাবে কাজ করে তা এখনও আপনার সাথে সহায়তা করে কিনা তা জানার জন্য আমার হাতে সময় নেই।
গ্যারেথ

আমি অনুমান করি এটি সাহায্য করবে তবে কেবলমাত্র বিশেষ ক্ষেত্রে for একটি সিরিজ যা নাল-গুণটি পরে থাকে, এর মতো -1, 0, 0, 1, 2, 3, 6, 7, 14আলাদা নিরাময়ের প্রয়োজন হবে।
ব্যবহারকারী অজানা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.