728x90
반응형
728x170
▶ 조합 구하기 예제
using System;
long combination = GetCombination(3, 2);
Console.WriteLine(combination);
728x90
▶ 조합 구하기
#region 조합 구하기 - GetCombination(totalCount, extractionCount)
/// <summary>
/// 조합 구하기
/// </summary>
/// <param name="totalCount">전체 수</param>
/// <param name="extractionCount">추출 수</param>
/// <returns>조합</returns>
public long GetCombination(int totalCount, int extractionCount)
{
return GetPermutation(totalCount, extractionCount) / GetFactorial(extractionCount);
}
#endregion
#region 팩토리얼 분할 구하기 - GetFactorialDivision(topFactorial, divisorFactorial)
/// <summary>
/// 팩토리얼 분할 구하기
/// </summary>
/// <param name="topFactorial">상위 팩토리얼</param>
/// <param name="divisorFactorial">제수 팩토리얼</param>
/// <returns>팩토리얼 분할</returns>
private long GetFactorialDivision(int topFactorial, int divisorFactorial)
{
long result = 1;
for(int i = topFactorial; i > divisorFactorial; i--)
{
result *= i;
}
return result;
}
#endregion
#region 순열 구하기 - GetPermutation(totalCount, extractionCount)
/// <summary>
/// 순열 구하기
/// </summary>
/// <param name="totalCount">전체 수</param>
/// <param name="extractionCount">추출 수</param>
/// <returns>순열</returns>
private long GetPermutation(int totalCount, int extractionCount)
{
return GetFactorialDivision(totalCount, totalCount - extractionCount);
}
#endregion
#region 팩토리얼 구하기 - GetFactorial(int i)
/// <summary>
/// 팩토리얼 구하기
/// </summary>
/// <param name="value">값</param>
/// <returns>팩토리얼</returns>
private long GetFactorial(int value)
{
if(value <= 1)
{
return 1;
}
return value * GetFactorial(value - 1);
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 섭씨/화씨 구하기 (0) | 2021.08.21 |
---|---|
[C#/COMMON] DateTime 구조체 : 두 날짜 사이에서 개월 수 구하기 (0) | 2021.08.21 |
[C#/COMMON] Enum 클래스 : GetNames 정적 메소드를 사용해 열거형 크기 구하기 (0) | 2021.08.21 |
[C#/COMMON] 회문(Palindrome) 여부 구하기 (0) | 2021.08.21 |
[C#/COMMON] Socket 클래스 : 연결시 타임아웃 처리하기 (0) | 2021.08.21 |
[C#/COMMON] 순열 구하기 (0) | 2021.08.21 |
[C#/COMMON] ResourceManager 클래스 : GetString 메소드를 사용해 리소스 문자열 구하기 (0) | 2021.08.21 |
[C#/COMMON] TimeZoneInfo 클래스 : GetUtcOffset 메소드를 사용해 시간대 오프셋 구하기 (0) | 2021.08.21 |
[C#/COMMON] Process 클래스 : 자식 프로세스를 포함해 프로세스 죽이기 (0) | 2021.08.21 |
[C#/COMMON] Path 클래스 : GetInvalidFileNameChars 정적 메소드를 사용해 부적절한 파일명 문자 제거하기 (0) | 2021.08.21 |
댓글을 달아 주세요