1. 程式人生 > >把一根木棍折成三段,求這三段能組成一個三角形的概率

把一根木棍折成三段,求這三段能組成一個三角形的概率

測試今天剛遇到的 概率 問題

一根木棍折成三段,求這三段能組成一個三角形的概率

但答案為 0.25.即下面程式碼裡的 pro

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <setjmp.h> 

static jmp_buf buf;

int main(int argc, char *argv[]) {

	float s[100] = { 0 },pro = 0; //s[100] 表示存取的數列, pro表示概率,x表示符合相加大於1.1條件的數目,y表示總共參與實驗的數目
	int x = 0, y = 0, i;
	printf("請輸入測試的數目\n");
	setjmp(buf);
	scanf_s("%d", &i);
	if (i % 2 != 0) {
		printf("請輸入偶數!\n");
		longjmp(buf, 0);
	}
	srand((unsigned)time(NULL));
	while (i > 0) {
		s[i] = rand() % 10000 * 0.0001;
		y++;
		if(i % 2 == 1)
			printf("%f,%f\n", s[i+1],s[i]);
		i--;
	}
	while (i < 100)
	{
		if (s[i] + s[++i] >= 1.1)
			x++;
		i++;
	}
	if (y != 0)
		pro = (float)x / y;
	printf("%d,%d,%f\n", x, y,pro);
	system("pause");
	return 0;
}