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

algorithm - 两个数的倍数列表中的第 n 个数

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

Tôi bắt gặp câu hỏi này vài tháng trước trong một cuộc thử thách tuyển dụng của Amazon.
Cho hai số Mộtb và bội số của nó trong danh sách tăng dần, hãy tìm n bội số.

Ví dụ, nếu a = 4 , b = 6n=6 thì câu trả lời là 18Bởi vì danh sách là 4 6 8 12 16 18 20 24 28 30....

Đây là phương pháp tôi sử dụng:

  1. 选择Mộtb Cái nhỏ hơn. Được giao cho nhỏ. Gán cái khác cho lớn.

  2. 生成 Mộtb Danh sách bội số (hiển thị ở trên) cho đến khinhỏ*n, vì câu trả lời bắt buộc không thể lớn hơn câu trả lời này.

  3. Tạo một con trỏ tới số cuối cùng trong danh sách này.

  4. Di chuyển con trỏ này lùi lại bội số của số lớn hơn cho đến khi nhỏ*n(đơn giản thông qua (nhỏ * n)/lớn lấy lại con trỏ).

  5. di chuyển con trỏ về phía trướcMộtb bội số chung nhỏ nhất của cho đến khinhỏ*n. Đây là câu trả lời cần thiết.

Cách tiếp cận này hoạt động tốt với các trường hợp thử nghiệm nhỏ nhưng cũng hiệu quả với các trường hợp thử nghiệm lớn.

Vui lòng đề xuất một phương pháp ít phức tạp về thời gian hơn. Vì lý do nào đó Mathjax không hoạt động trong bất kỳ trình duyệt nào của tôi.

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

Như đã đề cập trước đó, hãy tìm L=LCM(a,b)(12 ở đây)
Tính toán đồng thờila = LCM/a, lb = LCM/b(ở đây 3,2)
Lưu ý rằng L nằm ở dòng F = la + lb - 1 vị trí và bội số thứ k của LCM nằm ở chuỗi k*F Vị trí (ở đây là k*4)
Vì vậy bạn có thể dễ dàng tìm thấy:
-khoảng thời gian trong đó thành viên thứ n là:idx=ndivF(đây 6div 4 = 1 bắt đầu từ 0)
- nằm trong phạm vi này:p = div mod F(đây6 mod 4 = 2bắt đầu từ 0)

Bây giờ bạn phải 0..LCM - 1 Tìm mục thứ p trong phạm vi. Lưu ý rằng bạn không cần xây dựng danh sách (cách tiếp cận có thể - tìm kiếm nhị phân)

Về thuật toán - số thứ n trong danh sách bội của hai số, 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/49484305/

34 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