Jump to content

Perfect shuffle: Difference between revisions

m
m (→‎Sequence solution: Fixed weird lang tag problem.)
Line 822:
 
<lang dyalect>func shuffle(arr) {
if arr.lenLength() % 2 != 0 {
throw "Length must be evenError."InvalidValue(arr.Length())
}
var half = arr.lenLength() / 2
var result = Array.emptyEmpty(size: arr.lenLength())
var (t, l, r) = (0, 0, half)
 
while l < half {
result[t] = arr[l]
Line 838:
result
}
 
func arrayEqual(xs, ys) {
if xs.lenLength() != ys.lenLength() {
return false
}
for i in xs.indicesIndices() {
if xs[i] != ys[i] {
return false
Line 850:
return true
}
 
func shuffleThrough(original) {
var copy = original.cloneClone()
 
while true {
copy = shuffle(copy)
Line 862:
}
}
 
for input in yields { 8, 24, 52, 100, 1020, 1024, 10000} {
var numbers = [1..input]
print("\(input) cards: \(shuffleThrough(numbers).lenLength())");
}</lang>
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.