我试图仅使用n + ceil(lg n) - 2
比较来找到n个元素数组中的第二个最小元素.CLRS中的暗示说要找到最小的元素.
这需要n - 1
比较,所以我留下ceil(lg n) - 1
比较找到第二个最小的,一旦我知道最大的.
有任何想法吗?
谢谢,
bclayman
我正在阅读Paulson的ML For the Working Programmer,对数据类型和结构之间的区别感到有点困惑.
在p.142,他定义了二叉树的类型如下:
datatype 'a tree = Lf
| Br of 'a * 'a tree * 'a tree;
Run Code Online (Sandbox Code Playgroud)
这似乎是一个递归定义,其中'a表示某种固定类型.因此,每当我看到'a'时,它必须始终引用相同的类型.
在p.148,他讨论了二叉树的结构:
"...我们一直在关注一个想象中的ML会话,我们一次一个地输入树函数.现在我们应该将这些函数中最重要的函数收集到一个名为Tree的结构中.我们真的必须这样做,因为我们的一个函数(大小)与内置函数冲突.使用结构的一个原因是防止这种名称冲突.
但是,我们将树的数据类型声明保留在结构之外.如果它在里面,我们应该被强制通过Tree.Lf和Tree.Br引用构造函数,这将使我们的模式不可读.因此,在续集中,想象一下我们做了以下声明:
datatype 'a tree = Lf
| Br of 'a * 'a tree * 'a tree;
structure Tree =
struct
fun size Lf = 0
| size (Br( v, t1, t2)) = 1 + size t1 + size t2;
fun …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个基本的Java国际象棋游戏,并编写了以下类:游戏,玩家,棋盘,广场,棋子(每个特定棋子的超类),以及每个特定棋子类(例如Pawn,Knight,Bishop等. )
其中一个棘手的方法是根据是否导致移动的玩家受到检查来确定移动是否有效.我的解决方案如下:
我正在考虑如何从这里克隆: http://www.jusfortechies.com/java/core-java/cloning.php
现在,board对象由2d Square对象组成.每个方形对象都有一个零件字段,该字段为空(在其上没有任何部分)或引用一个部件对象(在其上有一个部分).Board对象还有一个whiteKingSquare和一个blackKingSquare(都是Square对象),可以更快/更容易地定位白王或黑王.
我在Board课程中编写了以下方法:
public Object clone() throws CloneNotSupportedException {
Board clonedBoard = (Board) super.clone();
for (int i = 0; i < HEIGHT; i++) {
for (int j = 0; j < WIDTH; j++) {
clonedBoard.myBoard[i][j] = new Square(this, i, j);
clonedBoard.whiteKingSquare = myBoard[7][4];
clonedBoard.blackKingSquare = myBoard[0][4];
}
}
return clonedBoard;
}
Run Code Online (Sandbox Code Playgroud)
但是,因为Board指的是一个8 x 8的Square对象数组,所以我必须克隆它们中的每一个.我在Square类中编写了这个方法:
public Object clone() throws CloneNotSupportedException {
return (Square) super.clone();
}
Run Code Online (Sandbox Code Playgroud)
最后,我在Piece类中编写了这个方法:
public Object clone() throws CloneNotSupportedException …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从视频中获取图像并裁剪出随机的 64 x 64 x 3 块(64 宽,64 高,3 用于颜色通道)。
这是我到目前为止所拥有的:
def process_video(video_name):
# load video using cv2
video_cap = cv2.VideoCapture(video_name)
if video_cap.isOpened():
ret, frame = video_cap.read()
else:
ret = False
# while there's another frame
i = 0
while ret:
ret, frame = video_cap.read()
if i % 10 == 0:
# save several images from frame to local directory
i += 1
video_cap.release()
Run Code Online (Sandbox Code Playgroud)
我想取帧的一小部分 (64 x 64 x 3) 并将其另存为 .jpg 文件,所以我在最后评论的部分遇到了问题。关于如何解决这个问题的任何建议?
谢谢!
我有一张关于文章信息的表格。我有一个published_at
专栏,timestamp without time zone
想要计算每篇文章发表的时间,以天为单位。
所以如果它是一周前发布的,我应该回来7
。
知道该怎么做吗?
我知道 Postgres 有,NOW()
但我可以减去然后取DAY()
吗?
谢谢!
我有一个DataFrame df
,包含几个列.其中一些值df
是NaN
.我想NaN
用一个有效值替换每个值,通过从给定列中的其他值中随机抽样来选择.
例如,如果:
df[work] = [4, 7, NaN, 4]
我想df[work][2]
用4 2/3的时间和7 1/3的时间替换.
这是我的尝试:
def resample_fillna(df):
for col in df.columns:
# get series consisting of non-NaN values
valid_series = df[col].dropna()
nan_indices = np.argwhere(np.isnan(df[col]))
for nan_index in nan_indices:
df[col][nan_index] = valid_series.sample(n=1)
Run Code Online (Sandbox Code Playgroud)
我认为有更好,更Pythonic的方式.有什么想法吗?
谢谢!
我有一个用于多类分类问题的Keras模型。我正在这样做:
model.compile(
loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'],
)
Run Code Online (Sandbox Code Playgroud)
我目前有约100个功能,并且有约2000个可能的类。该类的一键编码会导致内存问题。
是否可以categorical_crossentropy
在不对类标签进行一次热编码的情况下与此Keras模型一起使用。例如,而不是使目标看起来像:
[0, 0, 0, 1, 0, 0, ...]
只是:
3
我查看了categorical_crossentropy
Keras 中的源,并假设两个相同形状的张量。有没有办法解决这个问题并使用我描述的方法?
谢谢!
我正在研究Project Euler Problem 9,它指出:
毕达哥拉斯三元组是一组三个自然数,a <b <c,其中,
a^2 + b^2 = c^2
Run Code Online (Sandbox Code Playgroud)
例如,3 ^ 2 + 4 ^ 2 = 9 + 16 = 25 = 52.
恰好存在一个毕达哥拉斯三元组,其中a + b + c = 1000.找到产品abc.
这是我到目前为止所做的:
class Project_euler9 {
public static boolean determineIfPythagoreanTriple(int a, int b, int c) {
return (a * a + b * b == c * c);
}
public static void main(String[] args) {
boolean answerFound = false;
int a, b, c;
while (!answerFound) {
for …
Run Code Online (Sandbox Code Playgroud) 所以我理解Java中的字符串是不可变的.我对如何重复更新某个字符串感兴趣.
例如:
public static void main(String[] args) {
String myString = "hey";
for (int i = 1; i <= 9; i++) {
myString += "hey";
}
}
Run Code Online (Sandbox Code Playgroud)
现在,这在Java中不起作用,因为我已经声明并分配了myString.人们如何绕过Java的不可变字符串(如上例所示)?
我唯一能想到的就是声明另一个字符串.不幸的是,这只会延迟我的问题,因为第二次循环,我将重新分配已经分配的字符串:
public static void main(String[] args) {
String myString = "hey";
String secondString;
for (int i = 1; i <= 10; i++) {
secondString += "hey";
}
}
Run Code Online (Sandbox Code Playgroud)
任何建议/解释都非常感谢!
谢谢,Mariogs
我正在尝试为Flask应用添加另一个视图.我的app/views.py看起来像这样:
from flask import render_template
from app import app
from helpfulFunctions import *
def getRankingList():
allPlayers = main()
return allPlayers
def displayLimitedNumberOfPlayers(limit):
allPlayers = main()
allPlayers[0] = limitPlayers(allPlayers[0], limit)
allPlayers[1] = limitPlayers(allPlayers[1], limit)
return allPlayers
@app.route("/")
@app.route("/index")
def index():
rankingList = getRankingList()
return render_template('index.html', title='Home', rankingList = rankingList)
@app.route("/top100")
def top100():
rankingList = displayLimitedNumberOfPlayers(100)
return render_template('top100.html', rankingList = rankingList)
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
我试图模仿Miguel Grinberg教程如何为for /
和for 定义路由/index
.我top100.html
在我的模板文件夹中创建了一个视图,其中"index.html"文件也存在.但是,当我尝试击中时localhost:5000/top100.html
,我得到:
Not Found
The requested URL …
Run Code Online (Sandbox Code Playgroud)