球形空间产生器

链接

显然,这题需要用到高斯消元

但是,直接用的话会发现方程组不仅超过了n个,而且还是非线性的

因此我们需要转化为线性方程来解

设球心坐标为mi,球面上的点坐标为rij,球的半径为k

那么,显然有Σ(rij-mi)²=k²

我们令第一行分别减去2~n+1行,再整理一下,可以得到

Σ2(rij-r0j)mi=Σ(rij²-r0j²)

我们就得到线性方程组了

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int n;
	cin >> n;
	vector<vector<double>>b(n + 1, vector<double>(n + 1));
	for (int i = 0;i <= n;i++) 	for (int j = 1;j <=n;j++) cin >> b[i][j];
	vector<vector<double>>a(n + 1, vector<double>(n + 2,0));
	for (int i = 1;i <= n;i++) {
		for (int j = 1;j <= n;j++) {
			a[i][j] =2 * (b[i][j] - b[0][j]);
			a[i][n+1] += b[i][j] * b[i][j] - b[0][j] * b[0][j];
		}
	}

	for (int i = 1;i <= n;i++) {
		int max = i;
		for (int j = i + 1;j <= n;j++) if (fabs(a[j][i] > fabs(a[max][i]))) max = j;
		for (int j = 1;j <= n + 1;j++) swap(a[i][j], a[max][j]);
		for (int j = n + 1;j >= 1;j--) a[i][j] = a[i][j] / a[i][i];
		for (int j = 1;j <= n;j++) {
			if (j != i) {
				double temp = a[j][i] / a[i][i];
				for (int k = 1;k <= n + 1;k++)  a[j][k] -= a[i][k] * temp;
			}
		}
	}
	for (int i = 1;i <= n;i++) cout << fixed << setprecision(3) << a[i][n + 1] << " ";
}

时间复杂度:O(n³)

空间复杂度:O(n²)

全部评论

相关推荐

我的四月&nbsp;从清明节飞到北京安顿好租房等情况,入职的前一天晚上吃了(嘎嘎东北盒饭)之后,半夜起来吐了,得了肠胃炎,接下来的两周完全的拉肚子的状态,买了葡萄糖还有胃药之后好多了,然后一直是喝粥喝粥,这两周可以说是我黑暗时期。说说字节的情况,mt挺好的,很负责任,我刚来的那几天没什么需求,我就是看看文档,看看技术博客,也是给我急死了,为什么不给我安排需求做呢?然后我就主动去找mt,mt也是第一次给我安排活了,一个很小很小的一个bug,bug简单,但是是微前端的项目,要去bifrost代理到本地,这个我也不清楚怎么搞,刚开始瞎搞一通,看了文档也看不懂到底怎么配,一个小时之后还是没办法拿到数据,立马去问mt了,mt一来一顿教,总算是会配置规则了。也是第一阶段进步吧。后面见我需求做那么快,mt也是给我安排了几个,打算五一之前完成的,没想到给我两天搞完了,我问还有需求吗?mt:目前还没有了,得五一之后了,看看文档吧。生活上呢,字节有很多志愿活动可以参加,还有活动日,还有社团(桌游,篮球,羽毛球,网球,桌球等),包三餐是解决我这个外卖选择恐惧症最好的了,也不说很好吃吧,但是这里的广式烧腊肯定输我大广州的。完全不一样。然后字节内部也是有很多免费的ai可以用,真的给我爽到了,免费trae,mira,aime等很多技术平台,给我很多创造力支持。然后就是我周末两天都要回广州(上dk),所以我每次周五晚上都得赶去机场,周日晚上又要赶回来,来回两次5000+,给我磨砺的壕无人性了,逐渐失去对生活的乐趣了,只想躺平,还好回广州上课的下课直接有朋友陪我吃饭打麻将,每次都舍不得离开广州啊,但是一个人终究要面对很多东西的。然后有一天晚上网友打电话过来跟我讲她去报名了培训机构学软件测试了,然后聊了很多吧,最后她说她最近有点困难,想着曾经我有个朋友也是生活困难给他发了2000没收,但是我还是劝他要先活下去,再去想其他的。不过后面因为我最近已经花一万多了,我就发一百块红包给她当吃饭了,也是先活下去吧,不管是不是骗我的,我觉得我做的事情对人有帮助就行。我的四月就是这样子的苦中苦,但是还是咬咬牙坚持下来了。补充:每次八点都被小区的装修吵醒,搞得我现在八点自动起床了,狠狠痛骂小区装修影响我睡眠总结:肠胃炎-&amp;gt;来回广州-&amp;gt;认识字节新朋友-&amp;gt;想睡个好觉-&amp;gt;字节体验很好,争取转正,但是不想北京美食荒漠
你是怎么和mt相处的?
点赞 评论 收藏
分享
04-16 15:24
已编辑
北京航空航天大学 Java
🔥&nbsp;字节跳动2026年4月面试真题,二面/三面必刷,高级后端/架构师专属,难度直接拉满&nbsp;⭐⭐⭐⭐⭐系统设计图-如图https://uploadfiles.nowcoder.com/images/20260416/369475507_1776322994550/9FB54BF16CC07A4853DDBBF919D8252F📌面试干货|直接上硬菜:设计抖音的评论系统要求:1、支持单条视频百万级评论的实时发布与读取;2、评论列表默认按热度(综合点赞、回复、时间等因素)排序,也需支持按时间正/倒序切换;4、核心接口P99延迟&lt;100ms。请给出数据存储、缓存、热度计算与更新、分页查询的完整设计方案,并解决高并发写和‘深分页’的性能问题。💡&nbsp;【解析】|划重点!家人们谁懂啊!这道题看似常规,实则藏着字节的“小心机”——结合抖音亿级流量的极端场景,直接考察你能不能hold住高并发、复杂排序、缓存设计这些硬技能,是区分普通后端和高级后端的关键题!🎯&nbsp;核心设计思路|手把手拆解,小白也能看懂1.&nbsp;存储架构|百万级评论的“藏身之处”核心目标:搞定单视频百万评论的存储,避免跨分片拖慢速度,主打一个高效!💾&nbsp;主存储选择:分库分表的MySQL&nbsp;/&nbsp;分布式数据库(如TiDB),高并发读写稳得一批~🔑&nbsp;分片策略:以video_id为分片键,同一视频的评论全放一个分片,杜绝跨分片查询的坑!📋&nbsp;核心表结构:comment_id(主键)、video_id(分片键)、user_id、content、like_count、reply_count、create_time、hot_score(热度值),缺一不可!2.&nbsp;热度计算|热门评论怎么“选”出来?避坑提醒:热度是动态变化的,实时计算必崩!最优解就是「异步计算+定期更新」,主打一个省资源、不卡顿~热度计算公式|直接抄作业:hot_score&nbsp;=&nbsp;log10(like_count×2&nbsp;+&nbsp;reply_count)&nbsp;+&nbsp;(create_time&nbsp;-&nbsp;固定基点时间戳)/衰减因子计算逻辑:由离线/近线任务批量算,定期把hot_score更回数据库,既不拖慢接口,又能实时跟上热度变化,完美!3.&nbsp;缓存与读取策略|P99&lt;100ms的关键操作多级缓存叠buff,延迟直接打下来!流程图一看就懂,建议收藏备用👇https://uploadfiles.nowcoder.com/images/20260416/369475507_1776323096089/6E3CC017A8AC43BBAFDBFFAC33E48513🖥️&nbsp;本地缓存:缓存顶级热门视频的前几页热评,TTL设10秒,减少Redis压力,快到飞起!🔴&nbsp;Redis缓存:核心用有序集合(Sorted&nbsp;Set),key=video:{video_id}:comments:hot,score=hot_score,member=comment_id;查热度前N条,一个ZREVRANGE命令搞定,效率拉满!🔄&nbsp;缓存更新机制:评论发布/删除:同步更新数据库,并异步发送消息到MQ。一个Worker消费消息,重新计算该视频评论列表的缓存(或仅更新受影响的有序集合成员)。点赞/回复:这些行为会改变热度。通过消息队列异步触发对应评论hot_score的重算,并更新Redis有序集合中的分数。4.&nbsp;深分页问题|后端人的“噩梦”,这样破解!🔥&nbsp;热度排序分页直接躺赢!Redis有序集合的ZREVRANGE&nbsp;key&nbsp;start&nbsp;end命令,天然支持高效分页,不用额外折腾,直接定位目标页码~⏰&nbsp;时间排序分页避坑!别用LIMIT&nbsp;M,&nbsp;N(会扫前M条无用数据),改用WHERE&nbsp;create_time&nbsp;&lt;&nbsp;{上一页最后一条时间},精准定位,速度翻倍!🌰&nbsp;真实业务场景|抖音评论区背后的真相家人们,这可不是纸上谈兵!咱们点开抖音任意热门视频,评论区能秒刷、实时更,背后就是这套架构在撑着~&nbsp;比如央视新闻发一条视频,几分钟涌入几十万条评论,系统既要扛住高并发写入,又要让所有人看到实时热门评论,体验丝滑不卡顿,全靠这些设计!📚&nbsp;【核心考点】|必背!面试直接套✅&nbsp;关系型数据库与NoSQL的混合协同设计✅&nbsp;Redis高级数据结构(Sorted&nbsp;Set)的实战应用✅&nbsp;复杂指标(热度)的异步计算模型✅&nbsp;高并发写入下的最终一致性保证✅&nbsp;数据库深分页的优化方案⚠️&nbsp;避坑指南|这些坑别踩!踩了必挂缓存击穿:热门视频空缓存Key,用分布式锁控制仅一个请求回源建缓存,其他请求等待,避免缓存雪崩!排序稳定性:热度公式要AB测试调参,既要给新评论曝光机会,又要留住高质量老评论,不然用户体验拉胯~评论计数:video的comment_count在Redis用INCR异步更,再同步回DB,别让计数拖慢整个系统!🚨&nbsp;趋势押题预测|2026必考!命中率85%此处省略一万字......!!!!💡&nbsp;最后提醒:这道题+押题,建议关注、收藏反复看,字节二面/三面很大概率碰到,别等面试慌了才临时抱佛脚!~加好友工具搜索:【页页谈说说】,获取最新全集+押题集
面试问题记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务