V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lff0305  ›  全部回复第 5 页 / 共 8 页
回复总数  158
1  2  3  4  5  6  7  8  
2020-10-22 14:45:19 +08:00
回复了 zealinux 创建的主题 Kubernetes 大家 kubernetes 上都是用什么微服务网关?
Spring Cloud Zuul, Spring Cloud Gateway, Istio Gateway
kubectl get ep -n <namespace>
看看 hellogo-svc 的 endpoint 是不是正常(应该是三个)
2020-10-12 10:36:50 +08:00
回复了 XingWu 创建的主题 JavaScript 不懂就问: png 格式图片转成 jpeg,到底算什么类型的图片
以前遇到过一个 bug,一些图片( png)在 PORD 上打不开 404,但是开发测试环境都没事
后来发现,这些 PNG 实际上是 JPG
PROD 上的防火墙 /负载均衡发现该资源的 mime type 和真实的 type 不一致,直接 404
2020-09-22 19:21:11 +08:00
回复了 hanghai 创建的主题 程序员 不相干程序员了,打算回老家种菜种花养鸡养猪去
说实话楼主,不建议你这么搞。我老婆有个同事就是一模一样的想法。折腾了好几年全赔光了。
大概过程:
1. 辞职,老家村子包下一块地,养鸡;
2. 淘宝卖土鸡蛋和鸡。一块钱二一个,鸡大概三十块钱一只。好吃是真好吃。但是量上不去。扣除各项成本(饲料水电物流人工),最好的年头也基本上是持平。
3. 三四年后村子强行征地修路。之前的投入全打了水漂。签了十年合同?投入鸡舍等等的资金?没人管你
2020-09-16 11:47:15 +08:00
回复了 zealinux 创建的主题 Linux 大家生产环境服务器是选用 Ubuntu 还是 CentOS?
见过上海和国外的几个 bank,都是花钱买的 Redhat 的服务。PROD 就是 Redhat 企业版。Dev/Test 就是 CentOS
2020-09-07 19:36:49 +08:00
回复了 lihongming 创建的主题 程序员 脑子突然不好使了,请各位大佬帮我想想这个算法
排版乱了, 重新弄下

简单写了个程序。题目没有讲太清楚(是否这些字母一定要全部使用)。这里为了简单就假设全部使用。

解法一:排列组合。生成字符串长度是 sum=a0+a1+a2+...+a25 。放 a,有(sum, a0)种选择的方法;放 b,有(sum - a0, a1)种方法;放 c,有(sum - a0 - a1, a2)种方法。。。。直到最后。

写出程序:
```
private long solve1(int[] letters) {
int sum = 0;
for (int c : letters) {
sum += c;
}
BigInteger r = BigInteger.ONE;
for (int c : letters) {
BigInteger s = choose(sum, c);
r = r.multiply(s);
sum -= c;
}
return r.longValue();
}

private static BigInteger choose(int n, int k) {
BigInteger r = BigInteger.ONE;
for (int i=0; i<k; i++) {
r = r.multiply(BigInteger.valueOf(n - i));
}
for (int i=2; i<=k; i++) {
r = r.divide(BigInteger.valueOf(i));
}

// System.out.println(n + "," + k + " = " + r);
return r;
}

```
解法 2: GEF (指数生成函数)。这是个排列问题所以用指数生成函数。
对于 a: 有 a0 个 a 要放。写成指数函数形式 e0=e^(a0)/a0!
同样对于 b: 有 a1 个 b 要放。写成指数函数形式 e1=e^(a1)/a1!
等等等等
最后到 z, 有 a25 个 z 要放,写成指数函数形式 e25=e^(a25)/a5!

根据指数生成函数的理论,整个排列数就是
E=e0*e1*...*e25,中项 e^(sum)/sum! 的系数。

那么
```
E=[e^(a0)/a0!][e^(a1)/a1!]*...*[e25=e^(a25)/a25!]
= [e^(a0+a1+...+a25)]/[a0!*a1!*...*a25!]
= [e^sum]/[a0!*a1!*...*a25!]
e ^ sum sum !
= --------------------------- * --------------------
a0! *a1!* ... * a25 !) sum!

e ^ sum sum !
= --------------------------- * --------------------------
sum! a0! *a1!* ... * a25 !
```
要求的系数就是 ( sum!)/( a0! *a1!* ... * a25 ! )

写成程序就是

```
// Solve by GEF
private long solve2(int[] a) {
// expr e0 = e^a0/a0!, e1 = e^a1/a1! ... etc
// E = e0*e1*e2 .... * e25
// e^(a0+a1+...+a25)/(a0!*a1*a2*....*a25!)
// ? = e^(a0 + a1 + ... + a25)/(sum!)
int sum = 0;
for (int c : a) {
sum += c;
}
BigInteger p = p(sum);
BigInteger c = BigInteger.ONE;
for (int i : a) {
c = c.multiply(p(i));
}
return p.divide(c).longValue();
}

private BigInteger p(int sum) {
BigInteger r = BigInteger.ONE;
for (int i= sum; i>=2; i--) {
r = r.multiply(BigInteger.valueOf(i));
}
return r;
}
```
2020-09-07 19:32:42 +08:00
回复了 lihongming 创建的主题 程序员 脑子突然不好使了,请各位大佬帮我想想这个算法
简单写了个程序。题目没有讲太清楚(是否这些字母一定要全部使用)。这里为了简单就假设全部使用。

解法一:排列组合。生成字符串长度是 sum=a0+a1+a2+...+a25 。放 a,有(sum, a0)种选择的方法;放 b,有(sum - a0, a1)种方法;放 c,有(sum - a0 - a1, a2)种方法。。。。直到最后。

写出程序:

private long solve1(int[] letters) {
int sum = 0;
for (int c : letters) {
sum += c;
}
BigInteger r = BigInteger.ONE;
for (int c : letters) {
BigInteger s = choose(sum, c);
r = r.multiply(s);
sum -= c;
}
return r.longValue();
}

private static BigInteger choose(int n, int k) {
BigInteger r = BigInteger.ONE;
for (int i=0; i<k; i++) {
r = r.multiply(BigInteger.valueOf(n - i));
}
for (int i=2; i<=k; i++) {
r = r.divide(BigInteger.valueOf(i));
}

// System.out.println(n + "," + k + " = " + r);
return r;
}


解法 2: GEF (指数生成函数)。这是个排列问题所以用指数生成函数。
对于 a: 有 a0 个 a 要放。写成指数函数形式 e0=e^(a0)/a0!
同样对于 b: 有 a1 个 b 要放。写成指数函数形式 e1=e^(a1)/a1!
等等等等
最后到 z, 有 a25 个 z 要放,写成指数函数形式 e25=e^(a25)/a5!

根据指数生成函数的理论,整个排列数就是
E=e0*e1*...*e25,中项 e^(sum)/sum! 的系数。

那么 E=[e^(a0)/a0!][e^(a1)/a1!]*...*[e25=e^(a25)/a25!]
= [e^(a0+a1+...+a25)]/[a0!*a1!*...*a25!]
= [e^sum]/[a0!*a1!*...*a25!]
e ^ sum sum !
= --------------------------- * --------------------
a0! *a1!* ... * a25 !) sum!

e ^ sum sum !
= --------------------------- * --------------------------
sum! a0! *a1!* ... * a25 !

要求的系数就是 ( sum!)/( a0! *a1!* ... * a25 ! )

写成程序就是


// Solve by GEF
private long solve2(int[] a) {
// expr e0 = e^a0/a0!, e1 = e^a1/a1! ... etc
// E = e0*e1*e2 .... * e25
// e^(a0+a1+...+a25)/(a0!*a1*a2*....*a25!)
// ? = e^(a0 + a1 + ... + a25)/(sum!)
int sum = 0;
for (int c : a) {
sum += c;
}
BigInteger p = p(sum);
BigInteger c = BigInteger.ONE;
for (int i : a) {
c = c.multiply(p(i));
}
return p.divide(c).longValue();
}

private BigInteger p(int sum) {
BigInteger r = BigInteger.ONE;
for (int i= sum; i>=2; i--) {
r = r.multiply(BigInteger.valueOf(i));
}
return r;
}
2020-09-07 15:55:32 +08:00
回复了 lihongming 创建的主题 程序员 脑子突然不好使了,请各位大佬帮我想想这个算法
数学方式直接算:应该是指数生成函数
2020-09-01 10:41:30 +08:00
回复了 JasonLaw 创建的主题 Java 关于 StackOverflowError 和 OutOfMemoryError 的疑惑
jvm 通过-xss 指定每个线程使用的栈的大小(类似的 createThread api 同样可以指定栈的大小).记得默认 java 栈大小是 512kb,C++是 2MB. 栈的大小决定了函数调用的深度(因为 Java 不像 c++。c++要在栈上传递值或者引用。Java 只需要传递引用。所以 jvm 选择了一个较小的栈).

上文说的 outofmemory error 是针对一个虚拟机能创建的最多的线程数。因为栈是在 heap 上分配的,自然最大的线程数就约等于 xmx / xss 。
创建了这么多线程,再创建新的线程就会出现 outofmemory error 因为没有剩余的 heap 保留来做线程栈
jmap 看下是不是 heap 满了,100%是在不停的做 GC (按三楼的方法,会看到是 GC Thread 在占 cpu)
2020-07-30 09:49:22 +08:00
回复了 cszchen 创建的主题 Kubernetes 不想用 ELK 或者 EFK,有没有简单的替代方案
fluentbit, 够轻量了,找个简单点的后端,比如 mongodb 之类的,或者干脆 Linux 的 syslog/windows 的 event log
2020-07-27 14:55:08 +08:00
回复了 RedBeanIce 创建的主题 程序员 [ Java 应用监控] springboot 的应用监控方案
micrometer + prometheus + grafana
2020-07-24 11:45:09 +08:00
回复了 goodspb 创建的主题 程序员 每一分钟写入 10 万行数据,有啥好的方案吗?
MQ + Prepared Statement (需要比较新的 MySQL)
2020-07-21 12:17:15 +08:00
回复了 smyle 创建的主题 程序员 怎么在网关上屏蔽某台设备上的腾讯视频,不让它播放
在 ros 上是这么做的:找到相关的域名,建立防火墙规则,来源于 xxx mac 地址的对外的 53 udp 请求,重定向到本地 ROS 的 cache dns 上;在 cache dns 上对这个域名创建一条静态的 127.0.0.1 的记录
2020-07-21 09:02:29 +08:00
回复了 3country 创建的主题 程序员 公司出了一个摸鱼统计系统,想知道是怎么实现的
@nielinjie 公司的电脑,个人没 admin,公司给你装上并且信任中间人的根证书
2020-07-15 17:31:28 +08:00
回复了 Vimax 创建的主题 Java RESTful 的增删改查成功应该返回什么状态码?
个人觉得用 200 加上 body 里的信息。
404 的话不知道是成功了,还是中间什么地方出现了问题(网关,负载均衡)
2020-07-15 17:29:46 +08:00
回复了 xbdsky 创建的主题 PHP 面试问了一个问题,怎么避免 C 去邀请 A,觉得有点意思?
判断有向图是否存在环路,可以用邻接矩阵,计算传递闭包
Process p = Runtime.getRuntime().exec(.....);
p.waitFor();
multidesk
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2603 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 02:19 · PVG 10:19 · LAX 19:19 · JFK 22:19
Developed with CodeLauncher
♥ Do have faith in what you're doing.