|
|
@ -108,21 +108,21 @@ getRandFromList(Num, List) -> |
|
|
|
List -- Result. |
|
|
|
|
|
|
|
|
|
|
|
%%打乱列表函数 List =[] 返回 打乱后列表 List2 元素小于300多个的时候 使用confuseList 大于300多个的时候使用confuseList2 |
|
|
|
%%打乱列表函数 List =[] 返回 打乱后列表 List2 元素小于300多个的时候 使用confuseList1 大于300多个的时候使用confuseList2 |
|
|
|
%% ---------------------------------------------------- |
|
|
|
confuseList(List) -> |
|
|
|
confuseList1(List) -> |
|
|
|
TupleList = list_to_tuple(List), |
|
|
|
TupleSize = tuple_size(TupleList), |
|
|
|
confuseList(TupleSize, TupleSize, TupleList). |
|
|
|
confuseList1(TupleSize, TupleSize, TupleList). |
|
|
|
|
|
|
|
confuseList(0, _TupleSize, TupleList) -> tuple_to_list(TupleList); |
|
|
|
confuseList(Index, TupleSize, TupleList) -> |
|
|
|
confuseList1(0, _TupleSize, TupleList) -> tuple_to_list(TupleList); |
|
|
|
confuseList1(Index, TupleSize, TupleList) -> |
|
|
|
ChangeIndex = rand:uniform(TupleSize), |
|
|
|
Value1 = element(Index, TupleList), |
|
|
|
Value2 = element(ChangeIndex, TupleList), |
|
|
|
TupleList1 = setelement(Index, TupleList, Value2), |
|
|
|
TupleList2 = setelement(ChangeIndex, TupleList1, Value1), |
|
|
|
confuseList(Index - 1, TupleSize, TupleList2). |
|
|
|
confuseList1(Index - 1, TupleSize, TupleList2). |
|
|
|
|
|
|
|
confuseList2(List) -> |
|
|
|
Array = array:from_list(List), |
|
|
|