首页 > 其他分享 >加热木棍问题

加热木棍问题

时间:2024-11-17 11:57:00浏览次数:1  
标签:lf 木棍 加热 问题 角度 l1 长度 输入

题目

当一根长度为 L 的细棒被加热 n 度时,它会膨胀到新的长度 L'=(1+nC)L,其中 C 是热膨胀系数。
当一根细棒安装在两个实心壁上然后加热时,它会膨胀并呈现出圆段的形状,原来的棒是该段的弦。

您的任务是计算杆中心位移的距离。

输入

输入包含多行。每行输入包含三个非负数:杆的初始长度(以毫米为单位)、温度变化(以度为单位)和材料的热膨胀系数。输入数据保证杆的膨胀不会超过其原始长度的一半。输入的最后一行包含三个负数,不应对其进行处理。

输出

对于每行输入,输出一行,其中杆中心的位移以毫米为单位,精度为 3 位。

样例输入

1000 100 0.0001
15000 10 0.00006
10 0 0.001
-1 -1 -1

样例输出

61.329
225.020
0.000

分析

由题意我们能知道的量为弧长l1和弦长l,我们要求中心偏移的距离d,就要找到弧长l1和弦长l怎么与中心偏移的距离d产生联系.

如图,我们发现只要找出角度就能间接求出d
image
image
我们发现角度不能直接求出,但是有一条关于角度的关系式,于是我们可以想到二分的方法来近似出角度的大小

代码

点击查看代码
#include<stdio.h>
#include<math.h>
#define pi 3.1415926535897932384626433832

int main()
{
    double l,n,c,l1;
    while(1)
    {scanf("%lf %lf %lf",&l,&n,&c);
        if(l<0&&n<0&&c<0){break;}
        l1=(1+n*c)*l;
        double left=0,right=pi,mid;
        while(right-left>1e-12)
        {
            mid=(left+right)/2.0;
            if(l<2*l1*sin(mid/2)/mid)
            {
                left=mid;
            }else
            {
                right=mid;
            }

        }
        printf("%.3lf\n",l1/mid*(1-cos(mid/2)));
    }
    return 0;
}

这个排版有点bug

标签:lf,木棍,加热,问题,角度,l1,长度,输入
From: https://www.cnblogs.com/butaihuia/p/18550399

相关文章

  • python爬虫爬取网页中文乱码问题的解决
    一:遇到的问题1.代码点击查看代码importrequestsifname=='main':#指定URLurl='https://xxxxxx'#发送请求1.page_text=requests.get(url,headers=headers).text#打印print(page_text)2.返回的网页内容点击查看代码#省略的代码第ä¸å·宴æ¡......
  • @Transactional事务注解与函数内多线程并发编程出现的问题
    @Transactional当@Transactional注解写在函数上之后,就表示这个函数开启了事务。事务是基于数据库连接的connect。parallelStream这是针对List进行多线程Stream的操作。//对list集合开启多线程操作list.parallelStream().forEach(item->{//业务代码})@Transactional和pa......
  • Java 中常见的三类线程安全问题:解决方案与实例分析
    在Java并发编程中,线程安全是一个非常重要的概念。如果多个线程同时访问一个共享资源而不进行适当的同步,就会出现线程安全问题,导致程序行为异常。根据不同的场景,线程安全问题可以分为运行结果错误、发布和初始化导致的线程安全问题和活跃性问题。本文将详细探讨这三类线程......
  • 2024年数维杯数学建模竞赛 问题D:城市韧性和可持续发展能力的评估 问题一 思路和代码
    所有数学建模竞赛思路和代码都会发布到专栏内,只需订阅一次,不需要每次都订阅,专栏内包含35个经典模型案例和历年优秀论文。不代写论文,内容可能达不到预期,请勿盲目订阅!!!更多详细思路请订阅专栏:https://blog.csdn.net/m0_52343631/category_12482955.htmlhttps://blog.csdn.net/m0......
  • 2024年数维杯数学建模竞赛 B题:空间变量的协同估计方法研究 问题二 详细思路和代码
    问题2:利用附件1中的数据研究目标变量与协同变量之间的相关性。选择两个协同变量作为目标变量的估计协同变量。目录步骤概述:具体步骤和代码实现:1.加载数据2.探索性数据分析(EDA)3.计算相关性4.选择协同变量5.建......
  • 动态规划-背包问题——[模版]完全背包问题
    1.题目解析题目来源[模版]完全背包_牛客题霸_牛客测试用例 2.算法原理1.状态表示与01背包相同,这里的完全背包也是需要一个二维dp表来表示最大价值,具体如下求最大价值dp[i][j]:在[1,i]区间选择物品,此时总体积不大于j时的最大价值求装满时的价值dp[i][j]:在[......
  • Spring注解@Transactional事务使用问题
    同步数据需要分批操作,每次同步1000条,都需要提交事务@ServicepublicclassMyService{@AutowiredprivateMyServiceself;//注意使用自身代理对象来触发事务//循环调用此方法@Transactional(propagation=Propagation.REQUIRES_NEW)publicvoid......
  • 关于HDFS路径文件夹名称的问题
    问题发现​ 最开始的需求:修改/origin_data/gmall/db目录下所有以inc结尾的文件夹里的文件夹(名称为2024-11-15)修改为2020-6-14问gpt写了个脚本:#!/bin/bash#遍历/origin_data/gmall/db下所有以"inc"结尾的文件夹fordirin$(hdfsdfs-ls/origin_data/gmall/db|grep......
  • 汉诺塔问题自己的理解
    #include<stdio.h>voidmove(charA,charB){   intstaticcount=1;   这个是拿来计算移动次数的   printf("%d",count);   printf("%c-->%c\n",A,B);   count++;}voidhanno(intn,charA,charB,charC){   if(n==1)     ......
  • springboot3整合mybatisplus问题Invalid value type for attribute 'factoryBeanObjec
    版本说明:JDK版本:17springboot版本:3.3.5问题分析:springboot版本与mybatisplus版本不兼容解决办法:将mybatisplus版本替换为以下版本<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>......