首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >因式分解因子

因式分解因子
EN

Code Golf用户
提问于 2018-01-18 18:37:49
回答 2查看 935关注 0票数 16

今天,在我的统计类中,我发现当相乘在一起时,一些阶乘可以被简化!例如:5! * 3! = 5! *3*2 = 5! *6 = 6!

你的工作:

给定一个只包含阿拉伯数字和感叹号的字符串,将我的阶乘简化为尽可能最短的字符串,以最少的字节为您的语言编写代码高尔夫样式。

输入

只包含阿拉伯数字和感叹号的字符串。输入的阶乘数不会大于200!每个数不超过一个阶乘。输入可以作为整数列表。

输出

一个可能缩短的字符串,它在输入上具有等价的值。秩序并不重要。阶乘表示法是必须的,但每个数字不需要使用一个以上的阶乘符号。

测试用例

代码语言:javascript
复制
In: 3!2!2!  
Out: 4! 

In 2!3!2!0! 
Out: 4! 

In: 7!2!2!7!2!2!2!2! 
Out: 8!8! 

In: 23!3!2!2! 
Out: 24!  
Also: 4!!

In: 23!3!2!2!2! 
Out: 24!2!

In: 127!2!2!2!2!2!2!2! 
Out: 128!

In: 32!56!29!128!  
Out: 29!32!56!128!

祝你好运

EN

回答 2

Code Golf用户

发布于 2018-01-18 20:16:22

果冻,19字节

代码语言:javascript
复制
,!P€E
SṗLçÐfµḢḟ1ȯ1F

在网上试试!

又快又脏。非常慢,即使是23!2!3!2!测试用例也是很牵强的。I/O作为整数列表。

解释

代码语言:javascript
复制
,!P€E    Helper link. Arguments: attempt, original
,        Make the array [attempt, original].
         Example: [[1,1,1,4], [2,3,2,0]]
 !       Take the factorial of each item.
         Example: [[1,1,1,24], [2,6,2,1]]
  P€     Take the product of each sublist.
         Example: [24, 24]
    E    Check if the values are equal.

SṗLçÐfµḢḟ1ȯ1F   Main link. Arguments: original
S               Find the sum S of the integers in the input.
  L             Find the number N of integers in the input.
 ṗ              Generate all lists containing N integers from 1 to S.
   çÐf          Take the lists whose factorial-product is the same as the original.
       Ḣ        Take the first match. This is the one with the most ones.
        ḟ1      Remove any ones.
          ȯ1    If there were only ones, return a one instead.
            F   Turn into a list if needed.
票数 3
EN

Code Golf用户

发布于 2018-01-20 10:46:07

><>,66字节

代码语言:javascript
复制
1}:?\~l1=?v{!
-:?!\:{*}1
v?( 4:{/}1<o"!"n-1
{:,} :{/?%}:+1
\:1-?n;

在网上试试!

效率低下,找不到最小的字符串,解释器也不能很好地处理非常大的数字。但至少我试过了?通过-v标志将输入作为数字列表。

首先,它通过对每个数字进行阶乘并将它们相乘来计算输入的值。然后,它找到最大的阶乘,干净地划分为总数,并输出它。重复,直到它得到一个素数(输出)或一个1并退出程序。因此,有时它找不到数字的最短表示形式,例如,测试用例7!2!2!7!2!2!2!2!返回10!224而不是8!8!,因为它发现总数可以除以10!第一。

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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