【问题标题】:How can I count the number of occurences of a scalar in a vector, in APL如何在 APL 中计算向量中标量的出现次数
【发布时间】:2018-04-16 20:22:39
【问题描述】:

例如我有一个向量'H2DH2DH',有没有办法计算出现的'H' 标量的数量?

【问题讨论】:

  • @ShawnC。为什么要删除标签?

标签: apl


【解决方案1】:

我假设您的意思是您有字符向量 'H2DH2DH' 并想计算其中有多少标量 'H' 字符。

'H'='H2DH2DH 将为您提供一个布尔向量,指示所需字符的位置。 +/'H'='H2DH2DH' 会将其相加,然后给您计数。

Play with it on TryAPL!

您还可以定义一个通用函数,它将标量作为左参数,将向量作为右参数,并计算向量中标量的出现次数。

某些 APL 系统(例如 Dyalog、GNU 和 ngn)允许您编写 CountIn←{+/⍺=⍵},其中 代表左参数, 代表右参数。 Try it online! 其余系统(例如 APLX、APL+WIN 和 APL2)将让您键入:

∇ count←char CountIn text
  count←+/char=text
∇

Try it online!

【讨论】:

  • @RichardAdams:你能请。接受答案,这样问题就不再显示为“未决”(只需勾选回复旁边的复选标记)。
【解决方案2】:

或者,如果您愿意,可以使用内积计算出现次数:

'H'+.='H2DH2DH'

(几年前,在其他实现上,+/'H'='H2DH2DH' 可能稍微快一点,也许这仍然是真的)

【讨论】:

    猜你喜欢
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    相关资源
    最近更新 更多