Số gốc (II)


18

Thử thách này về cơ bản là giống hệt với thử thách này chỉ với một điểm khác biệt: giờ đây nó được phép xáo trộn các chữ cái ở bất cứ đâu trong chuỗi.

Kịch bản

John có một con số quan trọng và anh ấy không muốn người khác nhìn thấy nó.

Anh quyết định mã hóa số, sử dụng các bước sau:

Số của anh ta luôn luôn là một chuỗi không giảm (ví dụ. "1123")

Anh chuyển đổi từng chữ số thành từ tiếng Anh. (tức là. "123" -> "ONETWOTHREE")

Và sau đó, sắp xếp lại các chữ cái một cách ngẫu nhiên. (tức là. "ONETWOTHREE" -> "EEWOOHRNTET")

John cảm thấy rằng số của mình là an toàn khi làm như vậy. Trên thực tế, mã hóa như vậy có thể dễ dàng được giải mã :(


Bài tập

Với các chuỗi được mã hóa, nhiệm vụ của bạn là giải mã nó và trả về số ban đầu.


Quy tắc

  • Đây là mã golf, vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng
  • Bạn có thể giả sử rằng chuỗi đầu vào luôn hợp lệ
  • Chuỗi đầu vào chỉ chứa các chữ cái viết hoa
  • Các số ban đầu luôn được sắp xếp theo thứ tự tăng dần
  • Bạn có thể trả về số ở định dạng chuỗi hoặc số nguyên
  • Các chữ cái sẽ chỉ được xáo trộn giữa một từ, không phải giữa toàn bộ chuỗi. Các chữ cái có thể được xáo trộn bất cứ nơi nào trong chuỗi.
  • Những con số sẽ chỉ có 1-9 bao gồm ( ONEđể NINE)

Chuỗi có thể xắp xếp lại có thể

Dưới đây là danh sách các chuỗi ngay sau khi chúng được chuyển đổi thành chuỗi từ các số:

 1 -> ONE 
 2 -> TWO
 3 -> THREE
 4 -> FOUR
 5 -> FIVE
 6 -> SIX
 7 -> SEVEN
 8 -> EIGHT
 9 -> NINE

Ví dụ

"NEO" -> 1

"NWEOOT" -> 12

"TOEERWNEHOT" -> 123

"IHNEVGENNEISTE" -> 789

"WEETVTRFSVUHNEEFRHIXEOINSNIEGTOONIEE" -> 123456789

"EWHEWROETOTTON" -> 1223

"ONEWESTV" -> 27 (cảm ơn, sản xuất ETH!)


7
Trường hợp thử nghiệm được đề xuất: một cái gì đó như "ONEWESTV" -> 27(bao gồm một số không thực sự xuất hiện)
Sản phẩm ETH

@ETHproductions Ý tưởng tuyệt vời! Thêm.
Cristian Lupascu

Tại sao không có "SỐ KHÔNG"?
RosLuP

@RosLuP John ghét các số 0 hàng đầu ...
Cristian Lupascu

Câu trả lời:


9

Python 2 , 123 byte

c=map(input().count,"OWHUFXSGIQ")
i=4
for j in"71735539994":c[i*2]-=c[int(j)];i=-~i%5
s=""
for n in c:i+=1;s+=`i`*n
print s

Một chương trình đầy đủ lấy đầu vào được trích dẫn và in số của John.

Hãy thử trực tuyến! hoặc xem một bộ thử nghiệm

Làm sao?

Chúng ta hãy làm việc với ví dụ "NEONSEXTOWNII" (để mang lại 1269, và có phần Giải trí Suite Larry -esque!)

Đầu tiên c=map(input().count,"OWHUFXSGIQ")lấy đầu vào và đếm số lượng của mỗi OWHUFXSGIQ- đây là các chữ cái xuất hiện trong mỗi số theo thứ tự tăng dần, với 2,4,6 và 8 có chữ cái "riêng" của chúng WUXG, cộng với một chữ cái phụ, Qđể thêm số 0 đến cuối và làm cho độ dài của danh sách kết quả chẵn. Ví dụ:

[2,1,0,0,0,1,1,0,2,0] <- c
 O W H U F X S G I Q  <- is the counts of these letters
 1 2 3 4 5 6 7 8 9 0  <- which "relate to" these digits in John's number
   2   4   6   8   0  <- these will be correct as the letters are unique to their words

Các mục cho 1, 3, 5, 7 và 9 cần điều chỉnh để điều chỉnh mức độ phong phú của các chữ cái khác. Điều này được thực hiện bởi vòng lặp tiếp theo:

i=4
for j in"71735539994":c[i*2]-=c[int(j)];i=-~i%5

Lưu ý rằng các mục cần điều chỉnh là các mục thay thế (1,3,5,7,9,1,3,5, ...), vì vậy chúng tôi có thể thêm hai vào một biến chỉ số ở mỗi bước và modulo thêm 10 để ở lại phạm vi nếu chúng ta cần đi qua nhiều lần (mà chúng ta làm). Để lưu một số byte, chúng ta có thể tăng thêm một và modulo lên 5 và sử dụng gấp đôi chỉ mục.
Vì các điều chỉnh cho 9 yêu cầu nhiều công việc nhất mà chúng tôi bắt đầu ở đó - nó nằm ở chỉ số 8 nên chúng tôi bắt đầu tại i=4. Chuỗi "71735539994"sau đó đưa ra các chỉ mục, jcủa các giá trị cần loại bỏ ở mỗi giai đoạn (trong đó chúng tôi đã đảm bảo chỉ số thứ chín sẽ chứa 0 bằng cách sử dụng "Q"khi tạo c); c[i*2]-=c[int(j)]thực hiện mỗi lần điều chỉnh cá nhân và i=-~i%5di chuyển iđến các chỉ số tiếp theo (trong đó -~i-(-1-i)hoặc i+1ngoặc tiết kiệm (i+1)%5) giữi*2trong giới hạn của c.
Do đó, trước tiên chúng tôi trừ số tại chỉ mục j=7từ số đó tại chỉ mục i*2=8, trừ đi số "G" được tính từ số "I", điều chỉnh "NINE" đếm ngược theo số (chính xác) của "EIGHT" ( trong đó cũng có một "tôi"). Sau đó, chúng tôi chuyển sang i=0( -~4%5 = (4+1)%5 = 0), chỉ mục tham chiếu i*2 = 0cho "ONE" và trừ đi giá trị tìm thấy tại chỉ j=1mục mục nhập đếm "W" và do đó "TWO", điều chỉnh số lượng "O" xuống. Đến cuối vòng lặp, chúng ta có số đếm chính xác:

[1,1,0,0,0,1,0,0,1,0] <- c   (for 1223333448 it would be: [1,2,4,2,0,0,0,1,0,0])
 1 2 3 4 5 6 7 8 9 0

vì vậy tất cả những gì còn lại là in ra những gì chiện đại diện ( 1269). ibây giờ đã trở lại 0, vì vậy chúng tôi tăng nó ở đầu vòng lặp và sử dụng nó làm chữ số của chúng tôi:

s=""
for n in c:i+=1;s+=`i`*n
print s

Các dấu tích phía sau `i`, là tốc ký Python2 để repr(i)biểu diễn chuỗi của một đối tượng (ký tự chữ số được đề cập dưới dạng chuỗi) và nhân một chuỗi với một số tạo ra một chuỗi mới gồm nhiều lần lặp lại (ở đây chúng tôi chỉ hiển thị n=0chuyển `i`từ nói "5"đến ""n=1chuyển sang nói "6"như "6", nhưng nó cũng hoạt động cho các số nguyên dương lớn hơn, vì vậy "3"*4trở thành "3333"ví dụ.)


8

05AB1E , 31 byte

[{‘Z€µ‚•„í†ìˆÈŒšï¿Ÿ¯¥Š‘#NSèJ{Q#

Hãy thử trực tuyến!

Giải trình

[                                   # start loop
 {                                  # sort input
  ‘Z€µ‚•„í†ìˆÈŒšï¿Ÿ¯¥Š‘#            # push the list ['Z','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT','NINE']
                        N           # push the current iteration counter
                         S          # split to list of digits
                          è         # index into the list with each
                           J{       # join to string and sort
                             Q#     # if the strings are equal, exit loop
                                    # implicitly print iteration counter

Rất không hiệu quả cho đầu vào lớn.


‘Z€µ‚•„í†ìˆÈŒšï¿Ÿ¯¥Š‘# # push the list ['Z','ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT','NINE']: bạn có thể giải thích một chút không, tôi đấu tranh để hiểu làm thế nào bất kỳ chuỗi nào có thể được tạo ra.
Cyril Gandon

1
@CyrilGandon: phân định một chuỗi chữ hoa được phân tách bằng chữ in hoa. Zcó nghĩa là Z. Tất cả các cặp 2 ký hiệu khác biểu thị một từ được nén từ từ điển của 05AB1E . Vì vậy, ví dụ €µdịch là ONE.
Emigna

Đẹp, làm thế nào để bạn nén một chuỗi chứa trong từ điển? Một cái gì đó với giá trị unicode của cặp?
Cyril Gandon

1
@CyrilGandon: Bạn lấy số dòng của từ trong dict (2420 cho lời chào ) và trừ đi 1. Điều này mang lại cho chúng tôi 2419. Các biểu tượng chúng ta cần là các biểu tượng được theo sau 2419trong các tài liệu . Trong trường hợp của chúng tôi, đây là 24=Ÿ19=™, vì vậy HELLOsẽ là‘Ÿ™‘
Emigna

1
Ngoài ra còn có một máy nén được viết bởi Adnan bạn có thể sử dụng trong hầu hết các trường hợp. Liên kết hơi dài, nhưng bạn có thể tìm thấy nó trong phòng trò chuyện 05AB1E . Đó cũng là một nơi tốt để hỏi nếu có thêm câu hỏi nào :)
Emigna

8

Võng mạc , 112 97 byte

O`.
}`GH
8
X
6
H
3
+`F(.*)O(.*)U
4$1$2
+`O(.*)W
2$1
+`F(.*)V
5$1
+`N(.*)V
7$1
}`NO
1
NN
9
T`L
O`.

Hãy thử trực tuyến!

-12 byte nhờ @Neil

-3 byte bằng cách sử dụng các lớp ký tự L trong chuyển vị

Làm thế nào nó hoạt động

Về cơ bản, điều này phụ thuộc vào thực tế là các chữ cái chỉ được sử dụng trong một số tên nhất định. Ví dụ SIXlà tên duy nhất chứa một X. Điều này trở nên khó khăn hơn với thực tế là một số từ trùng lặp trong các chữ cái, chẳng hạn như cả hai FIVESEVENsử dụng V. Điều này có thể được sửa chữa bằng cách xác định FIVEvới F(.*)V.


1
@RickHitchcock Đã sửa. Đệ quy chuyển đổi thành 8 không hoạt động đúng
fireflame241

1
@RickHitchcock. Đã sửa lỗi đệ quy cho tất cả chúng.
fireflame241

Khó chịu GHNOsẽ liền kề, ngoại trừ bất kỳ sự thay thế nào trước đó 8hoặc 1từ sự thay thế trước đó ...
Neil

Có lẽ }`GH 8sẽ làm việc cho 8- điều }này sẽ khiến các nhân vật được sắp xếp lại, do đó đặt bất kỳ phần còn lại GHcùng nhau.
Neil

@Neil Ý kiến ​​hay. Tôi cũng có thể làm điều đó cho NO -> 1thuận tiện.
fireflame241

5

Kotlin 1.1 , 359 352 331 327 325 byte

Nộp hồ sơ

fun r(r:String):String{var s=""
val f=r.split(s).groupingBy{it}.eachCount()
val c=Array(10,{0})
c[8]=f["G"]?:0
c[6]=f["X"]?:0
c[4]=f["U"]?:0
c[2]=f["W"]?:0
c[1]=(f["O"]?:0)-c[2]-c[4]
c[3]=(f["R"]?:0)-c[4]
c[7]=(f["S"]?:0)-c[6]
c[5]=(f["V"]?:0)-c[7]
c[9]=((f["N"]?:0)-c[1]-c[7])/2
for(i in 1..9)for(x in 1..c[i])s+=i
return s}

Không hoạt động trên TryItOnline do Kotlin 1.1 không được hỗ trợ

Kiểm tra

fun r(r:String):String{
val f=r.split("").groupingBy{it}.eachCount()
val c=Array(10,{0})
c[8]=f["G"]?:0
c[6]=f["X"]?:0
c[4]=f["U"]?:0
c[2]=f["W"]?:0
c[1]=(f["O"]?:0)-c[2]-c[4]
c[3]=(f["R"]?:0)-c[4]
c[7]=(f["S"]?:0)-c[6]
c[5]=(f["V"]?:0)-c[7]
c[9]=((f["N"]?:0)-c[1]-c[7])/2
var s=""
for(i in 1..9)for(x in 1..c[i])s+=i
return s}

data class TestData(val input: String, val output: String)

fun main(vararg args:String) {
    val items = listOf(
    TestData("NEO" , "1"),
    TestData("NWEOOT" , "12"),
    TestData("TOEERWNEHOT" , "123"),
    TestData("IHNEVGENNEISTE" , "789"),
    TestData("WEETVTRFSVUHNEEFRHIXEOINSNIEGTOONIEE" , "123456789"),
    TestData("EWHEWROETOTTON" , "1223")
    )
    for (item in items) {
        val out = r(item.input)
        if (out != item.output) {
            throw AssertionError("Bad result: $item : $out")
        }
    }
}

Hợp lý

Tấm nôi

Tôi đã sử dụng tờ trên để tìm ra cách đơn giản nhất để giải từng chữ cái

  • Màu xanh lá cây = Tự giải quyết
  • Màu xanh = Cần xanh để giải quyết
  • Orange = Cần blues để giải quyết
  • Màu đỏ = Cần cam để giải quyết

Chỉnh sửa

  • -7 - Thay đổi khoảng trắng bởi w0lf
  • -21 - Shrank listOf to Array
  • -4 - Đã xóa dấu ngoặc không cần thiết
  • 0 - Đã thêm logic vào
  • -2 - Sử dụng lại chuỗi trống nhờ kevin-cruijssen

1
Chỉ cần lưu ý rằng tôi chính xác gắn với bạn với câu trả lời Java 8 của tôi (127 byte), bằng cách sử dụng một cách tiếp cận tương tự. ;) Nhưng có một câu hỏi: bạn không thể thay đổi var s=""return sđến r=""return rbằng cách dùng lại các đầu vào-String, nhu cầu mà bạn không còn vào thời điểm đó? Tôi chưa bao giờ lập trình trong Kotlin trước đây, vì vậy có thể là tôi nói chuyện vô nghĩa ở đây. ; p
Kevin Cruijssen

1
Thật không may là không> thảo luận.kotlinlang.org / t / từ
jrtapsell

1
À đúng, đó tất nhiên là một khả năng; các tham số finaltheo mặc định. Hmm, một điều khác mà bạn có thể chơi gôn: Đặt var s=""điều đầu tiên trong phương pháp và thay thế val f=r.split("").bằng val f=r.split(s).. Một lần nữa, không có ý tưởng nếu nó hoạt động. Quá tệ TIO chưa hỗ trợ v1.1, nếu không tôi sẽ tự mình thử các đề xuất này trước khi tôi thấy mình thật ngu ngốc ..
Kevin Cruijssen

4

Thạch , 37 byte

1ðDị“©ȯ¿w¶&ÇhṆỌƘ#Ȯʋ~¢CNẓ_»ŒuḲ¤ẎŒ!ċð1#

Hãy thử trực tuyến!

-1 cảm ơn Jonathan Allan .


Lần này ra cho một số đầu vào lớn hơn 7 ký tự (ví dụ : NINEFIVE, THREEFIVE). Đây có phải là một lỗi, hoặc mã chỉ là không hiệu quả?
Cristian Lupascu

@ w0lf cái sau ( Œ!có nghĩa là "hoán vị")
Erik the Outgolfer

Lưu một byte bằng cách sử dụng "AA" thay vì "!":...“©ȯ¿w¶&ÇhṆỌƘ#Ȯʋ~¢CNẓ_»...
Jonathan Allan

@Jonathan ALLan oh là một từ?
Erik the Outgolfer

Đó là từ đầu tiên trong từ điển ngắn, vâng.
Jonathan Allan

3

Java 8, 248 234 byte

s->{int x=0,a[]=new int[10];for(String t:"2WO;4UORF;6XSI;8GI;5FI;7S;3R;1O;9I".split(";"))for(;s.indexOf(t.charAt(1))>=0;a[t.charAt(0)-48]++)for(String z:t.split(""))s=s.replaceFirst(z,"");for(s="";x++<9;)for(;a[x]-->0;)s+=x;return s;}

Giải thích mã:

s->{
    // Array to count how often which number appears
    int a[]=new int[10];
    // The first character behind the number serves the identification
    // the other characters get removed to identify the other numbers later
    for(String t:"2WO;4UORF;6XSI;8GI;5FI;7S;3R;1O;9I".split(";"))
        // Check if the string contains the id 
        for(;s.indexOf(t.charAt(1))>=0;a[t.charAt(0)-48]++)
            // Remove the relevant charcters
            for(String z:t.split(""))
                s=s.replaceFirst(z,"");
    // Clear the string to write the output
    s="";
    // write the numbers sequential into the output 
    for(int x=0;x++<9;)
        for(;a[x]-->0;)
            s+=x;
    return s;
}

-14 Cảm ơn Olivier Grégoire



2

Java 8, 346 345 344 336 327 byte

s->{int g=c(s+=" ","G"),u=c(s,"U"),w=c(s,"W"),x=c(s,"X"),f=c(s,"F")-u,h=c(s,"H")-g,v=c(s,"V")-f,o=c(s,"O")-u-w,i=c(s,"I")-f-x-g;return d(s=d(s=d(s=d(s=d(s=d(s=d(s=d(s=d("",o,1),w,2),h,3),u,4),f,5),x,6),v,7),g,8),n,9);}int c(String...s){return~-s[0].split(s[1]).length;}String d(String s,int i,int n){for(;i-->0;s+=n);return s;}

Hãy thử nó ở đây.

Giải thích chung:

Tôi đã xem xét sự xuất hiện của từng nhân vật trong bảng chữ cái:

E 13357789
F 45
G 8
H 38
I 5689
N 1799
O 124
R 34
S 67
T 238
U 4
V 57
W 2
X 6
  • Trước tiên tôi đếm tất cả các lần xuất hiện của các ký tự khớp đơn: G=8; U=4; W=2; X=6 .
  • Sau đó, tất cả sự xuất hiện của các ký tự hai khớp, cũng khớp với một trong bốn ký tự ở trên, mà tôi có thể trừ đi số lượng của chúng : F=5; H=3.
  • Sau đó, tôi đã làm tương tự một lần nữa cho V=7(bằng cách trừ F=5).
  • Sau đó, giống nhau cho tất cả các nhân vật ba trận đấu còn lại : O=1; N=9.
    • Nhưng vì Ncó hai lần xuất hiện NINE, tôi phải thực hiện bổ sung -1cho mỗi lần xuất hiện N, vì vậy tôi đã sử dụng I=9thay thế (bằng cách trừ ba trận đấu trước thay vì hai lần).

Giải thích mã:

s->{                    // Method with String as parameter and return-type
  int g=c(s+=" ","G"),  //  Amount of 8s (and append a space to `s` first, for the .split)
      u=c(s,"U"),       //  Amount of 4s
      w=c(s,"W"),       //  Amount of 2s
      x=c(s,"X"),       //  Amount of 6s
      f=c(s,"F")-u,     //  Amount of 5s
      h=c(s,"H")-g,     //  Amount of 3s
      v=c(s,"V")-f,     //  Amount of 7s
      o=c(s,"O")-u-w,   //  Amount of 1s
      i=c(s,"I")-f-x-g; //  Amount of 9s
  return d(             //  Return the result by:
   s=d(
    s=d(
     s=d(
      s=d(
       s=d(
        s=d(
         s=d(
          s=d("",       //   Making the input String `s` empty, since we no longer need it
                 o,1),  //   Append all 1s to `s`
         w,2),          //   Append all 2s to `s`
        h,3),           //   Append all 3s to `s`
       u,4),            //   Append all 4s to `s`
      f,5),             //   Append all 5s to `s`
     x,6),              //   Append all 6s to `s`
    v,7),               //   Append all 7s to `s`
   g,8),                //   Append all 8s to `s`
  i,9);                 //   And then returning `s` + all 9s
}                       // End of method

int c(String...s){  // Separate method with String-varargs parameter and int return-type
                    //  `s[0]` is the input-String
                    //  `s[1]` is the character to check
  return~-s[0].split(s[1]).length;
                    //  Return the amount of times the character occurs in the String
}                   // End of separated method (1)

String d(String s,int i,int n){
               // Separate method with String and two int parameters and String return-type
  for(;i-->0;  //  Loop from the first integer-input down to 0
      s+=n     //   And append the input-String with the second input-integer
  );           //  End of loop
  return s;    //  Return the resulting String
}              // End of separated method (2)

1
Chết tiệt, tôi đã nghĩ rằng việc thêm vào một danh sách sau đó sắp xếp nó sẽ ngắn hơn (không phải vậy). Làm tốt!
Olivier Grégoire

1
Chà, cuối cùng, tôi đã vượt qua bạn , nhưng không nhiều lắm;)
Olivier Grégoire


1

Python 3 , 225 byte

def f(s):
	r=[]
	for i,w in zip([2,4,6,8,3,5,7,1,9],["WTO","UFOR","XSI","GEIHT","HTREE","FIVE","VSEEN","ONE","NINE"]):
		while s.count(w[0]):
			r+=[i]
			for l in w:s="".join(s.split(l,1))
	return "".join(sorted(map(str,r)))

Hãy thử trực tuyến!

Nói thẳng: xóa các chữ số được xác định bằng một chữ cái cụ thể trước.


1

Python 3 , 125 byte

lambda s:''.join(min(w)*(2*sum(map(s.count,w[:2]))-sum(map(s.count,w)))for w in"O1WU W2 H3G U4 F5U X6 S7X G8 IUFXG9".split())

Hãy thử trực tuyến!

Sau khi đọc thử thách được liên kết, tôi nhận ra đây là một biến thể của giải pháp Python của mdahmoune , chính nó dựa trên giải pháp ES6 của Draco18s , nhưng này, ít nhất chúng tôi đã chơi được hai byte.

Giống như giải pháp đó, chúng tôi tính toán câu trả lời thông qua sự kết hợp tuyến tính của số lần xuất hiện của các chữ cái nhất định. Chúng tôi mã hóa các kết hợp tuyến tính ngắn gọn bằng cách viết chúng thành các từ trong đó hai chữ cái đầu tiên được thêm vào và mọi thứ sau đó sẽ được trừ đi. Đôi khi một nhân vật là cần thiết để đệm hai nhân vật đầu tiên; chúng tôi sử dụng điều này để ẩn chữ số mà chúng tôi muốn xuất ra (điều này sẽ không bao giờ xảy ra trong đầu vào, vì vậy sẽ không ảnh hưởng đến thuật toán của chúng tôi), mà chúng tôi trích xuất min.



1

Tiên đề, 351 byte

s:="GXUWRFVIONETHS";e:EqTable(CHAR,INT):=table();v:=[8,6,4,2,3,5,7,9,1];z:=[k for k in 1..46|prime?(k)];F(x,y)==>for i in 1..#x repeat y;F(z,e.(s.i):=z.i);t:=[1787026,2451,16445,5957,16036207,130169,20372239,495349,20677];h(a)==(r:=1;F(a,r:=r*e.(a.i));j:=[];F(v,while r rem z.i=0 repeat(r:=r quo t.i;j:=cons(v.i,j)));j:=sort j;k:=0;F(j,k:=k*10+j.i);k)

kết quả bình luận không đúng

s:="GXUWRFVIONETHS" -- tutte le lettere di ONE..NINE in ordine di importanza 
e:EqTable(Character,Integer):=table()
v:=[8,6,4,2,3,5,7,9,1]              -- numeri da controllare in quell'ordine di apparizione di v
z:=[k for k in 1..46|prime?(k)]     -- 14 numeri primi da associare a s
F(x,y)==>for i in 1..#x repeat y 
F(z,e.(s.i):=z.i)                   -- riempie la tavola associando numeri primi alle lettere "GXUW..."
t:=[1787026,2451,16445,5957,16036207,130169,20372239,495349,20677]  -- prodotto di numeri primi 1787026 dovrebbe essere HEIGHT
h(a)==
     r:=1 ;F(a,r:=r*e.(a.i))        -- calcola il numero associato alla stringa a
     j:=[];F(v,while r rem z.i=0 repeat(r:=r quo t.i;j:=cons(v.i,j)));j:=sort j  -- leva il nome dei numeri che man mano trova, aggiunge a j
     k:=0 ;F(j,k:=k*10+j.i)         -- costruisce il numero decimale k, da j vettore ordinato
     k                              -- ritorna tale numero k
------------------------------------------------------
(8) -> h("IHNEVGENNEISTE")
   (8)  789
                                                    Type: PositiveInteger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.