【问题标题】:Complexity to determine the size of an Erlang's binary确定 Erlang 二进制文件大小的复杂性
【发布时间】:2020-12-21 11:30:52
【问题描述】:

我知道,对于一个列表,我们必须遍历整个列表,然后确定它的大小?

在 Erlang 中确定二进制文件大小的复杂度是多少?

【问题讨论】:

    标签: erlang complexity-theory


    【解决方案1】:

    byte_size/1(测量二进制内容的命令)在与二进制大小无关的恒定时间内执行,而列表的长度与列表的大小成正比。

    See 3 Common Caveats for reference

    【讨论】:

      【解决方案2】:

      erlang:size/1erlang:tuple_size/1erlang:bit_size/1erlang:byte_size/1 的时间和内存复杂度为 O(1)。 (还有erlang:map_size/1。)为什么你甚至认为它可能是别的?这没有任何意义。

      【讨论】:

      • 进程堆中存储的二进制数据结构是一个包含二进制大小的REFC头,所以byte_size在一个固定的时间内执行。
      • 你为什么认为它可以是别的东西?因为你可以像循环列表一样循环二进制文件?这不就像问:为什么你认为 length() 不是 O(1)?
      • @7stud:循环二进制?循环二进制文件的方式和原因。我不明白。我想你不知道二进制是什么。该列表是一串片段,您必须遍历才能获得长度。它被称为长度是有原因的。当大小只是一块连续内存块的度量时。二进制到底是什么。
      猜你喜欢
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 2023-01-02
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多