[이 편 은 코드 가 포함 되 어 있 지 않 음] 왜 모 함수 가 있 습 니까?모 함수 로 밍 과 문제 풀이 의 사고.

오늘 모 함 수 를 보 았 는데 잘 모 르 겠 어 요.다시 보 니 좀 아 는 것 같다.우선, 그들의 문 제 는 모두 차이 가 많 지 않다. 종 류 를 구하 고 방안 을 구 하 며 몇 푼 의 동전 이 몇 개 있 는 지 등 이다.       
먼저 모 함 수 는 종 류 를 구 하 는 데 쓰 인 다 는 것 을 알 아야 한다. 그것 은 다항식 전개 의 법칙 을 교묘 하 게 운용 하 였 는데 본질은 다항식 의 곱셈 이다.
우선, 일반적인 상황 을 던 져 실용성 (1 + x) ^ n 부터 볼 때, 그것 의 전개 식 은 공교롭게도 c (n, 1) x + c (n, 2) x ^ 2 +... + c (n, n) x ^ n 으로 계수 가 방안 수 를 대표 한다.일이 이렇게 간단 하 다.이 공식 적 인 전개 식 으로 구 성 된 G (X) 가 바로 모 함수 다.
공식 정의: (회색 번 거 로 움) (1 + x) n 은 서열 C (n, 0), C (n, 1),..., C (n, n) 의 모 함수 입 니 다.       만약 알 고 있 는 서열 a0, a1, a2,... 에 대응 하 는 모 함수 G (x) 는 정의 에 따라 제 시 될 수 있 습 니 다. 반대로 이미 서열 을 구 한 모 함수 G (x) 는 이 서열 도 이에 따라 확 정 됩 니 다.       시퀀스 a0, a1, a2, {an} 으로 기록 할 수 있 습 니 다.
예 를 들 어 설명 한다. 예 를 들 어 대상 은 보통 분동 군, 작은 공 군, 동전 군 등 이 서로 다른 품질 이나 등급 으로 나 눌 수 있 고 조합 에서 온 것 을 사용 할 수 있다.
예 를 들 어 1 개 1 점, 1 개 2 점, 1 개 3 점, 1 개 4 점 은 1 + x, 1 + x ^ 2, 1 + x ^ 3, 1 + x ^ 4 로 나 타 낼 수 있다.
정 수 를 몇 개의 정수 로 나 누 는 합 은 방법 이 다 르 고 서로 다른 분해 법의 총 수 를 분해 점수 라 고 한다.
다음 에 자기 이해 대로 연습 두 개 써 요. 맞 는 지 모 르 겠 어 요...............................................................
예: 분동 1 그램 3 개, 분동 2 그램 4 개, 분동 4 그램 2 개가 있 으 면 몇 가지 무 게 를 달 수 있 습 니까? 각각 몇 가지 방안 이 있 습 니까? 답: 원시 식 득 (1 + x + x ^ 2 + x ^ 3) (1 + x ^ 2 + x ^ 4 + x ^ 6 + x ^ 8) (1 + x ^ 4 + x ^ 8), 기 존 결 과 를 펼 칩 니 다.
예: 정수 n 을 1, 2, 3,.
예: 상기 예 에서 m 가 적어도 한 번 나타 나 면 그 모 함 수 는 어 떻 습 니까? 이것 을 오래 보 았 는데 최종 적 으로 답 은 위의 그 결 과 를 1 / (1 - x) (1 - x ^ 2) (1 - x ^ 3)... (1 - x ^ m - 1) 의 분 모 를 하나 더 줄 였 습 니 다 (1 - x ^ (m - 1)...
결론 은 모 르 겠 어 요. 어차피 종류 수 를 구 할 수 있 으 니까... = =
프로 그래 밍 방법 과 어 려 운 점 은 여러 가지 식 을 전개 하 는 것 입 니 다. 속도 관찰 중 입 니 다. 이상 은 순수 수학 부분 입 니 다. 이해 실수 가 있 으 면 반드시 제때에 지적 해 주 십시오.
가짜 코드 하나, 여전히 개인 적 인 이해 자신 이 수학 을 정말 못 배 운 것 같 아, MD...:
#include <iostream>
using namespace std;
int      1,     2;
int main(){		
	while (cin>>n)	
	{	
		   c1 1;
		for (i=2;i<=n;i++)		
		{	
		for (j=0;j<=n;j++)				
			for (k=0;k+j<=n;k+=i)//      				 
			{  c2[j+k]+=c1[j];  }			
			for (j=0;j<=n;j++)			
			{  c1[j]=c2[j];	c2[j]=0;  }		
			}		
			cout<<c1[n]<<endl;	}	
	return 0;
}
   

좋은 웹페이지 즐겨찾기