Example #1
0
File: main.cpp Project: CCJY/coliru
int circumscribed(int radius){
    float xcoord = frand();
    float ycoord = frand(); 
    float coord = sqr2(xcoord) + sqr2(ycoord);

    if(coord <= radius)
        return 1;
    return -1;      
}
Example #2
0
RR orderstats(const vector<double>& binomCoeff, vector<double>& sigs){
	int numLayers = sigs.size();
	//First we sort them
	double tmp;
	bool changed = true;
	while(changed){
		changed = false;
		for(int i=0; i<numLayers-1; i++){
			if(sigs[i]<sigs[i+1]){
				tmp = sigs[i];
				sigs[i]  = sigs[i+1];
				sigs[i+1] = tmp;
				changed = true;
			}
		}
	}


	vector<RR> ordersigs;
	RR sqr2(2);
	sqr2 = sqrt(sqr2);

	ordersigs.resize(numLayers);
	try{
		for(int i=0; i<numLayers; i++){
			ordersigs[i] = sigs[i];
			ordersigs[i] = RR(0.5) * erfc(ordersigs[i] / sqr2);	//We find the cumulative distribution of each
		}
	}catch(const std::exception& e)
	{
		std::cout << "\n""Message from thrown exception was:\n   " << e.what() << std::endl;
	}
	
	for(int i=0; i<numLayers; i++){
		RR sum(0.0);
		for(int j= i+1; j<=numLayers; j++){
			sum += RR(binomCoeff[j]) * pow(ordersigs[i], j) * pow(1.0-ordersigs[i],numLayers-j);
		}
		ordersigs[i] = sum;
	}
	int min = 0;
	for(int i=1; i<numLayers; i++){
		if(ordersigs[i] < ordersigs[min]){
			min = i;
		}
	}
	return ordersigs[min];
}