제 문제는 바로 그것입니다. 나는 다른 목록 (lst)에서 임의의 요소를 포함하는 하위 목록 (slst1) 있습니다. 그런 다음 slst1이 아닌 lst 요소를 포함하는 또 다른 요소 (slst2)를 만들어야하지만, 그 요소를 비교할 때 결과는 예상과 다릅니다.두 목록의 요소를 비교하고 다른 요소를 추가하십시오.
호출이 될 것입니다 :
'0.3'그것이 내가 먹고 싶어리스트의 비율입니다(split 0.3 lst)
. 예를 들어, slst1는 포함
((a11 a12 a13 a14)(a21 a22 a32 a42) (a31 a32 a33 a34))
과 :
((a11 a12 a13 a14) (a31 a32 a33 a34))
을하지만, 내 코드와 함께, slst2에는 다음이 포함
는((a21 a22 a23 a24))
, slst2이 포함되어 있어야합니다
LST는 포함 항상 다른 것들뿐 아니라 항상 동일한 아이템. 내가 지금 어떤 조언이 완벽 할 것, 라켓에서 noobie 해요
(define (split proportion lst)
(let((ne (* proportion (length lst)))(slst1 '())(slst2 '()))
;Calculate first sublist
(when (> ne 0)
(for ([i (inexact->exact ne)])
(if (null? lst)
(set! slst1 (list-ref lst (random (length lst))))
(set! slst1 (list lst (list-ref lst (random (length lst)))))))
;Try to calculate second sublist
(for ([i (length lst)]
#:when (not(member (list-ref lst i) slst1)))
(set! slst2 (list slst2 (list-ref lst i)))
)
slst2)))
:
이 내 코드입니다. 읽어 주셔서 감사합니다/부탁드립니다. 내가 제대로 이해하면
'split'을 호출하는 방법, 얻은 결과 및 예상되는 결과의 예를 보여줄 수 있습니까? – uselpa
'split'을 위해 올린 코드는 옳지 않습니다. 괄호가 없기 때문에 컴파일되지 않습니다. –
Joshua Taylor, 저, 라켓 박사님, 저는 합법적이라고 말해야합니다. 따라서 복사하여 붙여 넣으십시오. uselpa : 아침에 나는 예를 들어, 전화와 결과를 예상했다. 나쁜 질문에 대해 유감입니다. 그것은 내 첫 번째 ^^ '' –