zoukankan      html  css  js  c++  java
  • ZOJ 3793 First Digit (逗比题)

    Benford's Law, also called the First-Digit Law, refers to the frequency distribution of digits in many (but not all) real-life sources of data. In this distribution, the number 1 occurs as the leading digit about 30% of the time, while larger numbers occur in that position less frequently: 9 as the first digit less than 5% of the time. Benford's Law also concerns the expected distribution for digits beyond the first, which approach a uniform distribution.

    This result has been found to apply to a wide variety of data sets, including electricity bills, street addresses, stock prices, population numbers, death rates, lengths of rivers, physical and mathematical constants, and processes described by power laws (which are very common in nature). It tends to be most accurate when values are distributed across multiple orders of magnitude.

    A set of numbers is said to satisfy Benford's Law if the leading digit d ∈ {1, ..., 9} occurs with probability P(d) = log10(d + 1) - log10(d). Numerically, the leading digits have the following distribution in Benford's Law:

    d 1 2 3 4 5 6 7 8 9
    P(d) 30.1% 17.6% 12.5% 9.7% 7.9% 6.7% 5.8% 5.1% 4.6%

    Now your task is to predict the first digit of be, while b and e are two random integer generated by discrete uniform distribution in [1, 1000]. Your accuracy rate should be greater than or equal to 25% but less than 60%.This is not a school exam, and high accuracy rate makes you fail in this task. Good luck!

    Input

    There are multiple test cases. The first line of input contains an integer T (about 10000) indicating the number of test cases. For each test case:

    There are two integers b and e (1 <= b, e <= 1000).

    Output

    For each test case, output the predicted first digit. Your accuracy rate should be greater than or equal to 25% but less than 60%.

    Sample Input

    20
    206 774
    133 931
    420 238
    398 872
    277 137
    717 399
    820 754
    997 463
    77 791
    295 345
    375 501
    102 666
    95 172
    462 893
    509 839
    20 315
    418 71
    644 498
    508 459
    358 767
    

    Sample Output

    8
    2
    2
    1
    4
    2
    1
    2
    1
    1
    4
    6
    2
    4
    9
    7
    2
    7
    1
    7
    

    Hint

    The actual first digits of the sample are 8, 2, 2, 1, 4, 2, 1, 2, 1, 1, 3, 5, 1, 3, 8, 6, 1, 6, 9 and 6 respectively. The sample output gets the first 10 cases right, so it has an accuracy rate of 50%.


    本福特定律,也称为本福德法则,说明一堆从实际生活得出的数据中,以1为首位数字的数的出现机率约为总数的三成,接近期望值1/9的3倍。推广来说,越大的数,以它为首几位的数出现的机率就越低。——维基百科

    好神奇的东西,我又孤陋寡闻了。

    根据输入信息输出得到的数的首位数字,要求准确率在25%到60%间。。

    由于是随机的数据,首位是1的概率是30.1%,全部输出1就行了 >_<


    #include<iostream>
    using namespace std;
    int main()
    {
    int n;
    cin>>n;
    while(n--)cout<<1<<endl;
    return 0;
    }



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    c语言求最大公约数和最小公倍数(转)
    git 提交去除每次输账号密码
    phpstorm使用zen coding 快速编辑补全html/css代码
    YII2.0使用ActiveForm表单(转)
    php面向对象之trait
    php操作redis(转)
    模块
    列表生成式 与生成器表达式
    三元表达式,递归,内置函数
    面向过程的编程思想
  • 原文地址:https://www.cnblogs.com/DSChan/p/4861990.html
Copyright © 2011-2022 走看看