看板 b92902xxx 關於我們 聯絡資訊
#include <stdio.h> #define SIZE 35 #define BNMAABNMAA int #define BNMAABNMAa printf #define BNMAABNMaA if #define BNMAABNmAA return #define BNMAABNmAa else #define BNMAABNmaa case #define BNMAABnMAA break #define BNMAABnMAa for #define BNMAABnMaA void #define BNMAABnMaa unsigned #define BNMAABnmAA long #define BNMAABnmAa judgelong #define BNMAABnmaA double #define BNMAABnmaa while #define BNMAAbNMAA main #define BNMAAbNMAa continue BNMAABnMaA BNMAAbNMaA( BNMAABNMAA, BNMAABNMAA, BNMAABNMAA ); BNMAABnMaA BNMAABnmAa( BNMAABNMAA, BNMAABNMAA ); BNMAABnMaa BNMAABnmAA max( BNMAABNMAA, BNMAABNMAA, BNMAABNMAA, BNMAABNMAA ); BNMAABnMaa BNMAABnmAA C( BNMAABNMAA, BNMAABNMAA ); BNMAABnMaA BNMAAbNMaa( BNMAABnMaA ); BNMAABnmaA BNMAAbNmAA( BNMAABNMAA ); BNMAABnMaa BNMAABnmAA bnmaaBNMAA[1001][501][SIZE+1]; BNMAABnMaa BNMAABnmAA z=1000000000; BNMAABNMAA BNMAAbNMAA( BNMAABnMaA ) { BNMAABNMAA n, i, a, p, q, r; BNMAABnMAa( p=-1; ++p<=1000;) BNMAABnMAa( q=-1; ++q<=500;) BNMAABnMAa( r=-1; ++r<=SIZE;) bnmaaBNMAA[p][q][r]=0; BNMAABNMAa("Please input the number of n and i in C(n,i): "); BNMAABnmaa((scanf("%d%d", &n, &i))==2) { BNMAABNMaA( n==-1 && i==-1 ) BNMAABnMAA; BNMAABNMaA( n<i || n<0 || i<0 || n>1000 ) { BNMAABNMAa("Wrong input of n and i!\n"); BNMAABNMAa("Please input the number of n and i in C(n,i): "); BNMAAbNMAa; } BNMAABNMAa("The value of C(%d,%d) is : " , n, i); BNMAABNMaA( i>n/2 ) i = n - i; BNMAABnmAa(n,i); BNMAABNMAa( "%d", bnmaaBNMAA[n][i][ bnmaaBNMAA[n][i][0] ] ); BNMAABnMAa( a = bnmaaBNMAA[n][i][0] - 1; a >= 1; a-- ) BNMAABNMAa("%09d", bnmaaBNMAA[n][i][a]); BNMAABNMAa("\n\n"); BNMAAbNMaa(); BNMAABNMAa("Please input the number of n and i in C(n,i): "); } BNMAABNMAa("The program is terminated.\n"); BNMAABNmAA 0; } BNMAABnMaA BNMAAbNMaA( BNMAABNMAA n, BNMAABNMAA i, BNMAABNMAA a ) { BNMAABnMaa s; BNMAABNMaA( bnmaaBNMAA[n][i][a]!=0 ) BNMAABNmAA; BNMAABNMaA( a==1 ) { BNMAABNMaA( i==n || i==0 ) bnmaaBNMAA[n][i][a] = 1; BNMAABNmAa { BNMAABnmAa(n-1,i); BNMAABnmAa(n-1,i-1); BNMAABnMAa( s = a ; s<=max(n-1,i,n-1,i-1) ; s++ ) { bnmaaBNMAA[n][i][s] += (bnmaaBNMAA[n-1][i][s] + bnmaaBNMAA[n-1][i-1][s]); BNMAABNMaA( bnmaaBNMAA[n][i][s] >= z ) { bnmaaBNMAA[n][i][s+1] += bnmaaBNMAA[n][i][s]/z; bnmaaBNMAA[n][i][s] %= z; } } } } BNMAABNmAa BNMAABNMaA( i==n || i==0 ) BNMAABNmAA; BNMAABNmAa { BNMAABnmAa(n-1,i); BNMAABnmAa(n-1,i-1); BNMAABnMAa( s = a ; s<=max(n-1,i,n-1,i-1) ; s++ ) { bnmaaBNMAA[n][i][s] += (bnmaaBNMAA[n-1][i][s] + bnmaaBNMAA[n-1][i-1][s]); BNMAABNMaA( bnmaaBNMAA[n][i][s] >= z ) { bnmaaBNMAA[n][i][s+1] += bnmaaBNMAA[n][i][s]/z; bnmaaBNMAA[n][i][s] %= z; } } } } BNMAABnMaa BNMAABnmAA max( BNMAABNMAA n1, BNMAABNMAA i1, BNMAABNMAA n2, BNMAABN MAA i2 ) { BNMAABNMaA( bnmaaBNMAA[n1][i1][0]>bnmaaBNMAA[n2][i2][0] ) BNMAABNmAA bnmaaBNMAA[n1][i1][0]; BNMAABNmAa BNMAABNmAA bnmaaBNMAA[n2][i2][0]; } BNMAABnMaA BNMAABnmAa( BNMAABNMAA n, BNMAABNMAA i ) { BNMAABNMAA a; BNMAABNMaA( bnmaaBNMAA[n][i][0]!=0 ) BNMAABNmAA; BNMAAbNMaA(n,i,1); BNMAABnMAa( a = SIZE-1 ; a>=1 ; a-- ) BNMAABNMaA( bnmaaBNMAA[n][i][a]!=0 ) { bnmaaBNMAA[n][i][0] = a; BNMAABnMAA; } } BNMAABnMaa BNMAABnmAA C( BNMAABNMAA n, BNMAABNMAA i ) { BNMAABNMaA( bnmaaBNMAA[n][i][1]!=0 ) BNMAABNmAA bnmaaBNMAA[n][i][1]; BNMAABNmAa BNMAABNMaA( n==i || i==0 ) { bnmaaBNMAA[n][i][1] = 1; BNMAABNmAA C(n,i); } BNMAABNmAa { bnmaaBNMAA[n][i][1] = C(n-1,i-1) + C(n-1,i); BNMAABNmAA C(n,i); } } BNMAABnMaA BNMAAbNMaa( BNMAABnMaA ) { BNMAABNMAA value, a; BNMAABnmaA pro = 1; BNMAABNMAa("Please input the value of poker sets you want to know :\n" "(1.straight-flush 2.four-of-a-kind 3.full-house \n" " 4.flush 5.straight 6.three-of-a-kind\n" " 7.two-pairs 8.one-pair 9.highest-card )\n"); scanf("%d", &value); switch( value ) { BNMAABNmaa 1: BNMAABNMAa("\nThe probability of getting 'straight-flush' : %.20f\n\n", BNMAAb NmAA(1)); BNMAABnMAA; BNMAABNmaa 2: BNMAABNMAa("\nThe probability of getting 'four-of-a-kind' : %.20f\n\n", BNMAAb NmAA(2)); BNMAABnMAA; BNMAABNmaa 3: BNMAABNMAa("\nThe probability of getting 'full-house' : %.20f\n\n", BNMAAbNmAA (3)); BNMAABnMAA; BNMAABNmaa 4: BNMAABNMAa("\nThe probability of getting 'flush' : %.20f\n\n", BNMAAbNmAA(4)); BNMAABnMAA; BNMAABNmaa 5: BNMAABNMAa("\nThe probability of getting 'straight' : %.20f\n\n", BNMAAbNmAA(5 )); BNMAABnMAA; BNMAABNmaa 6: BNMAABNMAa("\nThe probability of getting 'three-of-a-kind' : %.20f\n\n", BNMAA bNmAA(6)); BNMAABnMAA; BNMAABNmaa 7: BNMAABNMAa("\nThe probability of getting 'two-pairs' : %.20f\n\n", BNMAAbNmAA( 7)); BNMAABnMAA; BNMAABNmaa 8: BNMAABNMAa("\nThe probability of getting 'one-pair' : %.20f\n\n", BNMAAbNmAA(8 )); BNMAABnMAA; BNMAABNmaa 9: BNMAABnMAa( a=1 ; a<=8 ; a++ ) pro -= BNMAAbNmAA(a); BNMAABNMAa("\nThe probability of getting 'highest-card' : %.20f\n\n", pro); BNMAABnMAA; default: BNMAABNMAa("\nIncorrect value entered.\n\n"); BNMAABnMAA; } } BNMAABnmaA BNMAAbNmAA( BNMAABNMAA a ) { BNMAABnmaA probability; switch( a ) { BNMAABNmaa 1: probability = (BNMAABnmaA)(C(4,1)*C(10,1))/C(52,5); BNMAABnMAA; BNMAABNmaa 2: probability = (BNMAABnmaA)(C(13,1)*C(48,1))/C(52,5); BNMAABnMAA; BNMAABNmaa 3: probability = (BNMAABnmaA)(C(13,1)*C(4,3)*C(12,1)*C(4,2))/C(52,5); BNMAABnMAA; BNMAABNmaa 4: probability = (BNMAABnmaA)(C(10,1)*(C(4,1)*C(4,1)*C(4,1)*C(4,1)*C(4,1)-4))/C(5 2,5); BNMAABnMAA; BNMAABNmaa 5: probability = (BNMAABnmaA)(C(4,1)*(C(13,5)-10))/C(52,5); BNMAABnMAA; BNMAABNmaa 6: probability = (BNMAABnmaA)(C(13,1)*C(4,3)*C(12,2)*C(4,1)*C(4,1))/C(52,5); BNMAABnMAA; BNMAABNmaa 7: probability = (BNMAABnmaA)(C(13,2)*C(4,2)*C(4,2)*C(11,1)*C(4,1))/C(52,5); BNMAABnMAA; BNMAABNmaa 8: probability = (BNMAABnmaA)(C(13,1)*C(4,2)*C(12,3)*C(4,1)*C(4,1)*C(4,1))/C(52,5 ); BNMAABnMAA; } BNMAABNmAA probability; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.170.40
babysilkwarm:.......||| 推140.112.228.214 11/11
BNMAA:好像有錯 XD 推 140.112.242.24 11/11
shadowweaver:XD ~~~~~ 推140.112.171.199 11/11
hkt:推啊 超嗨ㄉ 推 218.166.202.83 11/11
reeetingay:哇~~XD 推 140.112.30.112 11/11
amozartea:真可怕... 推 61.217.219.8 11/18