Dennis number 2.0


54

Pengguna PPCG dan mod terpilih, @Dennis baru saja menjadi pengguna kedua yang mendapatkan lebih dari 100rb rep!

masukkan deskripsi gambar di sini

Ini adalah ide yang benar-benar asli, yang tidak saya dapatkan dari orang lain , tetapi mari kita buat tantangan berdasarkan ID penggunanya, 12012sebagai penghargaan!

Melihat itu, Anda akan melihat bahwa ada dua "bagian" yang berbeda pada ID-nya.

12

dan

012

Kedua bagian ini menambahkan hingga 3. Itu properti yang cukup menarik.

Mari kita mendefinisikan "angka Dennis 2.0" sebagai bilangan bulat positif di mana setiap kemunculan maksimal jumlah digit yang meningkat secara ketat ke angka yang sama. Sebagai contoh,

123

adalah angka Dennis 2.0 karena hanya ada satu sublist maksimal dari digit yang meningkat secara ketat, dan jumlahnya menjadi 6. Selain itu, 2.846.145 juga merupakan angka Dennis 2.0 karena tiga sublists maksimal peningkatan digit, yaitu

28
46
145

Semua jumlah ke 10. Selain itu, angka yang hanya mengulangi angka yang sama haruslah angka Dennis 2.0 karena, misalnya, 777dapat dipecah menjadi

7
7
7

yang jelas semuanya berjumlah tujuh.

Sejumlah seperti 42ini tidak sejumlah Dennis 2.0, karena dipecah menjadi

4
2

yang jelas tidak menjumlahkan ke nomor yang sama.

Tantangan

Anda harus menulis program atau fungsi untuk menentukan apakah angka yang diberikan adalah angka Dennis 2.0 atau tidak. Anda dapat mengambil input dan output dalam format input yang masuk akal, misalnya sebagai string, sebagai angka, dari file, argumen funtion / return, dari STDIN / STDOUT, dll. Dan kemudian mengembalikan nilai kebenaran jika angka ini adalah Dennis 2.0 angka, dan nilai palsu jika tidak. Untuk referensi, ini adalah setiap nomor Dennis 2.0 hingga 1.000:

1
2
3
4
5
6
7
8
9
11
12
13
14
15
16
17
18
19
22
23
24
25
26
27
28
29
33
34
35
36
37
38
39
44
45
46
47
48
49
55
56
57
58
59
66
67
68
69
77
78
79
88
89
99
101
111
123
124
125
126
127
128
129
134
135
136
137
138
139
145
146
147
148
149
156
157
158
159
167
168
169
178
179
189
202
222
234
235
236
237
238
239
245
246
247
248
249
256
257
258
259
267
268
269
278
279
289
303
312
333
345
346
347
348
349
356
357
358
359
367
368
369
378
379
389
404
413
444
456
457
458
459
467
468
469
478
479
489
505
514
523
555
567
568
569
578
579
589
606
615
624
666
678
679
689
707
716
725
734
777
789
808
817
826
835
888
909
918
927
936
945
999

Celah standar berlaku, dan jawaban terpendek yang diukur dalam byte menang!


1
Hanya untuk referensi, Martin Ender adalah yang pertama mendapatkan 100 ribu rep.
Erik the Outgolfer

1
Apakah 12366 nomor 2,0 yang valid? (123 | 6 | 6 vs. 1236 | 6)
Sp3000

2
@ sp3000 Itu bukan nomor Dennis. Itu akan menjadi1236|6
DJMcMayhem

Bisakah saya mengambil setiap digit karena itu adalah representasi unary dengan di ,antara mereka? Ini mungkin peregangan banyak.
Riley

13
Aku takut Dennis akan menghancurkan kita semua dalam tantangan ini nontheless
downrep_nation

Jawaban:


15

Jelly, 13 12 byte

Terima kasih 1 byte ke @Dennis.

DIṠ’0;œṗDS€E

Cobalah online!

Penjelasan

DIṠ’0;œṗDS€E    Main link. Argument: N
D               Convert N to its digits.
 I              Find the differences between the elements.
  Ṡ             Find the sign of each difference. This yields 1 for locations where the
                list is strictly increasing and 0 or -1 elsewhere.
   ’            Decrement. This yields 0 for locations where the list is strictly
                increasing and -1 or -2 elsewhere.
    0;          Prepend a 0.
        D       Get another list of digits.
      œṗ        Split the list of digits at truthy positions, i.e. the -1s and -2s.
         S€     Sum each sublist.
           E    Check if all values are equal.

16

JavaScript (ES6), 72 70 byte

Mengambil string sebagai input. Mengembalikan nilai salah atau benar (yang bisa berupa angka).

Itu menggunakan ekspresi reguler untuk mengubah string input seperti "2846145"menjadi:

"(a=2+8)&&(a==4+6)&&(a==1+4+5)"

Kemudian panggil eval()ungkapan ini.

let f =

n=>eval(n.replace(/./g,(v,i)=>(v>n[i-1]?'+':i?')&&(a==':'(a=')+v)+')')

console.log(f("101"));
console.log(f("102"));
console.log(f("777"));
console.log(f("2846145"));


Bagus, itu ide yang sangat cerdas. :-)
ETHproduksi

Suka ide itu juga! Tapi ini tidak berfungsi: console.log (f ("2011")); // false console.log (f ("189")); // 18
user470370

3
@ user470370 - Saya pikir itu benar. Definisi tersebut menyatakan " urutan angka yang meningkat secara ketat" , jadi 2011terbagi menjadi 2 / 01 / 1dan bukan angka D2.0. Adapun 189, itu adalah nomor D2.0 dan 18merupakan nilai yang sebenarnya.
Arnauld

Up 😳 Tentu saja, Anda benar. Tidak mengerti itu sebelumnya. Saya pikir, saya harus mengerjakan ulang solusi saya sendiri: D
user470370

15

Python, 50 byte

r='0'
for d in input():r=d+'=+'[r<d]*2+r
1/eval(r)

Diharapkan input()untuk mengevaluasi ke string, sehingga input membutuhkan tanda kutip sekitarnya di Python 2. Output adalah melalui kode keluar , di mana 0 menunjukkan keberhasilan (kebenaran) dan 1 menunjukkan kegagalan (kepalsuan).

Uji di Ideone .

Bagaimana itu bekerja

Kami menginisialisasi r ke string 0 dan mengulangi semua digit d pada input.

  • Jika d lebih besar dari digit pertama r (awalnya 0 , maka sama dengan nilai d sebelumnya ), r<dmengevaluasi ke True dan '=+'[r<d]*2menghasilkan ++.

  • Jika d lebih kecil dari digit pertama r , '=+'[r<d]*2hasilkan ==.

  • Jika d sama dengan digit pertama r , r akan lebih panjang dari string singleton d , jadi '=+'[r<d]*2hasilkan sekali lagi ==.

Dalam semua kasus, angka d dan dua karakter yang dihasilkan akan ditambahkan ke r .

Setelah semua digit input diproses, eval(r)evaluasi ekspresi yang dihasilkan.

  • Jika input terdiri dari satu urutan yang benar-benar meningkat dari digit (positif), ekspresi mengevaluasi ke jumlah mereka.

    Misalnya, bilangan bulat 12345 menghasilkan ekspresi 5++4++3++2++1++0, yang menghasilkan 15 ketika dievaluasi. Perhatikan bahwa setiap + detik adalah plus unary , sehingga tidak mempengaruhi hasilnya. Membagi 1 dengan 15 valid (hasilnya tidak penting); program keluar secara normal.

  • Jika input terdiri dari dua urutan digit yang meningkat secara ketat, ekspresi terdiri dari perbandingan sederhana.

    Misalnya, bilangan bulat 12012 menghasilkan ekspresi 2++1++0==2++1++0, yang menghasilkan Benar ketika dievaluasi karena kedua istilah memiliki jumlah 3 . Membagi 1 dengan Benar ( 1 ) valid (hasilnya tidak penting); program keluar secara normal.

    Di sisi lain, bilangan bulat 12366 menghasilkan ekspresi 6==6++3++2++1++0, yang menghasilkan False ketika dievaluasi karena istilah memiliki jumlah 6 dan 12 . Membagi 1 dengan Salah ( 0 ) menimbulkan ZeroDivisionError ; program keluar dengan kesalahan.

  • Jika input terdiri dari tiga atau lebih sekuens yang meningkat secara ketat, ekspresi terdiri dari perbandingan berantai , yang mengembalikan True jika dan hanya jika semua perbandingan yang terlibat mengembalikan True .

    Misalnya, bilangan bulat 94536 menghasilkan ekspresi 6++3==5++4==9++0, yang menghasilkan Benar ketika dievaluasi karena semua istilah memiliki jumlah 9 . Seperti sebelumnya, program keluar secara normal.

    Di sisi lain, bilangan bulat 17263 menghasilkan ekspresi 3==6++2==7++1++0, yang menghasilkan False ketika dievaluasi karena istilah memiliki jumlah 3 , 8 , dan 8 . Seperti sebelumnya, program keluar dengan kesalahan.


11
Sudah waktunya saya mengirimkan kiriman untuk tantangan ini ...
Dennis

7

Brachylog , 13 byte

~c@e:{<+}a!#=

Cobalah online!

Penjelasan

~c               Find a list of integers which when concatenated result in the Input
  @e             Split the integers into lists of digits
    :{<+}a       Each list of digit is stricly increasing, and compute its sum
          !      Discard all other choice points (prevents backtracking for smaller sublists)
           #=    All sums must be equal

~c akan menyatukan dengan sublists terbesar terlebih dahulu.


6

Pyke, 18 byte

mb$1m>0R+fMbms}lt!

Coba di sini!

mb                 -         map(int, input)
  $                -        delta(^)
   1m>             -       map(^, 1>i)
      0R+          -      [0]+^
         f         -     input.split_at(^) 
          Mb       -    deep_map(int, ^)
            ms     -   map(sum, ^)
              }    -  uniquify(^)
               lt! - len(^) == 1

6

PowerShell v2 +, 100 64 61 byte

-join([char[]]$args[0]|%{("+$_","-eq$_")[$_-le$i];$i=$_})|iex

Satu-liner literal, karena ini semua satu pipa Mengambil input sebagai string $args[0]. Loop melalui itu sebagai char-array, setiap iterasi menempatkan elemen saat ini dengan +atau -eqdi depannya ke pipa berdasarkan pada apakah nilai saat ini adalah -less-than-or- equal dengan nilai sebelumnya $i. String-string itu -joindisatukan dan disalurkan ke iex(kependekan dari Invoke-Expressiondan mirip dengan eval. Misalnya, untuk input 2846145ini akan dievaluasi sebagai +2+8-eq4+6-eq1+4+5, yang mana True.

Bahwa Boolean ditinggalkan di jalur pipa, dan True/ Falsesecara implisit ditulis pada saat penyelesaian program.

NB - untuk input satu digit, digit yang dihasilkan ditinggalkan di jalur pipa, yang merupakan nilai sebenarnya di PowerShell.

Contohnya

PS C:\Tools\Scripts\golfing> 2846145,681,777,12366,2|%{"$_ -> "+(.\dennis-number-20.ps1 "$_")}
2846145 -> True
681 -> False
777 -> True
12366 -> False
2 -> 2

6

GNU sed 217 atau 115

Keduanya termasuk +1 untuk -r

217:

s/./&,/g;s/^/,/g;:;s,0,,;s,2,11,;s,3,21,;s,4,31,;s,5,41,;s,6,51,
s,7,61,;s,8,71,;s,9,81,;t;s/(,1*)(1*)\1,/\1\2X\1,/;t;s/,//g
s,1X1(1*),X\1a,;t;/^1.*X/c0
/Xa*$/s,a*$,,;y,a,1,;/1X1/b;/1X|X1/c0
c1

Mengambil input dalam desimal normal

Cobalah online!


115:

s/^|$/,/g;:;s/(,1*)(1*)\1,/\1\2X\1,/;t;s/,//g
s,1X1(1*),X\1a,;t;/^1.*X/c0
/Xa*$/s,a*$,,;y,a,1,;/1X1/b;/1X|X1/c0
c1

Mengambil input sebagai daftar digit angka yang dipisahkan koma, unary. misalnya 123akan1,11,111

Cobalah online!


5

Perl, 38 + 3 ( -p) = 41 byte

-9 byte berkat @Ton Hospel !

s%.%2x$&.(~$&le~$')%eg;$_=/^(2+1)\1*$/

Karena ada $', kode harus ada dalam file untuk dijalankan. Jadi -pterhitung 3 byte. Output 1 jika angka tersebut adalah angka Dennis 2.0, atau string kosong jika tidak:

$ cat dennis_numbers.pl
s%.%2x$&.(~$&le~$')%eg;$_=/^(2+1)\1*$/
$ perl -p dennis_numbers.pl <<< "1
10
12315
12314"

1
Saya pikir ini mungkin pendekatan terbaik dalam perl, tetapi Anda bisa memasukkannya ke 42: s%.%2x$&.($&.O ge$')%eg;$_=/^(2+1)\1*$/dengan -popsi (+3 karena kodenya $')
Ton Hospel

Memang, menggunakan hasil perbandingan alih-alih acak Aitu jauh lebih baik! Terima kasih! Saya tidak mengerti .O... Tanpa itu, gagal pada beberapa kasus, tapi saya tidak bisa melihat mengapa.
Dada

$'adalah digit berikutnya dan semua yang sesudahnya. Jadi, misalnya 778membandingkan 7dengan 78yang ltterlihat seperti urutan naik. The Oistirahat itu dan membandingkan 7Ountuk 78 (apa pun di atas 9dalam karya ASCII)
Ton Hospel

Oh benar, itu bagus! Saya mencari cara untuk menggunakan $' or $`bukan grup tangkapan saya, tetapi tidak dapat menemukannya, karena itu" dan semua yang setelahnya ". Terima kasih atas tipnya!
Dada

Mmm, ~$&le~$'harus lebih pendek 1
Ton Hospel

5

JavaScript (ES6), 66 65 63 byte

Disimpan 2 byte berkat @ edc65

x=>[...x,p=t=z=0].every(c=>p>=(t+=+p,p=c)?(z?z==t:z=t)+(t=0):1)

Mengambil input sebagai string. Versi lama (hanya berfungsi di Firefox 30+):

x=>[for(c of(p=t=0,x))if(p>=(t+=+p,p=c))t+(t=0)].every(q=>q==+p+t)

Petunjuk: [...x,0]->[...x,p=t=z=0]
edc65

@ edc65 Terima kasih, saya tidak memikirkan itu!
ETHproduksi

3

Mathematica, 38 byte

Equal@@Tr/@IntegerDigits@#~Split~Less&

Fungsi anonim. Mengambil angka sebagai input, dan mengembalikan Trueatau Falsesebagai output.


3

Brachylog 2, 10 byte, tantangan tanggal akhir bahasa

ẹ~c<₁ᵐ!+ᵐ=

Cobalah online!

Ini pada dasarnya adalah algoritma yang sama dengan jawaban @ Fatalize (yang saya tidak melihat sampai setelah saya menulis ini), tetapi agak diatur ulang untuk membuatnya golfier di bawah sintaks Brachylog 2.

Ini adalah program lengkap, kembali false.jika bukan nomor Dennis 2.0, atau truejika itu nomor .

Penjelasan

ẹ~c<₁ᵐ!+ᵐ=
ẹ           Interpret the input number as a list of digits
      !     Find the first (in default order)
 ~c           partition of the digits
   <₁ᵐ        such that each is in strictly increasing order
         =  Assert that the following are all equal:
       +ᵐ     the sums of each partition

Seperti biasa untuk program penuh Brachylog, jika semua asersi dapat dipenuhi secara bersamaan, kita mendapatkan hasil yang benar, jika tidak falsey. Urutan default untuk ~cadalah untuk mengurutkan partisi dengan elemen lebih sedikit, lebih lama terlebih dahulu, dan dalam Prolog (dengan demikian Brachylog), urutan default ditentukan oleh predikat pertama dalam program (menggunakan yang kedua sebagai tiebreak, dan seterusnya; di sini, ~cmendominasi, karena deterministik dan dengan demikian tidak memiliki apa pun untuk dipesan).


2

MATL, 24 23 20 18 16 byte

Tjdl<vYsG!UlXQ&=

Mengembalikan kebenaran matriks falsey

Cobalah secara Online!

Juga, selamat @Dennis!

Penjelasan

T       % Push a literal TRUE to the stack
        %   STACK: {1}
j       % Explicitly grab the input as a string
        %   STACK: {1, '2846145'}
d       % Compute the difference between successive ASCII codes
        %   STACK: {1, [6 -4 2 -5 3 1]}
l<      % Find where that difference is less than 1
        %   STACK: {1, [0 1 0 1 0 0]}
v       % Prepend the TRUE value we pushed previously
        %   STACK: {[1 0 1 0 1 0 0]}
Ys      % Compute the cumulative sum. This assigns a unique integer label to
        % each set of increasing numbers
        %   STACK: {[1 1 2 2 3 3 3]}
G!U     % Grab the input as numeric digits
        %   STACK: {[1 1 2 2 3 3 3], [2 8 4 6 1 4 5]}
lXQ     % Compute the sum of each group of increasing digits
        %   STACK: {[10 10 10]}
&=      % Computes element-wise equality (automatically broadcasts). A
        % truthy value in MATL is a matrix of all ones which is only the case
        % when all elements are equal:
        %   STACK: {[1 1 1
        %            1 1 1
        %            1 1 1]}
        % Implicitly display the result

Penggunaan yang bagus &=!
Luis Mendo

2

PHP, 108 105 92 byte

$p=-1;foreach(str_split("$argv[1].")as$d)$p>=$d?$r&&$s-$r?die(1):($r=$s)&$s=$p=$d:$s+=$p=$d;

mengambil input dari argumen, keluar dengan 0nomor Dennis-2.0, dengan yang 1lain.

kerusakan

$p=-1;                              // init $p(revious digit) to -1
foreach(str_split("$argv[1].")as$d) // loop $d(igit) through input characters
                                    // (plus a dot, to catch the final sum)
    $p>=$d                              // if not ascending:
        ?$r                             // do we have a sum remembered 
        &&$s-$r                         // and does it differ from the current sum?
                ?die(1)                     // then exit with failure
                :($r=$s)&$s=$p=$d           // remember sum, set sum to digit, remember digit
        :$s+=$p=$d                      // ascending: increase sum, remember digit
    ;
// 

2

05AB1E , 18 byte

SD¥X‹X¸«DgL*ꥣOÙg

Penjelasan

N = 12012 digunakan sebagai contoh.

                    # implicit input N = 12012
S                   # split input number to list of digits  
                    # STACK: [1,2,0,1,2]
 D                  # duplicate
                    # STACK: [1,2,0,1,2], [1,2,0,1,2]
  ¥                 # reduce by subtraction
                    # STACK: [1,2,0,1,2], [1,-2,1,1]
   X‹               # is less than 1
                    # STACK: [1,2,0,1,2], [0,1,0,0]
     X¸«            # append 1
                    # STACK: [1,2,0,1,2], [0,1,0,0,1]
        DgL*        # multiply by index (1-indexed)
                    # STACK: [1,2,0,1,2], [0,2,0,0,5]
            ê       # sorted unique
                    # STACK: [1,2,0,1,2], [0,2,5]
             ¥      # reduce by subtraction
                    # STACK: [1,2,0,1,2], [2,3]
              £     # split into chunks
                    # STACK: [[1,2],[0,1,2]]
               O    # sum each
                    # STACK: [3,3]
                Ù   # unique
                    # STACK: [3]
                 g  # length, 1 is true in 05AB1E
                    # STACK: 1

Cobalah online!


2

Ruby 2.3, 56 byte

p !gets.chars.chunk_while(&:<).map{|a|eval a*?+}.uniq[1]

Hampir pasti bukan cara golf untuk melakukan ini, tetapi itu memamerkan beberapa fitur bahasa yang bagus.

(Tidak toleran baris, jadi jalankan seperti ruby dennis2.rb <<< '12012')


1

PHP, 144 byte

<?php preg_match_all("/0?1?2?3?4?5?6?7?8?9?/",$argv[1],$n);foreach($n[0]as$i)if(strlen($i)&&($a=array_sum(str_split($i)))!=$s=$s??$a)die;echo 1;

Saya yakin ada cara yang jauh lebih pintar (dan lebih pendek) untuk melakukan ini tetapi itu akan dilakukan untuk saat ini.


1

Python 2, 69 byte

Mengambil input sebagai string.

lambda I:len(set(eval(reduce(lambda x,y:x+',+'[y>x[-1]]+y,I+' '))))<2

Penjelasan:

ex 1201212012

Mengonversi ke daftar jumlah:

1+2,0+1+2,1+2,0+1+2,

Nilai dan konversi untuk ditetapkan.

set([3])

Jika panjang himpunan adalah 1, semua jumlah adalah sama.


1

JavaScript (ES6), 58

s=>![...s,z=x=p=0].some(c=>[c>p?0:z-=(x=x||z),z-=p=c][0])

Menerapkan tip saya yang jarang bermanfaat https://codegolf.stackexchange.com/a/49967/21348

Itu memindai string char dengan char mengidentifikasi menjalankan menaik chars, pada akhir setiap rum memeriksa apakah jumlahnya selalu sama

  • c: char saat ini
  • p: char sebelumnya
  • z: jumlah lari, pada akhir lari akan dibandingkan dengan ...
  • x: jumlah untuk dibandingkan, pada awalnya dijalankan hanya sama dengan z

Uji

f=
s=>![...s,z=x=p=0].some(c=>[c>p?0:z-=(x=x||z),z-=p=c][0])

function run()
{
  var i=I.value
  O.textContent = i + ' -> ' + f(i)
}

run()

test=`1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 22 23 24 25 26 27 28 29 33 34 35 36 37 38 39 44 45 46 47 48 49 55 56 57 58 59 66 67 68 69 77 78 79 88 89 99 101 111 123 124 125 126 127 128 129 134 135 136 137 138 139 145 146 147 148 149 156 157 158 159 167 168 169 178 179 189 202 222 234 235 236 237 238 239 245 246 247 248 249 256 257 258 259 267 268 269 278 279 289 303 312 333 345 346 347 348 349 356 357 358 359 367 368 369 378 379 389 404 413 444 456 457 458 459 467 468 469 478 479 489 505 514 523 555 567 568 569 578 579 589 606 615 624 666 678 679 689 707 716 725 734 777 789 808 817 826 835 888 909 918 927 936 945 999`.split` `

numerr=0
for(i=1; i<1000; i++)
{
  v = i + '';
  r = f(v);
  ok = r == (test.indexOf(v) >= 0)
  if (!ok) console.log('Error',++numerr, v)
}  
if(!numerr) console.log('All test 1..999 ok')
<input id=I value=612324 type=number oninput='run()'>
<pre id=O>



0

Rubi, 117 105 85 byte

# original (117):
j,k=0,?0;"#{i}".chars.group_by{|n|n>k||j=j+1;k=n;j}.values.map{|a|a.map(&:to_i).reduce(&:+)}.reduce{|m,n|n==m ?m:nil}

# inspired by PHP regexp approach (105):
"#{i}".scan(/0?1?2?3?4?5?6?7?8?9?/).map{|a|a.chars.map(&:to_i).reduce(&:+)}.reduce{|m,n|!n||n==m ?m:nil}

# some number comparison simplification (85):
!"#{i}".scan(/0?1?2?3?4?5?6?7?8?9?/).map{|a|a.chars.map(&:to_i).reduce(&:+)}.uniq[1]

Ini akan mengembalikan bilangan bulat dari nomor dennis ini atau niljika bukan angka dennis. Semua bilangan bulat akan dianggap benar di ruby ​​juga nildianggap salah. iadalah bilangan bulat yang sedang diperiksa.

Versi ketiga sebenarnya mengembalikan truedan false.

PS diuji untuk mengembalikan 172 bilangan bulat dari 1 hingga 1000 seperti pada jawaban.


0

APL, 23 byte

{1=≢∪+/↑N⊂⍨1,2>/N←⍎¨⍕⍵}

Penjelasan:

  • N←⍎¨⍕⍵: dapatkan masing-masing digit di input, simpan di N
  • N⊂⍨1,2>/N: temukan sublists angka yang meningkat secara ketat di N
  • +/↑: jumlah masing-masing sublist
  • 1=≢∪: lihat apakah daftar yang dihasilkan hanya memiliki satu elemen unik

0

Tambahkan ++ , 109 byte

D,g,@@#,BF1_B
D,k,@@#,bR$d@$!Q@BFB
D,f,@,BDdVÑ_€?1€_0b]$+€?dbLRBcB*BZB]GbL1+b]+qG€gd€bLÑ_0b]$+BcB]£k€¦+Ñ=1$ª=

Cobalah online!

Bagaimana itu bekerja

fgkf

f(x)

x1[4,4,4]0110A010

[1,2,...length(A)]0AAAAA

ggA

g(x,y)

g(x,y)x:=[1,2,0,1,2]y=33AA10x=12012A=[3,6]3A6x

g([1,2,0,1,2],3)[1 2 0 1 2 2][1,2]g

g(x,y)yAx:=12012g

[[[1 2] [1 2 0 1 2]]]

[2,5]A10[0,3]gB

k(x,n)

k[[1,2],[3,4],[5,6]]

[[[1,2],0],[[1,2,0,1,2],3]]kk([1,2,0,1,2],3)

k(x,n)gn=0[n,x,n]n=0[[2,1,0,1,2],3]nxxB

[0,1,2][2,1,0]

k(x,n)(x,n)B1

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.