我有以下文件:
2
1
4
3
2
1
Run Code Online (Sandbox Code Playgroud)
我想要这样的输出(没有任何重复项并保留顺序的唯一行):
4
3
Run Code Online (Sandbox Code Playgroud)
我尝试过sort file.txt | uniq -u它有效,但输出已排序:
3
4
Run Code Online (Sandbox Code Playgroud)
我尝试awk '!x[$0]++' file.txt保持顺序,但它会打印一次所有值:
2
1
4
3
Run Code Online (Sandbox Code Playgroud) 我正在使用一个嵌入式系统(基于 RISC-V),其中处理器连接到数据总线,数据总线又连接到 UART 模块。当数据总线被读/写时,需要两个处理器周期才能准备好新的读/写操作,否则会产生错误。
数据总线的内存映射如下:
struct WishboneBus {
volatile uint32_t read_addr;
volatile uint32_t write_addr;
volatile uint32_t write_data;
volatile uint32_t read_data;
};
#define WISHBONE_BUS ((struct WishboneBus *) (0x4000000))
Run Code Online (Sandbox Code Playgroud)
我想写这样的代码:
void wb_write(uint32_t addr, uint32_t data) {
WISHBONE_BUS->write_data = data;
WISHBONE_BUS->write_addr = addr;
}
Run Code Online (Sandbox Code Playgroud)
当使用 -O0 编译程序时,它会生成以下六个指令:
WISHBONE_BUS->write_data = data;
153c: 400007b7 lui a5,0x40000
1540: fd842703 lw a4,-40(s0)
1544: 00e7a423 sw a4,8(a5) # 40000008 <BUS_START+0x8>
WISHBONE_BUS->write_addr = addr;
1548: 400007b7 lui a5,0x40000
154c: fdc42703 lw a4,-36(s0)
1550: 00e7a223 sw a4,4(a5) # 40000004 <BUS_START+0x4> …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个图,其中我不使用点来表示数据,而是使用行政边界的轮廓。
下面的代码说明了我要做的事情。只是一个简单的有序散点图。我现在陷入困境,试图用每个行政边界( )的多边形形状替换这些点nz_map。因为其中的多边形nz_map有自己的几何形状,所以我不确定如何将它们放置在绘图空间中的点的位置。
任何建议将不胜感激。
# load packages
library(tidyverse)
library(sf)
library(rnaturalearth)
# map of nz with administrative boundary
nz_map <- ne_states(country = "new zealand", returnclass = "sf")
# get regions of interest and calculate area
nz_map <- nz_map %>%
select(name, region) %>%
filter(region %in% c("South Island", "North Island")) %>%
mutate(area = as.vector(st_area(.)/1e6))
# convert to points to illustrate plotting
nz_map_pnts <- st_centroid(nz_map)
# plot
ggplot() +
geom_point(data = nz_map_pnts, aes(reorder(name, area), y = area)) +
labs(x = …Run Code Online (Sandbox Code Playgroud) 我写完了第一个 OpenGL 代码,虽然在使用包含红色三角形的较小输入缓冲区时它似乎可以正常工作,但在使用较大的输入缓冲区时它根本不起作用。下面的缓冲区仅显示 RED 通道,因此每个都00对应于00 00 00,并且每个FF对应于FF 00 00。
下面也是我的整个 OpenGL 代码。我不知道可能出了什么问题,然后最好分享一切。
调用main时Screen::initialize为窗口宽度和高度传递 500 和 500,然后Screen::display_image在使用小缓冲区时为图像宽度和高度调用传递 12,在使用较大缓冲区时调用传递 23。
知道我做错了什么吗?
小缓冲区
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 …Run Code Online (Sandbox Code Playgroud) pub fn create_batched_writer(schema: &polars::prelude::Schema) -> BatchedWriter<File> {
let mut file = std::fs::File::create("output/test.parquet").unwrap();
let writer = ParquetWriter::new(file);
writer.batched(schema).unwrap()
}
Run Code Online (Sandbox Code Playgroud)
当文件或目录不存在时,会出现如下所示的panic。
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
Run Code Online (Sandbox Code Playgroud)
我的问题是当发现文件和目录不存在时如何创建它
goProgram 是一个简单的实用程序,它在文件中搜索给定的字符串并得出 true/false
当尝试使用 data.log 时,第一次花费了大约 160 毫秒,后来大约花费了 20 毫秒
I:\Study\GO> .\goProgram.exe I:\data.log "BUILD SUCCESS"
true
Execution time : 156.4336ms
I:\Study\GO> .\goProgram.exe I:\data.log "BUILD SUCCESS"
true
Execution time : 19.1512ms
I:\Study\GO> .\goProgram.exe I:\data.log "BUILD SUCCESS"
true
Execution time : 19.5516ms
I:\Study\GO> .\goProgram.exe I:\data.log "BUILD SUCCESS"
true
Execution time : 18.5528ms
Run Code Online (Sandbox Code Playgroud)
当尝试使用 data1.log 时,第一次花费了大约 180 毫秒,后来大约花费了 20 毫秒
I:\Study\GO> .\goProgram.exe I:\data1.log "BUILD SUCCESS"
true
Execution time : 178.5104ms
I:\Study\GO> .\goProgram.exe I:\data1.log "BUILD SUCCESS"
true
Execution time : 17.5497ms
I:\Study\GO> .\goProgram.exe I:\data1.log …Run Code Online (Sandbox Code Playgroud) 我正在尝试用Python解决Baloni on Kattis的问题,可以找到在这里找到。该问题需要找到能够弹出一排固定不同高度的气球的最少箭头数量。箭头从左向右行进,弹出其水平路径中的所有气球。当它弹出气球时,箭头的高度会减少一。因此,一系列高度为 [5, 4, 3, 2, 1] 的气球可以一次全部弹出,因为您可以在高度 5 处启动箭头,并且它会随着每个弹出的气球缓慢下降。问题是,最少需要多少支箭头才能弹出所有气球?
这是我当前的解决方案:
def calculate(balloons):
balloons.sort(reverse=True)
arrows = 0
for i in range(len(balloons)):
arrow_height = balloons[i]
arrows += 1
for j in range(i + 1, len(balloons)):
balloons[j] = min(balloons[j], arrow_height - 1)
return arrows
Run Code Online (Sandbox Code Playgroud)
我已经尝试过一个测试用例,但它已经不起作用了。测试用例是[2,1,5,4,3]。它应该返回 2,因为您可以从 2 处的气球开始,弹出 2 和 1,然后在 5 处的另一个气球弹出其余的气球。相反,它返回 5。我不知道如何实现这样的算法,而我当前的算法只是我脑海中的粗略估计。如何制定更好的算法?
我在用于从 Google Ads 中的视频广告系列中提取统计信息的两个查询之间存在差异。通常,我使用下面的第一个查询来获取视频广告系列的一般统计信息:
SELECT
segments.date,
campaign.name,
campaign.id,
metrics.cost_micros,
metrics.video_views,
metrics.impressions,
metrics.clicks,
metrics.conversions
FROM campaign
WHERE campaign.id IN (<google_ads_campaign_id>)
AND segments.date >= '2024-02-01'
AND segments.date <= '2024-02-01'
AND campaign.status IN (ENABLED, PAUSED)
Run Code Online (Sandbox Code Playgroud)
不过,我正在尝试扩大我的分析范围,以包括展示我的广告的 YouTube 视频片段。为了实现这一点,我创建了第二个查询,其中包含详细放置视图报告:
SELECT
detail_placement_view.group_placement_target_url,
detail_placement_view.placement,
detail_placement_view.placement_type,
detail_placement_view.target_url,
segments.date,
campaign.name,
campaign.id,
metrics.cost_micros,
metrics.video_views,
metrics.impressions,
metrics.clicks,
metrics.conversions
FROM detail_placement_view
WHERE campaign.id IN (<google_ads_campaign_id>)
AND segments.date >= '2024-02-01'
AND segments.date <= '2024-02-01'
AND campaign.status IN (ENABLED, PAUSED)
Run Code Online (Sandbox Code Playgroud)
我的问题是,我注意到从这两个查询获得的数据之间存在显着差异,特别是在展示次数等指标方面。我的目标是了解这些差异是否在正常变化范围内,或者是否存在导致这些差异的潜在问题。
对于如何解决这种差异并确保我的分析的准确性的任何指导或建议,我将不胜感激。
产生相同视觉输出的 2 个 ggplot 对象不一定相同,但有时评估它们的等价性很有用。我们应该怎么做 ?
看起来 ggplot2 不支持该功能,因此最好有一个社区解决方案,也许在某个地方有一个打包函数。
请在下面找到我自己的看法。请随意改进它或贡献不同的方法。
预期的 :
library(ggplot2)
p1 <- ggplot(cars, aes(dist, speed)) + ggplot2::geom_point()
p2 <- ggplot(cars, aes(dist, speed)) + geom_point() + scale_x_continuous(breaks = seq(0, 125, 25))
equivalent_ggplot(p1, p2)
#> [1] TRUE
equivalent_ggplot(p1, p2 + geom_blank())
#> [1] TRUE
Run Code Online (Sandbox Code Playgroud) 在极坐标中,我可以获得水平最大值(到达行的一组列的最大值),如下所示:
\ndf = pl.DataFrame(\n {\n "a": [1, 8, 3],\n "b": [4, 5, None],\n }\n)\n\ndf.with_columns(max = pl.max_horizontal("a", "b"))\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 a \xe2\x94\x86 b \xe2\x94\x86 max \xe2\x94\x82\n\xe2\x94\x82 --- \xe2\x94\x86 --- \xe2\x94\x86 --- \xe2\x94\x82\n\xe2\x94\x82 i64 \xe2\x94\x86 i64 \xe2\x94\x86 i64 \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 1 \xe2\x94\x86 4 \xe2\x94\x86 4 \xe2\x94\x82\n\xe2\x94\x82 8 \xe2\x94\x86 5 \xe2\x94\x86 8 \xe2\x94\x82\n\xe2\x94\x82 3 \xe2\x94\x86 null \xe2\x94\x86 3 \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\nRun Code Online (Sandbox Code Playgroud)\n这对应于 Pandas df[["a", "b"]].max(axis=1)。
现在,我如何获取列名称而不是实际的最大值?\n换句话说,Pandas' 的 Polars 版本是什么df[CHANGE_COLS].idxmax(axis=1)?
预期输出为:
\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 a \xe2\x94\x86 b \xe2\x94\x86 max \xe2\x94\x82\n\xe2\x94\x82 --- \xe2\x94\x86 --- …Run Code Online (Sandbox Code Playgroud)