0
私は、リストとパーセントを与えたプログラムをコーディングして、2つの異なるサイズリストでリストを分割したいと思います。それは要素のランダムな選択を持っている必要があります、そのように作成されたリストは常に異なっています。 これらのコードは、それを行うことができる:ここラケットは、2つの異なるサイズリストでリストを分割します。無作為に
(define (clamp x a b)
(max (min x b) a))
(define (split pct xs)
(define pos (exact-round (* (clamp pct 0.0 1.0) (length xs))))
(split-at (shuffle xs) pos))
は一例であり:
(0.25分割 ')(1 2 3 4 5 6 7 8 9)
'(6 2)
「(3 7 1 4 5 8 9)
しかし、代わりに "シャッフル" 私は同じことを達成するために、この機能を使用したいの:
(define (get-randomly-no-pair list)
(list-ref list (random (length list))))
したがって、get-randomly-no-pairは、最初のリストからランダムに1つの要素を取ります。そして、両方のリストを作成するために、すべての要素が使用されます。
おかげで私は、私は自分自身を明確にしていなかったと思いますなぜ私は質問を編集したのですか?希望、私は達成したいことを理解することがより簡単になりました。ありがとう! –
@RobJrまだ明確ではありません。あなたの関数 'split'はあなたの例に従って何をしたいのですか?' shuffle'を置き換える必要があるのはなぜですか? – Sylwester
お返事ありがとうございます。私はラケットを学んでいるので(もっと良い定義は私がラケットに苦しんでいるということです)、リストからランダムに要素を取り除いてその要素をリストから削除する方法を見てみたい(少なくとも私がそれをやる方法です) –