Python程序:找出被切成多少个立方体

Python程序:找出被切成多少个立方体

假设有多个维度为a,b和c的立方体,可以使用它们创建一个维度为axbxc的新盒子。a、b和c是两两互质的;gcd(a,b)=gcd(b,c)=gcd(c,d)= 1。我们必须通过一次切割将盒子切成两部分,如图所示。我们必须找出如果这样切割盒子,则被切割成两部分的立方体有多少个。我们提供了一个包含可能的三个维度的数组,并且我们必须从中找出我们的答案。

Python程序:找出被切成多少个立方体

切割的方式是通过顶点P,Q和R的平面进行的。

因此,如果输入如下:n = 3, input_array = [[1,2,3],[4,2,5],[6,8,2]],则输出将为[5,18,37]。

给出了3个不同的实例,我们需要找出被切割的立方体数。如果以图示方式切割立方体,则分别切割5,16和37个立方体。

为了解决这个问题,我们将按照以下步骤进行:

  • 输出:=一个新的列表
  • for i在0到n范围内,执行
    • a:= input_array[i,0]
    • b:= input_array[i,1]
    • c:= input_array[i,2]
    • val := floor值 of(a * b + a * c + b * c – 1) / 2 mod 1000000007
    • 将val插入输出的末尾
  • 返回输出

示例

让我们看下面的实现以更好地理解−

from math import ceil
def solve(n, input_array):
    output = []
    for i in range(n):
        a, b, c = input_array[i][0], input_array[i][1], input_array[i][2]
        val = ((a * b + a * c + b * c - 1) // 2 % 1000000007)
        output.append(val)

    return output

print(solve(3, [[1, 2, 3], [4, 2, 5], [6, 8, 2]]))

输入

3,[[1,2,3],[4,2,5],[6,8,2]]

输出

[5,18,37]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程