4刀最多切割一个正方体为多少部分
来源:互联网 发布:mac的ps和windows 编辑:程序博客网 时间:2024/05/09 07:05
由来
今天偶然看到这个题,我算出来是3刀同平面7, 乘以2就是14了。结果说这个不是最优,我想不出来就模拟了一下。
数值模拟计算
原理
初始化4个平面, 在生成100个点去验证所有的状态和。结果为 15
源码
import numpy as npimport random as rd###点的限制条件在1,1,1范围内的正方体def setP3(): return rd.uniform(0,1),rd.uniform(0,1),rd.uniform(0,1)###生成平面; 传入list(tuple)def setPm(): m33 = np.mat([setP3(),setP3(),setP3()]) return (m33.I)* (np.mat([1,1,1]).T)#判断点在面内1,还是面外0def pdmp(m,p): a,b,c = m x,y,z = p flag = a*x + b*y + c*z - 1 if(flag > 0): return 0 return 1#生成4个平面,并输出4个平面的元组def set4M(): return [setPm() for i in range(4)]##判断点和各个面的状态和def setDL(pm4, p): locat = 0 for i in range(4): locat = locat + 2**i * pdmp(pm4[i], p) return locat##随机选出100个点判断这些点的状态合集def Main(): zt = [] pm4 = set4M() for i in range(100): p = setP3() zt.append(setDL(pm4, p)) return np.unique(zt)print (max([len(Main()) for i in range(500)]))
0 0
- 4刀最多切割一个正方体为多少部分
- 一个西瓜 4刀最多多少块
- Hdu 5811 Colosseo(给你一个n*n的矩阵,分成两部分,记为T1,T2,T2最多能给T1多少个点,使得给完之后的两个图仍然是竞赛图)
- 一个进程最多能包含多少线程
- 测试一个表空间最多可以创建多少个文件
- 一个mssqlserver表最多可以存放多少数据??
- 一个进程(Process)最多可以生成多少个线程(Thread)
- window一个文件夹中最多可以存储多少个文件
- 一个进程(Process)最多可以生成多少个线程(Thread)
- 一个进程(Process)最多可以生成多少个线程(Thread)
- 一个try{}后最多可以有多少个catch()语句
- MySQL的一个表最多可以有多少个字段
- utf8一个汉字最多需要多少个byte
- 一个linux上最多能生成多少个socket
- 小智力(2):在正方体中的八个定点放置12345678中的一个数, 使得正方体中的一个面四个定点和为18
- H5 实现一个正方体旋转
- 有一个大西瓜,用水果刀平整地切,总共切9刀,最多能切成多少份,最少能切成多少份?
- 平面上画1999条直线,最多能将平面分成多少部分?
- Python学习笔记-概述(1)
- 【Untiy&项目分享&项目讲解】UnitZ的敌人生成系统 1 敌人孵化器
- Java程序性能优化
- Python学习笔记-概述(2)
- 网关
- 4刀最多切割一个正方体为多少部分
- UML之用例图
- XML解析-PULL
- ffmpeg时间戳设置以及含义
- 事务
- npm 运行基于 es6 的 node.js 工程
- 电脑开机滴滴5声故障
- ftp软件保存用户名、ip和密码然后上传
- 【清明】线段树