小编Ton*_*nis的帖子

图中从单个源到单个目的地的最短路径

我的图不包含将顶点连接到自身的边。两个顶点之间只有一条边。从维基百科我了解了一些用于根据给定条件计算最短路径的算法。最著名的算法之一是Dijkstra's algorithm,它找到从源顶点到图中所有其他顶点的最短路径。
但是通过使用Dijkstra's algorithm,我没有必要探索所有顶点,但是我的目标只是找到从单一源到单一目的地的最短路径。我应该在这里使用哪种策略?这样我就不需要探索所有其他顶点。

我的方法之一是使用bidirectional bfs. 我的bidirectional bfs意思是应用两个,bfs一个来自source node,另一个来自destination node。一旦我第一次child在两棵树中找到相同的内容,我就可以停止两者bfs。现在从源到子union路径的路径从子到目的地将是我从源到目的地的最短路径。

但是,在 Wikipedia 和 描述的所有方法中 bidirectional bfs,哪一种最适合我的图表?

algorithm shortest-path

5
推荐指数
1
解决办法
3万
查看次数

澄清sqlite的insert语句返回的row_id

好的,我们在这里看到SQLiteinsert语句返回了名为的内容row id

插入时,我们知道这SQLite就像一个称为ID的主键列,如果要插入的ID值为null,则会自动生成一个适当的值。

缺少的粘合是确认方法row id返回的SQLiteDatabase.insert()实际上是为行的主键自动生成的值。(对于Oracle则不是这种情况...)

请有人确认或拒绝吗?

解析度

好的,所以从@sixfeetsix发布的链接中:

SQLite表中的每个条目都有一个唯一的称为“ rowid”的64位带符号整数键。rowid始终可作为未声明的列使用...如果表中的列具有INTEGER PRIMARY KEY类型,则该列是rowid的另一个别名。

然后,他的auto-increment链接验证row_id和的值将是相同的值。

太好了,谢谢,伙计们!

sqlite android

5
推荐指数
1
解决办法
2198
查看次数

to_number()的另一个问题.我根本就不明白

我有一个主表(以下称为SURVEY)和一个详细表(以下称为ANSWERS.)不出所料,ANSWERS对SURVEY问题有答案.ANSWERS有一个名为TEXT的VARCHAR2列.一些ANSWERS.TEXT值是真正的文本,但有些实际上是数字.幸运的是,我总是知道哪些行包含文本,哪些行包含数字作为文本.

就是这样.我无法改变这一点.

在当天,当某些ANSWERS行被保存时,他们的TEXT值被挑选出来并放入正确类型列中的SURVEY表中.一个简单的单表选择将获取SURVEY和特殊值.

但现在,通过添加新应用程序,我们删除了特殊列.相反,我们现在必须取代适当的ANSWERS行的TEXT值.

我创建了一个模拟旧的普通select语句的查询.它很有用......大多数情况下.

这是一个片段:

select survey.*, 
       j2.overall_score
  from survey,
       (select to_number(trim(ANSWER.text)) overall_score, 
               survey.id survey_id 
          from ANSWER, 
               [edited - more SQL that gets the 'score' row from ANSWERS]) j2      
 where
   survey.id=j2.survey_id
   and overall_score > 70    
Run Code Online (Sandbox Code Playgroud)

您可能会注意到j2.在真实查询中,有六个这样的列,j1到j6.当我运行查询,它看起来只是像老查询.你不能说它真的是由主/细节组装而成.那是一种解脱!

然而,我的问题是'overall_score> 70'短语导致'1722无效数字'错误.当我不包含短语时,Oracle和clam一样高兴,因此所有输出都通过j2的to_number()函数并且看起来很好.但如果我添加条件,我就失败了.

where子句的"overall_score"部分是根据从网页输入的搜索条件动态添加的.

我需要一些告诉Oracle的fu我真的知道我在做什么,请你这样做.如果有非数字数据,那么,让j2的to_number()失败.凉.但除此之外,就这样做吧.

任何明智的话?我是承包商,时间快到了.这是一项新要求: - /

sql oracle ora-01722

4
推荐指数
1
解决办法
597
查看次数

highcharts不尊重我的x轴日期间隔

我每隔15分钟收集一系列数据,持续数周.不幸的是,中间有一周缺少数据.这只是我的事实.当我使用Highcharts绘制此数据时,它会压缩x轴(时间),使图表倾斜.例如,x轴每2小时有一个主要的刻度,直到缺失的一周.然后它跳到几天的主要滴答声.

无论数据如何,我都需要x轴保持一致.如果这会在图表中造成很大的差距,那就这样吧.

我浏览了文档但没有发现任何内容.如果有人能指引我到相关页面那将是伟大的.谢谢!

highcharts

3
推荐指数
1
解决办法
1482
查看次数

我的cypher WHERE子句没有过滤

我有一个cypher查询,如下所示:

MATCH(e:ZOOT {id:100})
OPTIONAL MATCH(e)-[a1]->(X:QAZ)
OPTIONAL MATCH(e)-[a2]->(Y:WSX)
WHERE a1 is not null or a2 is not null
RETURN e, a1, a2
Run Code Online (Sandbox Code Playgroud)

我想要的是用于生产的行既不a1或者a2被过滤掉.

然而,我的声明在所有情况下都返回行,即使是a1并且a2都是空的.

WHERE如何真正起作用?

编辑 - 添加到查询的澄清

neo4j cypher

3
推荐指数
1
解决办法
139
查看次数

为什么tomcat找不到我的log4j.properties文件?

我的网络应用似乎工作正常.我决定添加一些日志记录.当我部署war文件时,应用程序失败并出现异常,因为tomcat不知道log4j.jar.

我将jar添加到WEB-INF/lib文件夹并重新部署.例外消失了.这让我知道WEB-INF/lib在类路径上.

但是,现在logs/catalina.out有以下典型错误消息:

log4j:WARN No appenders could be found for logger (com.this.that.Validate).
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)

因此,我将log4j.properties文件复制到WEB-INF/lib文件夹中.

log4j警告仍会显示,据我所知,没有任何记录.

我很欣赏有关解决这个问题的一些指导.我在追我的尾巴.


更新

我相信我的第一个问题已经解决 - 我不再收到警告信息.我认为发生的事情是我在爆炸文件层次结构中有一个带有pwd的unix shell,这阻止了Tomcat成功删除旧项目.


log4j的

我的log4j.properties文件是

log4j.rootLogger=DEBUG, FILE

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=prog1.log

log4j.appender.FILE.MaxFileSize=100KB
# Keep one backup file
log4j.appender.FILE.MaxBackupIndex=1

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%p %t %c - %m%n
Run Code Online (Sandbox Code Playgroud)

解析度

我将'log4j.appender.FILE.File = prog1.log'行更改为具有tomcat日志记录文件夹的显式路径.

谢谢大家,您的想法帮助我解决了这个问题,并且智能化了3.18%.

java servlets classpath

2
推荐指数
1
解决办法
5630
查看次数

从实例列表中制作简单列表的pythonic成语是什么?

我有一个SQLAlchemy返回的记录实例列表.

虽然实例有许多属性,但我想要一个只包含其中一个属性的新列表.我的java编码器说:

my_records = query.all()
names = []
for my_record in my_records:
    names.append(my_record.name)
Run Code Online (Sandbox Code Playgroud)

......当然有效.但Pythonic的答案是什么?我知道有一个单行,包括这4行1,但发现它就像谷歌搜索"为".

python sqlalchemy list-comprehension

2
推荐指数
1
解决办法
70
查看次数

条件正则表达式 - 注意错误

我有一个包含任意数量的对的字符串:

A = B,C = D,E = F.

这是一个选项字符串,所以我知道"A","C"和"E".如果我愿意,我可以查询它们.

我想在字符串中找到格式错误的对:

A=B, C, E=F  # C has no equals or value
A=, C=D, E=F # A has no value
A=B, C=D, E=F X # what is X doing there!
Run Code Online (Sandbox Code Playgroud)

当然,A,C和E都是可选的,可以按任何顺序出现.

抓住所有对的优雅方法是什么,同时注意到错误情况?我现在能够使用re.findall(...),但我在上面的第三种情况下失败了.

这就是我所拥有的.在我的确切情况下,必须引用该对的右侧,但这对于这个问题并不重要.

re.findall('\s*(\w+)\s*=\s*(?P<Q>[\'\"])(\w*)(P=Q)\s*,{0,1}', a_string)
Run Code Online (Sandbox Code Playgroud)

如果我知道这a_string完全被消耗了,我会成为一个快乐的人.

python regex

2
推荐指数
1
解决办法
44
查看次数

从路径获取节点

我有一条路径可以返回许多路径.nodes(path)好像:

[a, b, c, d],
[a, b, e],
[a, f]
Run Code Online (Sandbox Code Playgroud)

我想要的是获得所有节点.所以将那条路径转换为

a
b
c
d
e
f
Run Code Online (Sandbox Code Playgroud)

会很好.我想继续在其他cypher语句中使用节点,因此将它们留在集合中对我来说不起作用.

有任何想法吗?

编辑1

MATCH(t:THING1 {id:"t1"})-[:AFFECTS]->(x:SOME_NODE), (t)-[:CHANGES]->(SOME_NODE)
MATCH p=shortestpath((s)-[MY_RELATION*0..4]->(x))
WITH collect(nodes(p)) as nodes
WITH REDUCE(output = [], r IN nodes | output + r) AS flat
Run Code Online (Sandbox Code Playgroud)

这会生成一组节点.现在将其转换为行并重复删除...

neo4j cypher

2
推荐指数
1
解决办法
51
查看次数

将模拟树的字典转换为列表

我有这样的字典:

{
1: {
   3: {
      1: {c:32},
      2: {c:12}
      },
   4: {c: 66}
   },
2: {
   3: {c: 1},
   5: {c: 2}
   }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能优雅地展开这棵树来获得:

[
[1, 3, 1, 32],
[1, 3, 2, 12],
[1, 4, 66],
[2, 3, 1],
[2, 5, 2]
]
Run Code Online (Sandbox Code Playgroud)

这种结构可以任意深入.

编辑 - 我不关心输出的顺序.'c'是看到特定整数序列的次数.所以在这种情况下,[1,3,1]被看到32次.

确切的格式并不那么重要,这是我追求的技术.

python tree dictionary list python-2.7

2
推荐指数
1
解决办法
112
查看次数