V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  williamscorn  ›  全部回复第 1 页 / 共 1 页
回复总数  9
2023-11-23 17:17:17 +08:00
回复了 Ainokiseki 创建的主题 程序员 和 mentor 代码习惯不一样,好头痛
看你的代码,对这个数组的所有元素其实都先做了处理,然后对最后一个元素做了特殊处理,那这个特殊处理完全可以拿到循环的外面来做吧,根本不需要放在循环里:
for i:=range array{
// do sth normal to array[i]
}
// do sth special to array[len(array)-1]
2023-09-28 16:10:02 +08:00
回复了 tool2d 创建的主题 程序员 感觉 double 精度不够用啊
参考
https://en.wikipedia.org/wiki/Double-precision_floating-point_format
可知,double 一般只有 15~17 位的有效十进制位,测试用例计算两点叉积中间过程如下:

double
357732783707.917969-357732779387.523071 = 4320.394897
357732779286.109924-357732783655.354370 = -4369.244446
357732687769.262695-357732687720.413086 = 48.849609

long double
357732783707.917946-357732779387.523051 = 4320.394895
357732779286.109919-357732783655.354386 = -4369.244467
357732687769.262668-357732687720.413108 = 48.849560

可以看到在 16 位之后,double 和 long double 的结果已经不同了,这导致了最后结果的不同。

PS:这样计算完,还需要再*0.5 再取绝对值,才是三角形面积吧。
2020-09-23 22:05:18 +08:00
回复了 bfchengnuo 创建的主题 macOS 还有停留在 Mojave 的人么?
2015 early 还停在 el captain 10.11.6
2018-07-15 00:44:37 +08:00
回复了 KAYA 创建的主题 Apple 大一 CS 专业 新款 mbp 2018 15 和 ROG Zephyrus GX501 哪款更合适?
建议 mbp 2018 13 寸,选 i7 的 cpu ( i7-8559U ),16G 内存,256/512G 的 SSD,个人觉得比 15 寸低配要好(应该是你预算范围内唯一能买的 15 寸机型)
2017-10-25 11:35:05 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
@wevsty
是的,vector 存好,sort 之后 unique+erase
我只是写了最直接的版本,给楼主留了很多的优化空间
2017-10-25 11:13:37 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
@Gingko
少打了两个头文件...
bits/stdc++.h 用多了...
clang 居然还能正确编译...
#include <utility>
#include <string>
2017-10-25 11:03:59 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
#include <iostream>
#include <fstream>
#include <sstream>
#include <map>
#include <set>
using namespace std;

const string IN_FNAME = "data/test_log.txt";
map<string,set<string> >dict;

int main() {
ios::sync_with_stdio(false);
fstream rin(IN_FNAME);
rin.tie(0);

string buf,key,val;
stringstream ss;
while(getline(rin,buf)){
set<string>tmp;
ss.str(buf);//format:key val_1 val_2 ... val_n
ss>>key;
while(!ss.eof()){
ss>>val;
tmp.insert(val);
}
dict.insert(make_pair(key,tmp));
}
cout<<"Total Keys:"<<dict.size()<<'\n';
}
2017-03-29 18:13:33 +08:00
回复了 Beckham 创建的主题 C 请教各位大神一个算法问题:如何遍历 0-1 数组中的某些位?
std::bitset
2016-12-29 00:38:04 +08:00
回复了 vzyw 创建的主题 程序员 qq 群匿名昵称分配原理
谈一下自己的想法。

首先,腾讯的 qq 群是各有人数上限的, 50 人群, 100 人群, 200 人群, 500 人群这种。

不妨把不同人数上限的群对应到不同的昵称组,每个昵称组内放 很多个 该组人数上限 的昵称包,昵称包里昵称的个数等于这个组人数的上限。
群与昵称包的对应关系可以直接用 群编号%包个数 一一对应。
而在每个群里的用户,直接按序对应昵称就行了。

那么每天,只要先对昵称组内 shuffle 一下昵称包,再对每个昵称包 shuffle 一下昵称,每个群的每个人昵称就不一样了。

这样做的好处是,时间和空间复杂度是跟用户人数无关的,只跟组的个数和包的大小有关,是线性的,而组的个数和包的大小都是可控制的。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3861 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 00:55 · PVG 08:55 · LAX 16:55 · JFK 19:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.