cuốn sách gpt4 ai đã làm

c# - Nhận dạng APL trong thành ngữ lập chỉ mục lũy tiến

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:12:05 27 4
mua khóa gpt4 Nike

Thành ngữ số 1 và số 5 là Thư viện thành ngữ FinnAPLCả hai đều có cùng tên: "Chỉ số lũy tiến của (không thay thế)":

((⍴X)⍴⍋⍋X⍳X,Y)⍳(⍴Y)⍴⍋⍋X⍳Y,X ⍝ thành ngữ #1
((⍋X⍳X,Y)⍳⍳⍴X)⍳(⍋X⍳Y,X)⍳⍳⍴Y ⍝ thành ngữ #5

Có danh tính quan trọng nào đằng sau sự trùng lặp này không?

Lưu ý bên lề:

Sự nhấn mạnh của APL vào bản sắc đã là một trong những đặc điểm nổi bật của APL ngay từ đầu. Người sáng lập APL Kenneth Iverson cho biết:

"Danh tính là sự tương đương giữa hai biểu thức khác nhau. Mặc dù danh tính thường chỉ được coi là công cụ phân tích toán học, nhưng chúng có thể trở thành một công cụ thực tế quan trọng để đơn giản hóa và sửa đổi các hàm được sử dụng để xác định chúng. biểu thức.

câu trả lời hay nhất

Những thành ngữ này có điểm chung. Bước cuối cùng trong cả hai là thao tác lập chỉ mục, cả hai đều sử dụng một số loại chiến lược nối gương và có lẽ quan trọng nhất là đầu ra của các tham số bên trái và bên phải đều giống nhau cho cả hai. Điều này giúp đơn giản hóa rất nhiều việc tìm kiếm danh tính vì chúng ta có thể so sánh các tham số chính xác cho số 1 với các tham số chính xác cho số 5:

(⍴Y)⍴⍋⍋X⍳Y,X ⍝ đối số đúng #1
(⍋X⍳Y,X)⍳⍳⍴Y ⍝ đối số đúng #5

Một điều khác có thể đơn giản hóa việc tìm kiếm của bạn là loại bỏ hoặc sửa đổi bất kỳ nội dung nào cắt ngắn kết quả đầu ra, vì kết quả đầu ra cho cả hai tham số đều giống nhau mà không bị cắt bớt. Thành ngữ số 1 Cách sử dụng(⍴Y)⍴cắt nó thànhYlà độ dài của , trong khi độ dài của đối số đúng trong Thành ngữ #5 phụ thuộc vàochiều dài⍳⍴YY trong. Trong trường hợp đầu tiên, phần cắt bớt có thể được loại bỏ và trong trường hợp thứ hai, nó có thể được sửa đổi thànhY,XChiều dài đầy đủ:

⍋⍋X⍳Y,X ⍝ #1
(⍋X⍳Y,X)⍳⍳⍴Y,X ⍝ #5

Cho rằng cả hai biểu thức đều chứa ⍋X⍳Y,X, hãy gán nó cho một biến A ← ⍋X⍳Y,X và đơn giản hóa. Tuy nhiên, điều quan trọng cần chỉ ra là danh tính mà chúng ta có bây giờ chỉ áp dụng nếu A là một vectơ hoán vị, điều mà tôi sẽ thảo luận chi tiết hơn sau. Đồng thời, chúng tôi có danh tính này:

⍋A ←→ A⍳⍳⍴Y,X

Vì "Y,X" không làm gì trong biểu thức này ngoại trừ việc cung cấp độ dài của vectơ và vì độ dài đó bằng "A", nên danh tính có thể được rút gọn về dạng cuối cùng:

⍋A ←→ A⍳⍳⍴A, trong đó A là vectơ hoán vị

Điều này có ý nghĩa. Toán tử khuyến mãi ở phía bên trái của danh tính trả về MỘT Giá trị chỉ mục mà mỗi giá trị sẽ có khi được sắp xếp theo thứ tự tăng dần. Toán tử chỉ mục ở bên phải trả về A ⍳⍴A Chỉ số giá trị tăng dần của . Ví dụ:

5 2 1 4 3 ⍝ A←5 2 1 4 3
3 2 5 4 1 ⍝ ⍋A

5 2 1 4 3 ⍝ A←5 2 1 4 3
1 2 3 4 5 ⍝ ⍳⍴A
3 2 5 4 1 ⍝ A⍳⍳⍴A

Nhìn vào hai hàng cuối cùng, 1 có chỉ số 3 trong A, 2 có 2, 3 có 5, 4 có 4 và cuối cùng 5 có chỉ số 1. Điều này có ý nghĩa vì đó gần như là yếu tố xác định toán tử khuyến mãi.

vectơ dịch chuyển

Như đã đề cập trước đó, danh tính này chỉ hợp lệ nếu A là vectơ hoán vị. trong bài viết của anh ấy Ký hiệu như một công cụ của tư duy Trong , Kenneth Iverson định nghĩa một vectơ hoán vị: "Một vectơ P có các phần tử là một số hoán vị của các chỉ số của nó (tức là ^/1=+/P∘.= ⍳⍴P) sẽ được gọi là vectơ hoán vị." chính nó, bạn có thể thấy ý tưởng này được thể hiện theo nhiều cách khác nhau:

Y[⍋Y]^.=X[⍋X] #6 hoán vị của nhau 
X^.=⍋⍋X #7 kiểm tra nếu vectơ hoán vị
X[⍋X]^.=⍳⍴X #29 kiểm tra nếu vectơ hoán vị
⍋X #48 Đảo ngược một hoán vị
X⍳⍳⍴X #212 Đảo ngược một hoán vị
^/1=+⌿X∘.=⍳⍴X #281 kiểm tra nếu vectơ hoán vị
^/(⍳⍴X)∊X #454 kiểm tra xem vectơ hoán vị
A←⍳⍴X ⋄ A[X]←A ⋄ A #654 Đảo ngược một hoán vị

Trong thành ngữ số 7, phía bên phải của cách diễn đạt là thành ngữ cơ bản tăng dần, i trong một thành ngữ khác post được thảo luận trong . , trong bài viết đó tôi đã nói về việc toán tử khuyến mãi chuyển đổi qua lại giữa 2 trạng thái xếp hạng và lập chỉ mục nên chúng ta có 2 đồng nhất thức sau:

⍋X ←→ ⍋⍋⍋X ←→ ⍋⍋⍋⍋⍋X ...
⍋⍋X ←→ ⍋⍋⍋⍋X ←→ ⍋⍋⍋⍋⍋⍋X ...

Danh tính thứ hai có thể được mở rộng như sau, nếu X là một vectơ hoán vị, như được thiết lập bởi thành ngữ số 7:

X ←→ ⍋⍋X ←→ ⍋⍋⍋⍋X ←→ ⍋⍋⍋⍋⍋⍋X …

Chúng ta biết rằng toán tử khuyến mãi trả về tất cả các số từ 1 đến số giá trị trong đối số. Áp dụng toán tử khuyến mãi thêm hai lần nữa và bạn sẽ nhận được chính xác các vectơ giống nhau theo cùng một thứ tự. Vì vậy, thành ngữ số 7 chỉ nói rằng vectơ hoán vị là vectơ chứa tất cả các số từ 1 đến một số giá trị khác một lần và chỉ một lần. (Điều này giả sử 1 được đặt làm giá trị chỉ mục đầu tiên.)

Một điều thú vị khác về danh sách thành ngữ trên là thành ngữ #48 và #212 là mặt trái và mặt phải của tính đồng nhất được thảo luận trong câu trả lời:

⍋A ←→ A⍳⍳⍴Y,X

Về thuật toán - nhận dạng APL trong các thành ngữ lập chỉ mục lũy tiến, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/17496378/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress