<p>θέλω να μάθω αν υπάρχει πολύ πιο καθαρός τρόπος για να γίνει αυτό. βασικά, θέλω να διαλέξω ένα τυχαίο στοιχείο από μια σειρά μεταβλητού μήκους. κανονικά, θα το έκανα έτσι:</p><pre><code>myarray = ["stuff", "widget", "ruby", "goodies", "java", "emerald", "etc" ] item = myarray[rand(myarray.length)] </code></pre><p>υπάρχει κάτι που είναι πιο ευανάγνωστο/απλούστερο για την αντικατάσταση της δεύτερης γραμμής; ή είναι αυτός ο καλύτερος τρόπος να το κάνετε. υποθέτω ότι θα μπορούσατε να κάνετε <code>myarray.shuffle.first</code>, αλλά είδα μόνο <code>#shuffle</code> πριν από λίγα λεπτά για so, δεν το έχω χρησιμοποιήσει ακόμα.</p>
πώς μπορώ να διαλέξω τυχαία από έναν πίνακα;
<p>απλά χρησιμοποιήστε <a href="http://ruby-doc.org/core-1.9.3/array.html#method-i-sample"><code>array#sample</code></a> :</p><pre><code>[:foo, :bar].sample # =&gt; :foo, or :bar :-) </code></pre><p>διατίθεται σε ruby 1.9.1+. για να μπορέσετε να το χρησιμοποιήσετε με μια προηγούμενη έκδοση του ruby, θα μπορούσατε <a href="https://github.com/marcandre/backports"><code>require "backports/1.9.1/array/sample"</code></a> .</p><p>σημειώστε ότι στο ruby 1.8.7 υπάρχει κάτω από το ατυχές όνομα <code>choice</code>; μετονομάστηκε σε μεταγενέστερη έκδοση, επομένως δεν πρέπει να το χρησιμοποιήσετε.</p><p>παρόλο που δεν είναι χρήσιμη σε αυτή την περίπτωση, το <code>sample</code> δέχεται ένα όρισμα αριθμού σε περίπτωση που θέλετε μια σειρά διακριτών δειγμάτων.</p>
<p><code>myarray.sample(x)</code> μπορεί επίσης να σας βοηθήσει να πάρετε x τυχαία στοιχεία από τη συστοιχία.</p>
<h1>τυχαίος αριθμός τυχαίων στοιχείων από έναν πίνακα</h1><pre><code>def random\_items(array) array.sample(1 + rand(array.count)) end </code></pre><hr><h3>παραδείγματα πιθανών αποτελεσμάτων:</h3><pre><code>my\_array = ["one", "two", "three"] my\_array.sample(1 + rand(my\_array.count)) =&gt; ["two", "three"] =&gt; ["one", "three", "two"] =&gt; ["two"] </code></pre>
<pre><code>myarray.sample </code></pre><p>θα επιστρέψει 1 τυχαία τιμή.</p><pre><code>myarray.shuffle.first </code></pre><p>θα επιστρέψει επίσης 1 τυχαία τιμή.</p>
<pre><code>arr = [1,9,5,2,4,9,5,8,7,9,0,8,2,7,5,8,0,2,9] arr[rand(arr.count)] </code></pre><p>αυτό θα επιστρέψει ένα τυχαίο στοιχείο από τον πίνακα.</p><p>εάν θα χρησιμοποιήσετε τη γραμμή που αναφέρεται παρακάτω</p><pre><code>arr[1+rand(arr.count)] </code></pre><p>τότε σε ορισμένες περιπτώσεις θα επιστρέψει 0 ή μηδενική τιμή.</p><p>η γραμμή που αναφέρεται παρακάτω</p><pre><code>rand(number) </code></pre><p>επιστρέψτε πάντα την τιμή από το 0 στον αριθμό-1.</p><p>αν χρησιμοποιούμε</p><pre><code>1+rand(number) </code></pre><p>τότε μπορεί να επιστρέψει τον αριθμό και το arr [αριθμός] δεν περιέχει κανένα στοιχείο.</p>