会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132904个问题

struct
math
threading
time
sys
multiprocessing
multiprocessing Process


read_csv(filename):

    start_time = time.time()

    sem
    sem = threading.Semaphore()

    file
    file = (filename, )
    (% file.read().decode())

    encoded_triangles = file.read()
    triangles = .from_bytes(encoded_triangles, )

    manager = multiprocessing.Manager()
    return_tot = manager.dict()
    totals = []

    return_coord = manager.dict()
    coords = []


    index (, ):
        p = Process(=thread_compute, =(index, triangles, return_tot, return_coord))
        totals.append(p)
        coords.append(p)
        p.start()
    
    index (, ):
        p.join()

    total_area = index (, ):
        total_area += return_tot[index]

    min_box = find_box(return_coord[], return_coord[], return_coord[], return_coord[])

    end_time = time.time()
    total_time = end_time - start_time

    triangles, total_area, min_box, total_time

thread_compute(index, triangles, return_tot, return_coord):
    total_area = min_max = []

    start = (index * triangles / )
    (triangles / )  > triangles - :
        end = triangles
    :
        end = start + (triangles / )

    triangle (start, end):
        
        sem.acquire()
        = [file.read(), file.read(), file.read()]
        p1 = [file.read(), file.read(), file.read()]
        p2 = [file.read(), file.read(), file.read()]
        p3 = [file.read(), file.read(), file.read()]
        = file.read()
        sem.release()

        p1, p2, p3 = process_coord(p1, p2, p3)
        tri_area = compute(p1, p2, p3)

        total_area += tri_area

        temp = []
        i (,):
            temp.append(([p1[i], p2[i], p3[i]]))
        i (,):
            temp.append(([p1[i], p2[i], p3[i]]))

        triangle == start:
            min_max = temp
        :
            i (,):
                temp[i] < min_max[i]:
                    min_max[i] = temp[i]
            i (,):
                temp[i] > min_max[i]:
                    min_max[i] = temp[i]

    return_coord[index] = min_max
    return_tot[index] = total_area

process_coord(p1, p2, p3):
    p1 = convert_values(p1)
    p2 = convert_values(p2)
    p3 = convert_values(p3)
    p1, p2, p3

convert_values(point):
    [struct.unpack(, point[])[],
            struct.unpack(, point[])[],
            struct.unpack(, point[])[]]

compute(p1, p2, p3):
    a = math.sqrt((p2[] - p1[]) ** + (p2[] - p1[]) ** + (p2[] - p1[]) ** )
    b = math.sqrt((p3[] - p1[]) ** + (p3[] - p1[]) ** + (p3[] - p1[]) ** )
    c = math.sqrt((p3[] - p2[]) ** + (p3[] - p2[]) ** + (p3[] - p2[]) ** )
    p = (a + b + c) / area = math.sqrt(p * (p - a) * (p - b) * (p - c))
    area

find_box(min_max1, min_max2, min_max3, min_max4):

    = []
    min_max = min_max1

    i (,):
        min_max2[i] < min_max[i]:
            min_max[i] = min_max2[i]
    i (,):
        min_max2[i] > min_max[i]:
            min_max[i] = min_max2[i]
    i (,):
        min_max3[i] < min_max[i]:
            min_max[i] = min_max3[i]
    i (,):
        min_max3[i] > min_max[i]:
            min_max[i] = min_max3[i]
    i (,):
        min_max4[i] < min_max[i]:
            min_max[i] = min_max4[i]
    i (,):
        min_max4[i] > min_max[i]:
            min_max[i] = min_max4[i]
    
    
    line1 = math.sqrt((min_max[] - min_max[]) ** )
    line2 = math.sqrt((min_max[] - min_max[]) ** )
    line3 = math.sqrt((min_max[] - min_max[]) ** )
    box = % (line1, line2, line3)
    box

show_output(triangles, total_area, min_box, ):
    (% triangles)
    (% total_area)
    (% min_box)
    (% )

__name__ == :
    (sys.argv) < :
        ()
    filename = (sys.argv[])
    triangles, total_area, min_box, total_time = read_csv(filename)
    show_output(triangles, total_area, min_box, total_time)


image.png

老师,您帮我看看,这个报这个错误,我应该在哪里输入文件名字

Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 35161楼
Python 全系列/第二阶段:Python 深入与提高/文件处理 35165楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 35166楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 35168楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 35169楼
Python 全系列/第一阶段:Python入门/面向对象 35170楼
Python 全系列/第五阶段:数据库编程/mysql的使用 35171楼
Python 全系列/第五阶段:数据库编程/mysql的使用 35172楼
Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 35173楼
JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 35174楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637