FileMaker에서 카드를 씻어요.

6938 단어 FileMakertech

개시하다


또 집게야. 누가 얻었어?이번에는 FileMaker로 카드 세탁을 진행합니다.한데 섞인 물건이다.
여러분 혹시 룰이 정해져 있는 거 보고 헷갈리셨나요?보통은 있어요, 저 같은 사람 수준이면 금기 증상까지 나타날 수 있어요.오래전 그라데이션 순서대로 나열된 마이와이프(My Wife·취미는 그림 그리기)의 색연필을 너저분하게 늘어놓으면 일주일 정도 입을 열지 못했던 집돌이가 지금도 내 머릿속에 깊이 새겨져 있다.
그러니까 카드를 씻는 데는 위험이 따른다는 거야...

메시지


다국어에서 흔히 볼 수 있는 카드 세척 함수지만 FileMaker는 왜 없을까.정렬SortValues이 드디어 4년 전 FileMaker16에서 이루어졌으니 앞으로도 카드 세탁 함수가 실현될지도 모른다.
그냥, 워낙 필요한 장면 경험이 없어서, 필요해?그러고 보니...뭐...거기는요?
말은 그렇지만 실제로 어떻게 해야 할지 생각하면 뭔가를 보게 될지도 모른다.

Fisher


유명한 알고리즘에는'Fisher/eits 카드 세탁'이라는 것이 있다.개량판도 있지만 오리지널 기법부터 소개한 뒤 각각 시행한다.간단한 스크립트 단계에서만 이루어지기 때문에 누구나 재현할 수 있다.

원판


그림으로 이렇게 표시한다.만약 배열된 명세서가 있다면

그 중에서 무작위로 하나를 선택한다(예를 들어 타조)

남은 것 중에서 무작위로 하나 더 뽑기(예를 들어 사과)

이런 중복된 수법...
그거밖에 없어요?
그러게 말이야.뭐, 카드를 씻으려면 이렇게 순서가 되는 거야. 그러니까 이게 왕도 중의 왕도라는 거야.카드가 든 봉투에서 하나하나 꺼내 배열하는 게 그런 인상이죠.
대본은 아무것도 없는 느낌이다.
demo라는 표에 두 필드originalListshuffledList 설정
Random에서 선택 줄GetValue에서 값을 추출하고 원시 목록에서 이 값을 제외한 나머지 목록에서 무작위로 이 값을 추출합니다.그냥 반복이야.참고로 픽업 값을 제외한 17행은
$valueList
FilterValues ( 

	LeftValues ( $valueList ; $pickLine - 1 ) &
	RightValues ( $valueList ; $max.cnt - $pickLine ) 

	; demo::originalList

 )
그러나 FilterValues 하지 않아도 알고리즘으로(무작위 선택은 간) 문제없을 뿐만 아니라 UniqueValuesSubstitute 등의 방법으로 픽업한 값을 간단하게 제거할 수 있다.쉬운 방법을 쓰다.
사용자 정의 함수화로 돌아가면 끝날 것 같은 스크립트를 혼란시킵니다. 현재 추세는 While 함수의 순환입니까?하지만 저는 노인이기 때문에 어쨌든 예전의 컴백 맞춤형을 쉽게 만들 수 있습니다.
예?너도?그럼 같이 술 마셔요.

방진포판


생선/정어리를 개량한 것 같다.
단정 씨가 아니라 다스탄 씨입니다.
원소수 n의 배열 a 혼란 (인덱스 0에서 n-1)
n-1에서 1로 i를 줄이면서 다음과 같은 조작을 수행한다
j에서 0 이상 i 이하의 무작위 정수를 대입하다
a[j]와 a[i] 교환
잘 모르겠지만...중요한 것은 어떻게 느낌을 교환하는가?
문외한이지만 현인의 기술 방법은 너무 어렵고 일반인에게는 너무 어렵다고 늘 생각했어요.예를 들어 Amazon MWS와 MWS, 그리고 MWS.MWS 같은 것도 있고.상대방에게 이해시킬 뜻은 더 이상 없겠지, 이런 참고.너희들 스스로 다시 읽었니?말하고 싶어요.너무 딱딱해.
아랑곳하지 않다.아마 더스틴 필드의 생각은 이렇겠지.
예를 들어 위에서 1~7번으로 마지막 7번(섬말)과 이전(1~7번)에서 무작위로 추출한 값을 교환한다. 예를 들어 2번이다.교만은 이미 확정되었다.

이를 토대로 6번과 이전(1~6번)에서 무작위로 추출한 값, 예를 들어 4번을 교환한다.'파짱'도 확정됐다.

이를 토대로 5번과 이전(1~5번)에서 무작위로 추출한 값, 예를 들어 3번을 교환한다.호각도 이미 확정되었다.

이렇게 거슬러 올라가면서 교환하는 수법.뒤에서 확실하게 하는 느낌이야.
단도직입적으로 말하면, 도리어 번거로움을 느낀다.
이곳을 교환하는 것은 매우 번거로운 것 같다
하지만 할 수밖에 없어요.
달단 선생도 배열이 매우 가지런하다고 말했기 때문에 배열에 따라 처리한다.
  • 3~11행: 목록을 배열한다.수조의 인덱스(문패 번호)는 기본적으로 0에서 시작되기 때문에 계수$cnt는 0으로 시작한다.
  • 8행$valueArrays의 설정은 다음과 같습니다.
    $valueArrays
    JSONSetElement ( $valueArrays ;
    
    	[ "[" & $cnt & "]" ; GetValue ( $valueList ; $cnt + 1 ) ; 1 ]
    
     )
    
    계수 색인을 만들면서 자신에게 끊임없이 배열 값을 추가하는 형식이다.이렇게 해서 나온 $valueArrays 결과는 이렇게 배열되었다.
    ["りんご","ごりら","らっぱ","ぱんだ","だちょう","うし","しまうま"]
    
    13줄에서 시작된 알고리즘의 정식 교환 처리.
  • 14행: 교환 대상의 배열 인덱스(번지)$max.cnt는 마지막 인덱스6에서 감소하기 때문에 0로 바뀌면 퇴출(0시 배열[0]간의 교환이기 때문에 의미가 없음)
  • 제16, 17행: 교환 대상의 배열$endArray과 무작위 추출의 배열$pickArray[]의 형식으로 설정
  • 19행: 교환!교환!$valueArrays
    JSONSetElement ( $valueArrays ;
    
    	[ $endArray ; JSONGetElement ( $valueArrays ; $pickArray ) ; 1 ];
    	[ $pickArray ; JSONGetElement ( $valueArrays ; $endArray ) ; 1 ]
    
     )
    
  • 21행: 스위칭 개체 어레이$endArray의 인덱스 축소
  • 24줄: JSONListValues로 배열 값
  • 쓰기
    의외로 별다른 처리가 없네요.차라리 3~11줄의 배열이 좀 그렇다.
    $valueArrays
    "[\"" & 
    
    Substitute ( $valueList ;
    
    	[ "\"" ; "\\\"" ];
    	[ ¶ ; "\",\"" ]
    
     )
    
    & "\"]"
    
    이렇게 하면 한꺼번에 배열$valueArrays(값에 더블 인용부호가 포함될 가능성을 고려하여 두 단계로 교체할 수 있다).

    고찰적인 나니카


    오리지널판과 개량판, 속도는 어떻습니까?이렇게 말하면 명세서의 수량이 적은 범위 내에서는 차이가 없다.하지만 수량이 늘어날수록 개량판 종이 상자는 빨라져 압도적이다.
    오리지널 버전의 발췌 기법을 바꾸려 했지만 전혀 안 됐다.역시 리스트화하고 발췌한 부분이 병목이구나.2천건 정도면 이미 기대할 수 없다.
    오리지널이 아무리 노력해도 아무리 개량해도 쓰레기의 2초일 뿐이다
    끝났구나...비록
    다시 정신을 차리고 오리지널 버전도 먼저 배열해 그곳JSONGetElement에서 새로운 배열JSONSetElement을 골라 만들어 원래의 배열JSONDeleteElement에서 없애는 방법...
    의외로!결과적으로 먼지와의 차이는 극도로 줄어들 것이다!

    총결산


    비록 카드를 씻을 뿐이지만, 카드를 씻는 것은 매우 심오하다.
    그나저나 랜덤 오디션이지만 우연히 처음과 똑같이 배열됐을 수도 있다.즉, 카드 세탁 전후가 완전히 동일하게 배열될 확률이 이번처럼 7개인 경우
    \dfrac{1}{_7\mathrm{P}_7} =\dfrac{1}{7!} =\dfrac{1}{7×6×5×4×3×2×1} =\dfrac{1}{5040}
    실제로 두바이 복권이 100만 달러에 당첨될 확률은 대략 이렇다!!
    두바이 진입
    하지만 주의해야 할 것은 5000번 정도 사면 꼭 당첨되는 것은 아니다.
    확률은 그게 아니야.
    이번 각본에서는'사과, 소가죽, 나팔, 빵'네 개의 카드 세탁이 2천400회 진행됐으며, 각각의 패턴 출현 빈도는 다음과 같다.

    4개의 값으로 서열 424가지 모드가 있잖아...아마 잘 흩어져서 작용한 거겠죠, 아마 1/24에 끝날 거예요.이것도 이른바 몬테카로법이다.
    확률에 관심 있으신 분들은 꼭 와주세요.
    https://zenn.dev/ontherocks_plz/articles/f14ce7730e783c
    https://zenn.dev/ontherocks_plz/articles/81cf358884bae0

    끝말


    어때?
    배열을 제어하는 사람이 데이터를 제어하는 것은 그런 느낌의 결과이다. 그러나 먼저 카드를 씻는 알고리즘은 간단하고 앞으로 그런 함수는 실현되지 않을 것 같다.필요한 장면도 별로 없는 것 같은데 등록된 곡도 카드를 씻나요?난치잔치 때 무슨 게임 해요?그렇죠?
    사용자 정의 함수화 후 벤치 예열을 진행하면 됩니다.
    그럼 안녕히 계세요.
    Let's enjoy FileMaker!
    ※ 배열된 색연필의 색깔을 섞으면 와이프도 이상하겠죠.

    좋은 웹페이지 즐겨찾기