프로그래밍의 수학 개념 - 집합
29069 단어 mathdatastructuresjavascriptnode
세트
A set is a well-defined collection of distinct objects.
The objects that belong to a set are called its elements (or points or members)
자료 출처: Functional Analysis P.K. 자은, 해리러 아하마드와 Om P. 아호자
집합을 정의하는 비공식적인 방법은 용기(상자/원)이며 그 안에 서로 다른 대상을 포함한다.다음과 같은 기호로 표현할 수 있습니다.
S = {1, 2, 'some string'}
S
는 집합의 표식부호다.S = {1, 2, 3} = {2, 3, 1} = {3, 2, 1}
S = {1, 1, 2, 3, 2, 3} = {1, 2, 3}
사용
우리는 집합으로 우리 주위의 세계를 정의할 수 있다.
States = {'New York', 'California', 'Florida', 'Washington DC', ...} // size = 50
usersFromLastWeek = {12938, 89032, 55866}
S = {}
집합은 더욱 복잡한 상황을 나타낼 수도 있다.S = {1, 2, 3, 4, ...} // Size = Infinity
S = {
{'New York', 'California', 'Florida', 'Washington DC', ...},
{12938, 89032, 55866},
{}
} // Size = 3
S = {1, 2, S} =
{
1, 2,
{ // S
1, 2, { // S
1, 2, {...}
}
}
} // Size = 3
💡 네스트된 컬렉션에 포함된 요소는 루트 컬렉션(S
의 직접 요소로 간주되지 않습니다.등록 정보
Size
= 집합에 존재하는 원소수.조작하다
작업은 컬렉션을 읽기 및/또는 다른 컬렉션(또는 다른 객체)으로 변환하는 방법입니다.
💡 아래의 기호는 위조 코드이다
설정된 크기가 0인지 확인하려면 비어 있습니다.
S1 = {}
isEmpty(S1) // = true
S2 = {1, 2, 3}
isEmpty(S2) // = false
컬렉션에 하나 이상의 요소를 추가합니다.
S1 = {1, 2};
S2 = add(S1, 3, 10); // = {1, 2, 3, 10};
컬렉션에서 하나 이상의 요소를 삭제합니다.
S1 = {'a', 'b', 'c', 'd'};
S2 = remove(S1, 'c') // = {'a', 'b', 'd'}
컬렉션에 요소가 있는지 확인해야 합니다.
S1 = {'a', 'b', 'c', 'd'};
has(S1, 'e') // False
has(S1, 'a') // True
순환 집합 중의 원소를 교체하다.
S1 = {'Sandra', 'Mary', 'Louis'};
for (let person of S1) {
// person = Sandra, Mary and Louis, respectively
// Order may vary
}
하나의 집합이 다른 집합과 완전히 같은 요소를 포함한다면 비교에 사용됩니다.
S1 = {'first', 'second', 'third'}
S2 = {'second', 'third', 'first'} // Order does not matter
equals(S1, S2) // True
S3 = {'fourth'}
equals(S1, S3) // False
합집합: 두 집합의 모든 요소를 포함하는 결과 집합을 만듭니다.
S1 = {'first', 'second', 'third'}
S2 = {'fourth'}
union(S1, S2) // = {'first', 'second', 'third', 'fourth'}
차이점:
Set1
에 포함되지 않은 요소를 사용하여 결과 집합을 만듭니다.S1 = {'first', 'second', 'third'}
S2 = {'second'}
difference(S1, S2) // = {'first', 'third'}
교차: 결과 집합을 만듭니다.
Set2
과 Set1
의 요소만 포함합니다.S1 = {'first', 'second', 'third'}
S2 = {'second', 'fourth'}
intersection(S1, S2) // = {'second'}
교차하지 않음: 두 집합의 교차가 빈 집합과 같으면 교차하지 않습니다.
S1 = {1, 2, 3}
S2 = {4, 5, 6}
areDisjoint(S1, S2) // = True
S3 = {3, 9, 10}
areDisjoint(S1, S3) // = False, because of "3"
areDisjoint(S2, S3) // = True
주어진 조건을 충족시키는 원소 집합만 가져옵니다.조건에 만족하지 않는 원소는 결과의 일부분에 속하지 않는다.
S1 = {1, 2, 3, 4, 5, 6}
numberIsEven = (number) => number % 2 === 0;
S2 = filter(S1, numberIsEven) // = {2, 4, 6}
집합 원소를 다른 원소에 비추다
S1 = {1, 2, 3, 4, 5}
S2 = map(S1, (number) => number * 9)) // = {9, 18, 27, 36, 45}
Reduce는 컬렉션을 반복하여 새 결과를 작성하는 데 사용됩니다.그것은 덧셈기와 항목을 받아들여 덧셈기에 새 값을 되돌려줍니다.
S1 = {1, 2, 3, 4, 5}
reduce (S1, (count, element) => count + element, 0) // Sum all elements, = 15
대칭차분법은 두 집합의 원소를 얻는 데 쓰이지만 두 집합의 원소는 아니다.
S1 = {1, 2, 3, 4}
S2 = {2, 4, 5, 6}
S3 = symmetricDifference(S1, S2) // = {1, 3, 5, 6}
하나의 집합이 다른 집합의 모든 원소를 포함하는지 확인하는 초집합입니다.
S1 = {1, 2, 3, 4}
S2 = {1}
isSuperset(S1, S2) // = true
S3 = {3, 4}
isSuperset(S1, S3) // = true
S4 = {3, 4, 5}
isSuperset(S1, S4) // = false
한 집합의 모든 요소가 다른 집합에 포함되는지 확인하는 서브집합입니다.
S1 = {1, 2, 3, 4}
S2 = {1}
isSubset(S2, S1) // = true
S3 = {3, 4}
isSubset(S3, S1) // = true
S4 = {3, 4, 5}
isSubset(S4, S1) // = false
찾기: 컬렉션에서 특정 구속을 충족하는 요소를 찾을 수 있습니다.
S1 = {1, 2, 3, 4, 5}
element = find(S1, n => n > 3) // = 4 or 5 (order may vary)
Every: 컬렉션의 모든 요소가 특정 구속을 충족하는지 확인합니다.
S1 = {1, 2, 3, 4, 5}
element = every(S1, n => n < 10) // = True
S1 = {1, 2, 3, 4, 5}
element = every(S1, n => n < 3) // = False, because of 4 and 5
사이즈별로 두 세트 혹은 두 세트 이상 주문할게요.제공된 집합수 크기의 원조를 되돌려줍니다.
S1 = {1, 2}
S2 = {0}
S3 = {4, 1, 2}
order(S1, S2) // (S2, S1, S3)
변경: 두 개의 집합을 비교하여 첫 번째 집합에서 삭제하거나 어떤 요소를 추가해야만 두 번째 집합과 같을 수 있는지 찾아내는 방법.
S1 = {1, 2, 3, 4, 5, 6}
S2 = {4, 5, 6, 7}
Changes(S1, S2) = ({1, 2, 3}, {7}) // Starting from S1, remove 1, 2 and 3, and add 7 to transform it to S2
피리칼 적: 두 집합을 곱해서 질서정연한 쌍을 만듭니다
S1 = {'a', 'b', 'c'}
S2 = {0, 1}
S3 = cartesianProduct(S1, S2) // = { ('a', 0), ('a', 1), ('b', 0), ('b', 1), ('c', 0), ('c', 1) }
다음 글에서 우리는 질서정연한 배합과 그 용도를 더욱 깊이 이해할 것이다.보너스
Reference
이 문제에 관하여(프로그래밍의 수학 개념 - 집합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rafaelcalpena/math-concepts-for-programming-sets-46in텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)