i want to write a lotto code,and there are six numbers in it,the range of first six numbers is 1 to 38,the range of last number is 1 to 8.Here is my code
x = rand(1,10);[a b]=sort(x);previous_number=b(1:6)last=randi([1,8],1,1) %produce the last number
for k =1:6 while last== b(k)%while that last number is the same as the value of one of the previous number
last=randi([1,8],1,1)%then produce the last number again,until the different value produce
endendltto=[previous_number last]
but i found that the last number will still generate the same number as the first six numbers,for example,
"1" 2 33 55 66 10 "1"
1 "2" 33 55 66 10 "2"
Why?i have already said
while last== b(k) last=randi([1,8],1,1) end
how do i improve it? i don't want to use the "randperm"
Best Answer