Barnes-Hut算法是一种用于实现N体问题(n-body)模拟的近似算法,该算法由Josh Barnes 和 Piet Hut在1986年提出(可以参加文献【3】)。N体问题是指找出已知初始位置、速度和质量的多个物体在经典力学情况下的后续运动。庞加莱(Henri Poincaré)在研究N体问题时,发现了混沌现象。

欢迎关注白马负金羁的博客 http://blog.csdn.net/baimafujinji,为保证公式、图表得以正确显示,强烈建议你从该地址上查看原版博文。本博客主要关注方向包括:数字图像处理、算法设计与分析、数据结构、机器学习、数据挖掘、统计分析方法、自然语言处理。


算法介绍

因为N体问题是一种混沌现象,物体未来的运动状态是没有规律可言的,所以N体模拟只能采用Brute Force的策略。一种提升N体问题模拟算法的速度,一种非常重要的思想就是把相互接近的一组物体近似看成单独的一个物体。对于一组距离足够远的物体,我们可以将它的万有引力作用近似看成是其质心的作用。一组物体的质心是这种物体经过质量加权后的平均位置。更正式地说,如果两个物体的位置分别是(

Barnes-Hut算法(quad-tree的一个应用)相关推荐

  1. 用Python实现四叉树(quad tree)

    前言 最近要使用四叉树(quad tree)来实现自适应分块,于是自己用Python实现了. 实现出来的效果如下: 算法思想 不断地对图像矩阵进行四分块,直到每个分块中的abs(最大灰度值max-最小 ...

  2. 427. Construct Quad Tree

    1,题目要求 We want to use quad trees to store an N x N boolean grid. Each cell in the grid can only be t ...

  3. 【LeetCode】427. Construct Quad Tree 建立四叉树

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  4. python实现雪花动态图_如何通过雪花算法用Python实现一个简单的发号器

    实现一个简单的发号器 根据snowflake算法的原理实现一个简单的发号器,产生不重复.自增的id. 1.snowflake算法的简单描述 这里的snowflake算法是用二进制的,有64位.其中41 ...

  5. 在一个请求分页系统中,分别采用 FIFO、LRU和 OPT页面置换算法时,假如一个作业的页面走向为 4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为 3、4时,

    页面置换算法 题目: 在一个请求分页系统中,分别采用 FIFO.LRU和 OPT页面置换算法时,假如一个作业的页面走向为 4.3.2.1.4.3.5.4.3.2.1.5,当分配给该作业的物理块数M分别 ...

  6. 点在多边形内算法,JS判断一个点是否在一个复杂多边形的内部

    点在多边形内算法,JS判断一个点是否在一个复杂多边形的内部: function isInPolygon(checkPoint, polygonPoints) {var counter = 0;var ...

  7. 通过雪花(snowflake)算法用Python实现一个简单的发号器

    实现一个简单的发号器 根据snowflake算法的原理实现一个简单的发号器,产生不重复.自增的id. 1.snowflake算法的简单描述 这里的snowflake算法是用二进制的,有64位.其中41 ...

  8. 【左程云Java算法】Chapter1-5:用一个栈实现另一个栈的排序

    [左程云Java算法]Chapter1-5:用一个栈实现另一个栈的排序 [题目] 用一个栈实现另一个栈的排序 [要求] 一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个 ...

  9. 典型的Top K算法_找出一个数组里面前K个最大数

    原文 典型的Top K算法_找出一个数组里面前K个最大数...或找出1亿个浮点数中最大的10000个...一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入 ...

  10. dfs、bfs时候染色算法和直接传一个visited两种方法

    以695. 岛屿的最大面积为例: 在图的遍历中,如果不加任何约束,DFS和BFS一定会遍历到重复节点,解决这个问题的一个方法就是在函数外定义一个visited=set(),然后每次遍历的时候把未在vi ...

最新文章

  1. Seaborn使用lmplot函数可视化散点图并添加回归曲线以及回归线对应的置信区间(Scatter plot with regression line)
  2. 计算机硬件大型作业报告,计算机硬件技术大作业报告.doc
  3. [BUUCTF-pwn]——not_the_same_3dsctf_2016
  4. net读取exchange数据
  5. Spark Structured : java.lang.RuntimeException: Offsets committed out of order: 2 followed by 0
  6. 2021年中国大屏幕拼接系统市场趋势报告、技术动态创新及2027年市场预测
  7. Unix 消亡史,Linux 如何崛起 | 极客头条
  8. 如何退出scala命令界面和scala常用命令
  9. Darknet网络模型结构可视化
  10. 用友ERP-供应链1-模块及价值
  11. 国际上炒黄金平台有哪些
  12. android11 root、android10 root、android9 root、android8.1 root、android6.0 root user版本权限开放
  13. android经纬度查询,Android - 经纬度获取
  14. CImageList::GetImageInfo取到的bitmap不能用
  15. 3d Max人物动画学习笔记(二)蒙皮
  16. java panel 左对齐,JPanel左对齐
  17. 2020数学建模国赛(B题)总结
  18. 基于LM324四运放的复合信号发生器(17年电赛国赛题)
  19. linux下通过串口ftp,eftp简单文件传输工具支持串口、网络、Windows、Linux、单片机平台-博客...
  20. 转载酷壳-技术人员的发展之路

热门文章

  1. 小明酱的算法实习生面试准备
  2. 海尔简爱s11装Linux,海尔简爱S11笔记本U盘安装win7系统的操作教程
  3. 汉威大厦中智公积金_中智租房支取公积金相关说明
  4. 花匠(codevs 3289)题解
  5. 顾颖琼:我也曾为贾跃亭自豪过,被告之后只剩崩溃 | 独家专访
  6. Fiddler抓包Android手机https、http教程
  7. 鸿蒙系统与nblot,华为鸿蒙操作系统,和想象中的不一样
  8. 计算机调剂还是找工作,儿子是C9学生,考研只能调剂,究竟是调剂好还是找工作好?...
  9. JS中的预编译(AO、GO详解)
  10. 基于微信小程序的校园考研论坛设计与实现-计算机毕业设计源码+LW文档