>백엔드 개발 >C++ >순열 및 조합 생성을 위한 가장 빠른 C 라이브러리는 무엇입니까?

순열 및 조합 생성을 위한 가장 빠른 C 라이브러리는 무엇입니까?

DDD
DDD원래의
2024-12-01 06:53:10256검색

What's the Fastest C   Library for Generating Permutations and Combinations?

C의 순열과 조합을 위한 라이브러리 함수

질문:

가장 중요한 것은 무엇인가요? n 세트에서 k 요소의 모든 조합과 순열을 생성하기 위해 C 라이브러리를 자주 활용했습니다. 요소?

답변:

여러 C 라이브러리는 순열과 조합을 계산하는 함수를 제공합니다. 그러나 Charles Bailey가 수행한 분석에 따르면 다음 옵션이 눈에 띕니다.

  • 솔루션 C: N2639 논문에서 파생된 이 알고리즘은 각 조합을 방문하여 효율적으로 수행됩니다. 85.3531ns.
  • 해결책 D: 참조된 솔루션의 for_each_combination 함수는 성능이 뛰어나며 단 6.62765ns 만에 각 조합을 방문하여 솔루션 C보다 12배 이상, 솔루션 B보다 9000배 이상 빠릅니다.

참고:

제공된 벤치마크는 2.8GHz Intel Core에서 수행되었습니다. i5는 clang -O3을 사용하여 한 번에 5개씩 100개 요소의 순열을 생성하는 성능을 측정했습니다(총 7,500만 개 이상의 조합 생성).

솔루션 C와 D는 솔루션 A와 유사점을 공유하지만 솔루션 A에서 무한 루프 문제가 발견되어 정확한 결과를 얻었습니다. 솔루션 D는 모든 조합을 방문하는 데 있어 Charles Bailey가 알고 있는 가장 효율적인 알고리즘으로 돋보입니다.

위 내용은 순열 및 조합 생성을 위한 가장 빠른 C 라이브러리는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.