作者imalive (一顆小玉)
看板b92902xxx
標題[閒聊] 傳說中的香蕉程式碼
時間Tue Nov 11 00:29:32 2003
#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