Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python编写用于平铺地板的算法_Python_Function - Fatal编程技术网

使用Python编写用于平铺地板的算法

使用Python编写用于平铺地板的算法,python,function,Python,Function,我试着做作业,但ı做不到。ı研究了很多关于这方面的话题,但ı找不到答案,所以ı需要帮助 我们的老师想要这个; 制定一个用4×4英寸大小的黑白相间的瓷砖铺成长方形浴室地板的计划。地板尺寸(以英寸为单位)是4的倍数 确定输入和输出 输入为地板尺寸(长度×宽度),单位为英寸 输出为平铺地板 步骤2)将问题分解为更小的任务 自然的子任务是铺设一排瓷砖。如果您可以解决这个问题,那么您可以通过将一行放置在另一行的旁边来解决这个问题,从一面墙开始,直到您到达对面的墙为止。你是怎么排的?从一面墙的瓷砖开始。如果

我试着做作业,但ı做不到。ı研究了很多关于这方面的话题,但ı找不到答案,所以ı需要帮助

我们的老师想要这个; 制定一个用4×4英寸大小的黑白相间的瓷砖铺成长方形浴室地板的计划。地板尺寸(以英寸为单位)是4的倍数

确定输入和输出

输入为地板尺寸(长度×宽度),单位为英寸

输出为平铺地板

步骤2)将问题分解为更小的任务

自然的子任务是铺设一排瓷砖。如果您可以解决这个问题,那么您可以通过将一行放置在另一行的旁边来解决这个问题,从一面墙开始,直到您到达对面的墙为止。你是怎么排的?从一面墙的瓷砖开始。如果是白色的,在旁边放一个黑色的。如果是黑色的,在旁边放一个白色的。一直走到对面的墙。该行将包含宽度为1/4的平铺

步骤3)用伪代码描述每个子任务

假设要平铺一个尺寸为20×12英寸的区域。第一步是在西北角放置一块黑色瓷砖

顺便说一句,我很抱歉,我什么都听不懂,我们的老师也没有告诉我们关于这个话题的任何事情

def place_tiles( room_length, room_width, tile_dim ):
"""
Place alternating colored tiles in the specified room and return the layout
of the tiling. The length and width of the room are provided by the first two
parameters, and tile_dim provides the dimension of each tile, which we will
assume to be a square.
"""
# We can replace each row of tiles as a list. Therefore, the entire placement
# can be represented as a list of lists.
placement = []
# COMPLETE THE REST OF THE CODE BEFORE NEXT TIME
我们在学习这本书


Horstman And Necaise 2016 Python for everyone

说起来已经很晚了,但是,终于理解并编写了一个算法谢谢@Micheal Butscher

def place_tiles(room_length, room_width , tile_dim):
    placement = []

    num_of_tiles_per_row = int(room_length / tile_dim)
    num_of_tiles_per_col = int(room_width / tile_dim)
    prev_tile = None

    for c in range(num_of_tiles_per_col):
        cur_row_tiles = []


        for r in range(num_of_tiles_per_row):
            if prev_tile and prev_tile == "w":
                cur_row_tiles.append("b")
                prev_tile = "b"

            else:
                cur_row_tiles.append("w")
                prev_tile = "w"
        placement.append(cur_row_tiles)
        prev_tile = cur_row_tiles[0]
    return placement

place_tiles(4,4,1)

正如作业已经建议的那样:首先编写代码放置一块瓷砖,然后制作一行,然后是整个地板。你可以问自己是否在某个特定的问题上陷入困境。实际上,你对此一无所知,这就是为什么你不能努力或显示一些代码的原因。但ı可以写1。01.01.01.01.01.0n x n矩阵如果你能写这样一个矩阵,你至少应该显示代码。参考当前显示的代码回答:我看不出作业要求数字1、2、3、4在哪里。将瓷砖标记为黑色或白色的具体含义尚不清楚。也许0和1作为“黑色”和“白色”就可以了,或者用字符串替换数字。如果允许使用numpy,则有必要扩展当前的0101。。。到请求的000011100001111。。。(每个轴一次调用)。