zoukankan      html  css  js  c++  java
  • HDU 1943 Ball bearings(简单数学问题)

    Ball bearings

    Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 40    Accepted Submission(s): 20


    Problem Description
    The Swedish company SKF makes ball bearings. As explained by Britannica Online, a ball bearing is “one of the two types of rolling, or anti friction, bearings (the other is the roller bearing).

    Its function is to connect two machine members that move relative to one another so that the frictional resistance to motion is minimal. In many applications, one of the members is a rotating shaft and the other a fixed housing. Each ball bearing has three main parts: two grooved, ring like races and a number of balls. The balls fill the space between the two races and roll with negligible friction in the grooves. The balls may be loosely restrained and separated by means of a retainer or cage.”
    Presumably, the more balls you have inside the outer ring, the smoother the ride will be, but how many can you t within the outer ring? You will be given the inner diameter of the outer ring, the diameter of the balls, and the minimum distance between neighboring balls. Your task is to compute the maximum number of balls that will t on the inside of the outer ring (all balls must touch the outer ring).
     
    Input
    The first line of input contains a positive integer n that indicates the number of test cases. Then follow n lines, each describing a test case. Each test case consists of three positive oating point numbers, D, d, s, where D is the inner diameter of the outer ring, d is the diameter of a ball, and s is the minimum distance between balls. All parameters are in the range [0.0001, 500.0].
     
    Output
    For each test case output a single integer m on a line by itself, where m is the maximum number of balls that can t in the ball bearing, given the above constraints. There will always be room for at least three balls.
     
    Sample Input
    2 20 1 0.1 100.0 13.0 0.2
     
    Sample Output
    54 20
     
    Source
     
    Recommend
    wangye
     
     
     
    这题太坑了。。。一直算错了
     
     
    角度不对
    一个的角度应该是 asin(((s+d)/2)/((D-d)/2))
     
    然后就是  2*PI除于两倍的这个角度了
     
    #include<stdio.h>
    #include<math.h>
    #include<iostream>
    using namespace std;
    //#define PI acos(-1.0)
    const double PI=acos(-1.0);
    #define eps 1e-3
    int main()
    {
    
       // freopen("in.txt","r",stdin);
      //  freopen("out.txt","w",stdout);
        int T;
        double D,d,s;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%lf%lf%lf",&D,&d,&s);
           // double tmp1=asin(d/2/(D/2-d/2));
           // double tmp2=asin(s/2/sqrt((D/2-d/2)*(D/2-d/2)-d*d/4));
           // double tt=(2*PI)/(2*tmp1+2*tmp2);
           // tt-=eps;
           // printf("%d\n",(int)(tt));
           double temp=asin((d+s)/(D-d));
           double tt=(2*PI)/(2*temp);
           printf("%d\n",(int)tt);
        }
        return 0;
    }
  • 相关阅读:
    理解AXI Quad Serial Peripheral Interface(SPI) IP核
    xilinx 高速收发器Serdes深入研究-Comma码(转)
    Zynq-PL中创建AXI Master接口IP及AXI4-Lite总线主从读写时序测试(转)
    一步一步开始FPGA逻辑设计
    万兆网调试(转)
    自定义AXI-IP核(转)
    在嵌入式设计中使用MicroBlaze(Vivado版本)(转)
    MicroBlaze核的串行接口实验:SPI UART
    Git超实用总结
    无法获取 vmci 驱动程序版本: 句柄无效
  • 原文地址:https://www.cnblogs.com/kuangbin/p/2633817.html
Copyright © 2011-2022 走看看