碰撞圆周率_我让你背一遍圆周率

碰撞圆周率_我让你背一遍圆周率#include”stdafx.h”#include<iostream>//碰撞后速度voidtxpz(doublem1,doublem2,double&v1,double&v2){ doublev1_=((m1-m2)*v1+2*m2*v2)/(m1+m2); doublev2_=((m2…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺


#include "stdafx.h"
#include <iostream>

// 碰撞后速度
void txpz(double m1, double m2, double & v1,  double & v2)
{
	double v1_ = ((m1-m2)* v1 + 2 * m2 * v2) / (m1 + m2);
	double v2_ = ((m2-m1) * v2 + 2 * m1 * v1) / (m1 +m2);

	v1 = v1_;
	v2 = v2_;
}

// 完全弹性碰撞( 返回碰撞次数 )
int cishu(double m1, double m2) 
{
	double v1 = -1.0;
	double v2 = 0;
	int nTime = 0;
	while (true) {
		if ((v1 >= 0) && (v2 < v1)) 
		{
			break;
		}

		txpz(m1, m2, v1, v2);
		nTime ++;

		if (v2 < 0)
		{
			v2 = -v2;
			nTime ++;
		}
	}
	using namespace std;
	cout<<m1<< "\t"<<m2<< "\t"<< nTime<<endl;
	return nTime;
}

int main()
{
	for (int i = 1; i < 8; i ++)
	{
		cishu(pow(100,i) * 1.0, 1.0);
	}
	
    return 0;
}

看一下一个有趣的代码

// 下面再放一份LUA版本

function txpz(t)
    local m1 = t.m1
    local m2 = t.m2
    local v1 = t.v1
    local v2 = t.v2

	t.v1 = ((m1-m2) * v1 + 2 * m2 * v2) / (m1 + m2);
	t.v2 = ((m2-m1) * v2 + 2 * m1 * v1) / (m1 + m2);
end

function cishu(t)
	t.v1 = -1.0;
	t.v2 = 0;
	local nTime = 0;
	while true do
		if t.v1 >= 0 and t.v2 < t.v1 then
			break;
        end

		txpz(t);
		nTime = nTime + 1;

		if t.v2 < 0 then
			t.v2 = -t.v2;
            nTime = nTime + 1;
        end
	end
	return nTime;
end

print(cishu{m1 = 1.0, m2 = 1.0})
print(cishu{m1 = 100.0, m2 = 1.0})
print(cishu{m1 = 10000.0, m2 = 1.0})
print(cishu{m1 = 1000000.0, m2 = 1.0})
print(cishu{m1 = 100000000.0, m2 = 1.0})
print(cishu{m1 = 100000000.0, m2 = 0.01})
print(cishu{m1 = 100000000.0, m2 = 0.0001})
print(cishu{m1 = 100000000.0, m2 = 0.000001})

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197730.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ant power什么意思_ANT+是什么意思[通俗易懂]

    展开全部ANT+是个在运动设备中进行低功耗636f70793231313335323631343130323136353331333366306563数据传输的领导标准。ANT+是在ANT传输协议上的超低功耗版本,它是为健康、训练和运动专门开发的。ANT组织是一个开放的专门国际组织他们一起工作开发ANT无线协议,ANT无线是Dynastream的一个子部门,由Garmin拥有。该协议专门针对运动装…

    2022年4月6日
    54
  • Excel VBA编程

    Excel VBA编程文章目录如何创建VBAVBA语法规则声明变量给变量赋值让变量存储的数据参与运算关于声明变量的其他知识变量的作用域特殊的变量——数组声明多维数组声明动态数组其他创建数组的方法数组函数利用UBound求数组的最大索引号利用LBound函数求最小索引号求多维数组的最大和最小索引号用join函数将一维数组合并成字符串将数组内容写入工作表中数组的存取特殊数据的专用容器——常量对象,集合及对象的属性和方法VB…

    2022年4月28日
    78
  • CSS3 opacity 属性介绍

    CSS3 opacity 属性介绍CSS3opacity属性定义和用法opacity属性设置元素的不透明级别。默认值: 1 继承性: no 版本: CSS3 JavaScript语法: object.style.opacity=0.5 语法opacity:value|inherit;值 描述 value 规定不透明度。从0.0(完全透明)到…

    2022年5月26日
    16
  • QMap容器小知识

    QMap容器小知识1便捷的遍历方法示例QMap&lt;QString,int&gt;map;…foreach(intvalue,map)cout&lt;&lt;value&lt;&lt;endl;2判断是否包含某个字段接口boolcontains(constKey&amp;key)const3获取指定字段的值,没有则给与默认值接口co…

    2022年5月30日
    39
  • 怎么新建pytest的ini文件_python读取ini配置文件

    怎么新建pytest的ini文件_python读取ini配置文件前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行查看pytest.ini的配置选项pytest-h找到以下

    2022年7月29日
    3
  • python画数据图_python数据分析库

    python画数据图_python数据分析库之前学习了matplotlib.pyplot函数的使用方法,今天研究一下新工具pylab:pylab是matplotlib面向对象绘图库的一个接口,它的语法和Matlab十分相近,主要的绘图命令和Matlab对应的命令有相似的参数。简单的实例:frompylabimport*X=np.linspace(-np.pi,np.pi,256,endpoint=Tru

    2025年5月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号