2013-07-20 32 views
5

Tôi muốn chọn một phần tử ngẫu nhiên từ một mảng, loại bỏ nó khỏi mảng, và sau đó trả về phần tử.Chọn phần tử ngẫu nhiên từ một mảng và loại bỏ nó

Tôi có thể sử dụng sample để lấy yếu tố, index để tìm vị trí của nó và sau đó delete_at để xóa nó, nhưng có cách nào tốt hơn không?

+0

đâu của mã của bạn hiển thị những gì bạn đã cố gắng đến thời điểm này ? Xem http://sscce.org/ –

+0

Tôi đã viết nó bằng ngôn ngữ tự nhiên. – MxyL

+0

có thể trùng lặp của [Có một chức năng cụ thể để lấy sau đó xóa phần tử mảng ngẫu nhiên?] (Http://stackoverflow.com/questions/10988525/is-there-a-particular-function-to-retrieve-then-delete- random-array-element) – henrikhodne

Trả lời

10
array.delete_at(rand(array.length)) 

Điều này có vẻ đúng và tôi đoán nó hoạt động tốt nhất.

EDIT: Câu trả lời này tương tự là ở đây: Is there a particular function to retrieve then delete random array element? vì vậy tôi muốn đi với điều này: D

+0

Không có gì sai với câu trả lời này cả. Nó rõ ràng và đơn giản, ngay cả khi nó không phải là dễ thương nhất. :) – lurker

9

giải pháp đẹp nhất:

array.delete(array.sample) 
+0

Tôi thích nó. Xóa và trả về một phần tử ngẫu nhiên. Tôi đã quá cố định trên các chỉ số. – MxyL

Các vấn đề liên quan