V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lookStupiToForce  ›  全部回复第 34 页 / 共 59 页
回复总数  1162
1 ... 30  31  32  33  34  35  36  37  38  39 ... 59  
2022-11-03 19:52:51 +08:00
回复了 deplivesb 创建的主题 Python 各路神仙,求解一个问题
v 站贴代码真费事
这个是上面贴过一遍的错误答案的:
https://justpaste.it/9droi

这个是正确答案的:
https://justpaste.it/8ijo2

蛋疼完了,上面的正确答案就算能弄出来也不建议使用,
所以最后 3 点改进建议:
1. 用 1#说的邻接矩阵遍历
2. 把你原先 find_all_paths 的结果拿出来另外做递归解析
3. 把图结构做成单张链表,上数据库用递归查询
2022-11-03 19:36:39 +08:00
回复了 deplivesb 创建的主题 Python 各路神仙,求解一个问题
心肺停止+1+1+1+1+1......................

我挺佩服你写的出来 find_all_paths 还达成效果了👍👍👍👍
但你数据结构写成这样基本没法往里加功能没法维护了:
path 和 paths 存在互相转化且一会儿要包[]后加了才能用,一会儿却只能 append
key 和 value 作为图得节点也需要互相转化
导致可读性 /可理解性稀烂 pro plus max ,往里加任何东西都是工程灾难

而且你自己给出的例子里好像也错了,后面 3 个应该是
Start A F G I D End
Start A F X D End
Start A F P Q D End

下面是我特么脑抽闲的超级蛋疼,在你的屎山上(真的,这个实现足够屎)按照你的要求想破脑袋修改测试后再特意改错得到的 find_all_paths ,你试试如果你不看最后的答案能改对不?
反正我过了今天肯定改不对了,这破 list 和 k-v 转来转去已成天书,我弄完了都记不住也不想记

```python
from itertools import product


def extend_expanded_path(ori, new):
if isinstance(new, list):
if len(new) == 0:
return ori
else:
return [i + j for i, j in product(ori, new)]
else:
return [i + [new] for i in ori]


def print_node_list(node_list):
p_str = ''
for node in node_list:
if isinstance(node, Graph):
p_str += node.name + ','
else:
p_str += node + ','
return p_str


def find_all_paths(graph, start, end, path=None, path_expanded=None, sub_graph_flag=False):
# path_expanded list(list)
# print('当前图名: %s 。位于节点:%s 。后续节点:[%s]。' % (graph.name, start, print_node_list(graph[start]) if start in graph else None))
if path is None:
path = []
if path_expanded is None:
path_expanded = [[]]
if not isinstance(start, Graph):
if sub_graph_flag:
if start not in ('Start', 'End'):
path = path + [start]
path_expanded = [i + [start] for i in path_expanded]
else:
path = path + [start]
path_expanded = [i + [start] for i in path_expanded]
if start == end:
return [path], [path_expanded]
if start not in graph:
return [], [[]]
paths = []
paths_expanded = [[]]
for node in graph[start]:
if node not in path:
if isinstance(node, Graph):
sub_path, sub_expanded_path = find_all_paths(node, "Start", "End", None, None, True)
path = path + [sub_path]
path_expanded = extend_expanded_path(path_expanded, sub_expanded_path)
new_paths, new_paths_expanded = find_all_paths(graph, node, end, path, path_expanded, sub_graph_flag)

for new_path in new_paths:
paths.append(new_path)

for new_path_expanded in new_paths_expanded:
paths_expanded.append(new_path_expanded)
return paths, paths_expanded

print(find_all_paths(g3, "Start", "End")[0])
print(find_all_paths(g3, "Start", "End")[1])
```
2022-11-03 14:16:44 +08:00
回复了 JinTianYi456 创建的主题 MySQL SQL 中 on 条件与 where 条件的区别
最简单的测试方法就是看两种情况下的执行计划就行了,inner join 条件下 on 和 where 在优化器不出岔子的情况下理论上没任何区别,但如果涉及到的表统计信息不对 /不及时,导致优化器出的执行计划两者不一样,或者优化器很笨不知道你写在 on 里的条件能让它选择更好的 join 方式,那肯定还是有区别的

就是前面有一个 v 友说的“在复杂的语句(动辄百行以上),CBO 分析不过来的时候,on 能更好的帮助确定过滤集”。这也是为啥 oracle 支持的 hint 对于数据库工程师来说是超强的利器,你分析不过来工程师自有更好的执行法子限制你不发癫。

outer join 就不谈了,从 on 挪到 where 里结果都可能会不同
2022-11-03 10:57:11 +08:00
回复了 x1024m 创建的主题 程序员 大学邮箱被拉入 jetbrain 黑名单,怎么破
@DsuineGP #36 ???呃,是在让我反思???
2022-11-03 10:33:38 +08:00
回复了 x1024m 创建的主题 程序员 大学邮箱被拉入 jetbrain 黑名单,怎么破
总共 698 个
cn 256
edu 162
tw 16
vn 16
com 14
eg 11
pe 9
tech 8
th 8
mx 8
id 7
ph 7
org 7
kg 7
me 7
tr 6
pk 6
ca 6
pl 5
uk 5
net 5

占比 36.68%

“丢不丢人哪”.jpg
2022-11-02 16:49:09 +08:00
回复了 yoggsaron 创建的主题 分享发现 给想移民加拿大的普通人
@xdeng #3 换句话说国内一套甚至半套一二线城市房子的钱(全款),就已经能随便移民加拿大了???
怪不得那么多人跑那么快我靠!
2022-11-02 11:36:39 +08:00
回复了 vegforlive 创建的主题 程序员 一个关于数据库存储大量文件的问题
mysql, pgsql 和 mongodb 其实都可以
逻辑上数据量也就几万行,完全无压力,真实数据文件是数据库自己管理的,肯定会分文件管理,只要你磁盘没崩数据基本不会崩,不过得注意定期清理收缩数据库

mysql 用 longblob
pgsql 用 bytea 或者 large objects ( https://stackoverflow.com/questions/4386030/how-to-use-blob-datatype-in-postgres)
mongodb 用 GridFS ( https://www.mongodb.com/docs/manual/core/gridfs/)
2022-11-01 12:28:05 +08:00
回复了 whats 创建的主题 程序员 基于内存数据库做大数据运算是否靠谱?
@whats #9
除了 spark 和 flink ,
补充一个 Apache Ignite (这个才是和 redis 一类的真内存数据库,支持内存数据表 session 持久化,支持 acid )

https://stackoverflow.com/questions/36036910/apache-spark-vs-apache-ignite

不过所有内存的东西不落盘都不靠谱,即便你能用上持久化内存也一样,所以你得切分清楚哪些东西是进了内存库后往里读 /往外写了一半全丢了也不要紧
月经贴
目前来看未来个鬼
不可能三角总得舍弃一个或者妥协两个,然后 web3 变 web2.5

不过人类如果会为了追求 “可信任”、“不可更改”的去中心化 而放弃 “高效率”的中心化 /半中心化,那真是可以想见的生产力倒退
2022-11-01 11:16:25 +08:00
回复了 whats 创建的主题 程序员 基于内存数据库做大数据运算是否靠谱?
不说数据量?
你内存要够大到几个 T 的地步,那确实一般情况随便上内存数据库做运算只把最后结果落盘啊?但数据量一大起来,几个 T 也不够看的
2022-11-01 11:14:04 +08:00
回复了 Machard 创建的主题 问与答 Zerotier One 出现问题了吗?
@s609926202
@ready
我借楼问一下,你们自建的 planet 可以给安卓和 iphone 端用吗?还是说安卓得自己改 app 里的相关地址重新编译一次,iphone 之间放弃?
1 ... 30  31  32  33  34  35  36  37  38  39 ... 59  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2998 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 14:49 · PVG 22:49 · LAX 06:49 · JFK 09:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.