TJU Problem 1100 Pi
注:
1. 对于double计算,一定要小心,必要时把与double计算相关的所有都变成double型。
2. for (int i = 0; i < N; i++) //N 不可写为N - 1,否则当N为1时无法进行;
原题:
1100. Pi
Time Limit: 1.0 Seconds Memory Limit: 65536K
Total Runs: 5683 Accepted Runs: 2317
Computer Science Department at the University of Aston in Birmingham, England
has recently described how the positions of stars across the night sky may be
used to deduce a surprisingly accurate value of π. This result followed from the
application of certain theorems in number theory.
Here, we don't have the night sky, but can use the same theoretical basis to
form an estimate for π:
Given any pair of whole numbers chosen from a large, random collection of
numbers, the probability that the two numbers have no common factor other than
one (1) is

For example, using the small collection of numbers: 2, 3, 4, 5, 6;
there are 10 pairs that can be formed: (2,3), (2,4), etc. Six of the 10 pairs:
(2,3), (2,5), (3,4), (3,5), (4,5) and (5,6) have no common factor other than
one. Using the ratio of the counts as the probability we have:

In this problem, you'll receive a series of data sets. Each data set contains
a set of pseudo-random positive integers. For each data set, find the portion of
the pairs which may be formed that have no common factor other than one (1), and
use the method illustrated above to obtain an estimate for π. Report this
estimate for each data set.
Input
The input consists of a series of data sets.
The first line of each data set contains a positive integer value, N, greater
than one (1) and less than 50.
There is one positive integer per line for the next N lines that constitute
the set for which the pairs are to be examined. These integers are each greater
than 0 and less than 32768.
Each integer of the input stream has its first digit as the first character
on the input line.
The set size designator, N, will be zero to indicate the end of data.
Output
A line with a single real value is to be emitted for
each input data set encountered. This value is the estimate for π for the data
set. An output format like the sample below should be used. Answers must be
rounded to six digits after the decimal point.
For some data sets, it may be impossible to estimate a value for π. This
occurs when there are no pairs without common factors. In these cases,
emit the single-line message:
No estimate for this data set.
exactly, starting with the first character, "N", as the first character on
the line.
Sample Input
5
2
3
4
5
6
2
13
39
0
Sample Output
3.162278
No estimate for this data set.
Source: East Central
North America 1995
源代码:
#include <iostream>
#include <iomanip>
#include <cmath>
#include <stdio.h>
using namespace std; int num[]; int gcd(int a, int b) {
return b == ? a : gcd(b, a % b);
} int main()
{
int N;
while (cin >> N && N != ) {
int count = ; double sum = ;
for (int i = ; i < N; i++) cin >> num[i];
for (int i = ; i < N; i++) //N 不可写为N - 1,否则当N为1时无法进行;
for (int j = i + ; j < N; j++) {
int m = num[i], n = num[j];
if (gcd(m, n) == )
{
count++;
}
}
sum = N * (N - ) / ;
if (count != ) {
double res = sqrt( * sum / count);
printf("%.6f\n",res);
//cout << fixed << setprecision(6) << res << endl;
}
else cout << "No estimate for this data set." << endl;
}
return ;
}
TJU Problem 1100 Pi的更多相关文章
- TJU Problem 2101 Bullseye
注意代码中: result1 << " to " << result2 << ", PLAYER 1 WINS."<& ...
- TJU Problem 2548 Celebrity jeopardy
下次不要被长题目吓到,其实不一定难. 先看输入输出,再揣测题意. 原文: 2548. Celebrity jeopardy Time Limit: 1.0 Seconds Memory Lim ...
- TJU Problem 2857 Digit Sorting
原题: 2857. Digit Sorting Time Limit: 1.0 Seconds Memory Limit: 65536KTotal Runs: 3234 Accepted ...
- TJU Problem 1015 Gridland
最重要的是找规律. 下面是引用 http://blog.sina.com.cn/s/blog_4dc813b20100snyv.html 的讲解: 做这题时,千万不要被那个图给吓着了,其实这题就是道简 ...
- TJU Problem 1065 Factorial
注意数据范围,十位数以上就可以考虑long long 了,断点调试也十分重要. 原题: 1065. Factorial Time Limit: 1.0 Seconds Memory Limit ...
- TJU Problem 2520 Quicksum
注意: for (int i = 1; i <= aaa.length(); i++) 其中是“ i <= ",注意等号. 原题: 2520. Quicksum Time L ...
- TJU Problem 1090 City hall
注:对于每一横行的数据读取,一定小心不要用int型,而应该是char型或string型. 原题: 1090. City hall Time Limit: 1.0 Seconds Memory ...
- TJU Problem 1644 Reverse Text
注意: int N; cin >> N; cin.ignore(); 同于 int N; scanf("%d\n",&N); 另:关于 cin 与 scanf: ...
- Light oj 1100 - Again Array Queries (鸽巢原理+暴力)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1100 给你n个数,数的范围是1~1000,给你q个询问,每个询问问你l到r之间 ...
随机推荐
- PHPStorm默认在新窗口打开
这个设置很实用.
- Codeforces 834D - The Bakery(dp+线段树)
834D - The Bakery 思路:dp[i][j]表示到第j个数为止分成i段的最大总和值. dp[i][j]=max{dp[i-1][x]+c(x+1,j)(i-1≤x≤j-1)},c(x+1 ...
- Java下载https文件上传到阿里云oss服务器
Java下载https文件上传到阿里云oss服务器 今天做了一个从Https链接中下载音频并且上传到OSS服务器,记录一下希望大家也少走弯路. 一共两个类: 1 .实现自己的证书信任管理器类 /** ...
- 读CSV转换datatable
using System.Data; using System.IO; /// <summary> /// Stream读取.csv文件 /// </summary> // ...
- Win7 默认.lnk打开方式全是别的程序 还原的办法
Xu言: no zuo no die~ 今天,一个朋友问我,他电脑桌面上点任何东西都是提示下载... - -||| 本以为是中毒了,然后上去看了一眼..发现他自己把所有.lnk 的默认打开方式选择了搜 ...
- LeetCode--070--爬楼梯
problem description: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 ...
- Jersey 2.x 前言和约定的文本格式
这是Jersey 2.x 的用户指南.我们极力将它能与我们新增的功能保持一致.当阅读本指南,作为补充,也请移步至Jersey API documentation查看 Jersey 的特性和 API. ...
- JS-构造函数2
一.如何创建对象 1.对象字面量 var obj1={ name:"吻别", singer:"张学友", type:"流行" } 2.构造函 ...
- CentOS7 Install Docker(转)
https://linux.cn/article-4340-1.html CentOS 7 中 Docker 的安装 Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想 ...
- 连接ACCESS
access2000-2003数据库连接字符串: ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库名.mdb"; ...