Browse Source

ft: confuseList

master
SisMaker 5 months ago
parent
commit
71e190d6c9
1 changed files with 14 additions and 0 deletions
  1. +14
    -0
      src/comMisc/utList.erl

+ 14
- 0
src/comMisc/utList.erl View File

@ -138,6 +138,20 @@ confuseList2(Index, TupleSize, TupleList) ->
TupleList2 = array:set(ChangeIndex, Value1, TupleList1),
confuseList2(Index - 1, TupleSize, TupleList2).
transferMaps([], Index, Map) -> {Index - 1, Map};
transferMaps([Element | List], Index, Map) ->
transferMaps(List, Index + 1, Map#{Index => Element}).
confuseList3(List) ->
{Cnt, Map} = transferMaps(List, 1, #{}),
confuseList3(Cnt, Cnt, Map).
confuseList3(0, _Size, Map) -> maps:values(Map);
confuseList3(Index, Size, Map) ->
ChangeIndex = rand:uniform(Size),
#{Index := Value1, ChangeIndex := Value2} = Map,
confuseList3(Index - 1, Size, Map#{Index := Value2, ChangeIndex := Value1}).
%%Tuple元素数量List转成Tuple {TupleList, RemainList}
list_to_tuple(List, TupleCount) ->
list_to_tuple(List, TupleCount, []).

Loading…
Cancel
Save