bebo021999
Thành viên gạo cội
- Tham gia
- 26/1/11
- Bài viết
- 5,939
- Được thích
- 8,723
- Giới tính
- Nam
- Nghề nghiệp
- GPE
Mình đang tập viết code cho yêu cầu sau:
Cho dãy số từ 1 tới 9
Trích xuất danh sách các số có 6 ký số (có thể trùng lặp), mà tổng các số bằng tổng cho trước.
Ví dụ: Với tổng =24
526254
344436
---
Sau đó mình dùng random để lấy 1 set bất kỳ.
Mình dự định như sau:
Chạy 6 vòng lặp For duyệt biến từ 1 tới 9
Tại vòng for thứ 6:
Nếu sum các giá trị =24 thì dùng Collection.Add để lưu trữ.
Kết thúc tất cả các vòng lặp
Dùng hàm RAND để trích xuất item ngẫu nhiên từ Collection.
Chạy thử thì ra kết quả, mà code chạy lâu quá. Khoảng 30s. Có thể do số lần tính toán của vòng lặp là 9^6 lần.
Nếu không dùng vòng lặp không thì có cách nào khác không?
Nếu dùng vòng lặp thì làm sao để cải thiện tốc độ?
Xin cảm ơn
Cho dãy số từ 1 tới 9
Trích xuất danh sách các số có 6 ký số (có thể trùng lặp), mà tổng các số bằng tổng cho trước.
Ví dụ: Với tổng =24
526254
344436
---
Sau đó mình dùng random để lấy 1 set bất kỳ.
Mình dự định như sau:
Chạy 6 vòng lặp For duyệt biến từ 1 tới 9
Tại vòng for thứ 6:
Nếu sum các giá trị =24 thì dùng Collection.Add để lưu trữ.
Kết thúc tất cả các vòng lặp
Dùng hàm RAND để trích xuất item ngẫu nhiên từ Collection.
Chạy thử thì ra kết quả, mà code chạy lâu quá. Khoảng 30s. Có thể do số lần tính toán của vòng lặp là 9^6 lần.
Nếu không dùng vòng lặp không thì có cách nào khác không?
Nếu dùng vòng lặp thì làm sao để cải thiện tốc độ?
Xin cảm ơn