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

thuật toán - Thuật toán kim tự tháp số: Các số 1-15 trong một kim tự tháp trong đó mỗi số là hiệu của các số phụ

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

Trước hết: xin lỗi vì tiêu đề dài, nhưng tôi cảm thấy khó giải thích điều này trong một câu;). Có, tôi cũng đã tìm kiếm xung quanh (tại đây và trên Google) nhưng không tìm được câu trả lời phù hợp.

Vì vậy, câu hỏi là:

Các số từ 1-15 sẽ được xếp theo hình kim tự tháp (được biểu thị bằng một mảng) như sau:

       1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

...trừ khi thực sự không phải như vậy, bởi vì kim tự tháp này sai.

Mỗi số "a" phải được xác định bởi hai số "b" và "c" bên dưới nó: a = |b - c|. Vậy hai hàng đầu tiên đúng vì |2-3| = 1. Nhưng dòng thứ ba tất nhiên là sai vì |4-5| = 1, nhưng có số 2 ở trên các số đó. Ban đầu, kim tự tháp trống và nhiệm vụ là tìm ra thuật toán để lấp đầy kim tự tháp này.

Đối với tôi có vẻ như người ta có thể sử dụng một số loại Quay lại vấn đề được giải quyết. Thuật toán, mặc dù tôi vẫn chưa chắc lắm trường hợp cơ bản của đệ quy là gì.

Tuy nhiên, tôi vẫn đang cố gắng giúp đỡ cháu trai mình, và trong các lớp học của nó ở trường, chúng chưa hề nghe thấy gì về đệ quy - chứ đừng nói đến việc quay lui. Vì vậy, hiện tại tôi đang cố gắng tìm cách giải kim tự tháp này bằng cách sử dụng một số loại vòng lặp lồng nhau hoặc thứ gì đó, nhưng thành thật mà nói...Tôi hiện đang gặp khó khăn và tôi không thể tìm ra giải pháp phù hợp.

Có ai có ý tưởng gì không?

chúc mừng,

/tehK

Ps: Ồ, tôi quên mất... ngôn ngữ họ nên sử dụng là C# (kim tự tháp phải là một mảng), nhưng tôi cũng có thể làm việc với bất kỳ ngôn ngữ nào khác, mã giả hoặc những gì bạn có. Đó không phải là về mã hóa, mà là về các thuật toán.

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

Dòng cuối cùng có 15*14*13*12*11=360360 khả năng. Khi bạn có hàng dưới cùng, phần còn lại của kim tự tháp sẽ được xác định. Vì vậy, chỉ cần lặp qua từng khả năng và xem liệu nó có chứa các số trùng lặp hay không. Nó có thể được tối ưu hóa bằng tính năng quay lại, nhưng bạn đã yêu cầu không quay lại.

Mã mẫu:

nhập itertools

kim tự tháp def():
cho b trong itertools.combinations(range(1, 16), 5):
cho xs trong itertools.permutations(b):
hàng = [xs]
trong khi len(rows[-1]) != 1:
row.append(tuple(abs(ab) for a, b in zip(rows[-1], row[-1][1:])))
đã sử dụng = tổng (hàng, ())
if all(1 <= i <= 15 for i in used) và len(set(used)) == 15:
hàng năng suất

cho p trong kim tự tháp():
cho hàng trong p[::-1]:
print ' ' * 2*(5-len(row)) + ' '.join('% 2d' % n cho n trong hàng)
in

Đầu ra:

         5
4 9
7 11 2
8 1 12 10
6 14 15 3 13

5
9 4
2 11 7
10 12 1 8
13 3 15 14 6

Hai giải pháp được tìm thấy về cơ bản là giống nhau (một giải pháp là hình ảnh phản chiếu của giải pháp kia)

Về thuật toán - Thuật toán Kim tự tháp số: Các số 1-15 trong một kim tự tháp trong đó mỗi số là sự khác biệt của các số phụ, 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/49710049/

28 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