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

碰撞圆周率_我让你背一遍圆周率#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})

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • LoadRunner教程(16)-LoadRunner SLA分析「建议收藏」

    LoadRunner教程(16)-LoadRunner SLA分析「建议收藏」SLA(servicelevelagreement,服务水平协议)可在性能测试过程中,定义性能测试的目标和度量性能,在性能测试过程中LR会收集和保存性能的相关数据,在分析运行结果时,分析器分将收集的数据与SLA中定义的度量数据进行比较,并将分析结果显示在分析器中,SLA三种状态分别是:a.pass:表示SLA获得该项测试数据,并且该数据达到目标要求;b.fail:表示SLA获得该项测试数据,但…

  • Qt中的QFile读写文件操作

    Qt中的QFile读写文件操作1.首先记录一下QString,QByteArray,char*之间的转换(1)QString-&amp;gt;QByteArrayQStringbuf=&quot;123&quot;;QByteArraya=buf.toUtf8();//中文a=buf.toLocal8Bit();//本地编码(2)QByteArray-&amp;gt;char*char*b=a.data…

  • javascript页面刷新的几种方法[通俗易懂]

    javascript页面刷新的几种方法[通俗易懂]javascript页面刷新的几种方法javascriptrefreshpage几种页面刷新的方法window.location.reload(),window.history.go(0)和document.execCommand(”Refresh”),这三个方法是最快速的。其他的都有明显的浏览器滚动条的出现。Javascript刷新页面的几种方法: 1

  • Redis实战之Redis命令

    Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为string(字符串),list(列表),set(集合),hash(散列),zset(有序集合),下面将分别对这5种数据类

    2021年12月29日
  • mysql h2_h2初始化数据库

    mysql h2_h2初始化数据库H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。一、引入Maven依赖在maven中定义H2数据库的版本属性1.3.172添加H2依赖com.h2databaseh2${h2.version}test二、运行方式1、在内存中…

    2022年10月10日
  • Gstreamer中加入�x265编解码器

    Gstreamer中加入�x265编解码器

发表回复

您的电子邮箱地址不会被公开。

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