首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最常见倍数

最常见倍数
EN

Code Golf用户
提问于 2018-08-06 10:38:31
回答 21查看 3.5K关注 0票数 31

不要与最小公共倍数混淆。

给定一个包含多个元素的正整数列表,返回数组中两个元素的最常见乘积。

例如,列表[2,3,4,5,6]的MCM是12,因为产品表是:

代码语言:javascript
复制
    2  3  4  5  6
  ---------------
2 | #  6  8  10 12
3 | #  #  12 15 18
4 | #  #  #  20 24
5 | #  #  #  #  30
6 | #  #  #  #  #

谢谢DJMcMayhem给我的桌子

因为12出现的次数最多( 2*63*4两次)。请注意,我们不包括元素及其本身的乘积,因此2*24*4没有出现在此列表中。但是,相同的元素仍将被乘以,因此[2,3,3]的表如下所示:

代码语言:javascript
复制
    2  3  3
  ----------
2 | #  6  6 
3 | #  #  9
3 | #  #  #

而MCM是6

如果是领带,您可以返回任何绑定元素,或者返回所有绑定元素的列表。

测试-案例:

代码语言:javascript
复制
[2,3,4,5,6] -> 12
[7,2] -> 14
[2,3,3] -> 6
[3,3,3] -> 9
[1,1,1,1,2,2] -> 2
[6,200,10,120] -> 1200
[2,3,4,5,6,7,8,8] -> 24
[5,2,9,10,3,4,4,4,7] -> 20
[9,7,10,9,7,8,5,10,1] -> 63, 70, 90 or [63,70,90]
EN

回答 21

Code Golf用户

发布于 2018-08-06 11:23:55

布氏对数,11字节

代码语言:javascript
复制
{⊇Ċ×}ᶠọtᵒth

在网上试试!

解释

代码语言:javascript
复制
{   }ᶠ          Find all:
 ⊇Ċ×              Product of a subset of 2 elements
      ọtᵒ       Order by occurrences
         th     Take the last element and discard the number of occurrences
票数 12
EN

Code Golf用户

发布于 2018-08-06 10:51:29

Pyth,12字节

代码语言:javascript
复制
eo/QN=*M.cQ2

测试套件

首先,我们采用输入的所有两个元素组合,而不需要替换(.cQ2)。然后,我们将这些对映射到它们的乘积(*M)。接下来,我们用产品列表(=)覆盖输入变量。接下来,我们根据产品列表(o/QN)中出现的次数对产品列表进行排序。最后,取排序列表(e)的最后一个元素。

票数 7
EN

Code Golf用户

发布于 2018-08-06 16:02:51

MATLAB,43字节

代码语言:javascript
复制
I=input('');i=I'*I*1-eye(nnz(I));mode(i(:))

这也是一种绕口令!

解释

代码语言:javascript
复制
I=input('');           % Takes an input like "[2,3,4,5,6]"
i=I'*I                 % Multiplies the input by its own transverse
      *1-eye(nnz(I));  % Multiplies by 1-identity matrix to remove diagonal
mode(i(:))             % Calculates most common value and prints it
票数 5
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/170047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档