1 Star 0 Fork 0

Hammer/code-for-gap

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
test.py 6.65 KB
一键复制 编辑 原始数据 按行查看 历史
Hammer 提交于 2025-03-06 13:35 +08:00 . 3/6备份
"""
File Info:
@File name: test.py
@Author: Wanghx
@Creation date: 2024/10/16 下午12:02
@Description:
Notes:
1. Before running the script, make sure the necessary dependencies have been installed.
2. [Other specific notes].
"""
"""
import plotly.express as px
data = [
dict(Task="Task 1", Start='2024-10-16', Finish='2024-10-18'),
dict(Task="Task 2", Start='2024-10-17', Finish='2024-10-20'),
dict(Task="Task 3", Start='2024-10-19', Finish='2024-10-22')
]
fig = px.timeline(data, x_start="Start", x_end="Finish", y="Task")
fig.show()
"""
"""
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# 假设二维数组,第一列是任务开始时间,第二列是任务持续时间,第三列是任务名称
data = np.array([
[0, 3, 'Task 1'],
[2, 4, 'Task 2'],
[4, 2, 'Task 3'],
[6, 3, 'Task 4']
])
fig, ax = plt.subplots()
sns.barplot(x=data[:, 1], y=data[:, 2], palette="Blues_d")
ax.set_xlabel('Duration')
ax.set_ylabel('Task')
plt.show()
"""
# import matplotlib.pyplot as plt
# import numpy as np
#
# # 假设的任务数据,包含任务名称、开始时间和持续时间
# tasks = [
# ('Task 1', 0, 3),
# ('Task 2', 2, 4),
# ('Task 3', 4, 2),
# ('Task 4', 6, 3)
# ]
#
# fig, ax = plt.subplots()
#
# # 绘制甘特图的条形
# for task in tasks:
# name, start, duration = task
# ax.barh(0.5, duration, left=start, height=0.8, label=name)
#
# # 设置 Y 轴刻度范围和标签
# ax.set_ylim(-0.5, 1.5)
# ax.set_yticks([0])
# ax.set_yticklabels(["Tasks"])
#
# ax.set_xlabel('Time')
# ax.legend()
#
# plt.show()
import numpy as np
import pandas as pd
d = {
'A': [20, 2.2],
'B': [60, 4.4],
'C': [65, 3.5],
'D': [15, 4.4],
'E': [55, 4.5],
'F': [50, 1.8],
'G': [80, 4.0],
'H': [25, 4.6]
}
df = pd.DataFrame(data=d).T
data_labels = list(df.index)
data_array = np.array(df).T
def solve(sol_index):
sol = data_array[:, sol_index]
obj1_not_worse = np.where(sol[0] >= data_array[0, :])[0]
print('obj1_not_worse:', obj1_not_worse)
obj2_not_worse = np.where(sol[1] >= data_array[1, :])[0]
not_worse_candidates = set.intersection(set(obj1_not_worse), set(obj2_not_worse))
obj1_better = np.where(sol[0] > data_array[0, :])[0]
obj2_better = np.where(sol[1] > data_array[1, :])[0]
better_candidates = set.intersection(set(obj1_better), set(obj2_better))
dominating_solution = list(set.intersection(not_worse_candidates, better_candidates))
if len(dominating_solution) == 0:
return True
else:
return False
import time
start_time = time.time()
def all_permutations_recursive(arr):
if len(arr) == 1:
return [arr]
result = []
for i in range(len(arr)):
rest = arr[:i] + arr[i + 1:]
sub_permutations = all_permutations_recursive(rest)
for perm in sub_permutations:
result.append([arr[i]] + perm)
return result
# 示例
# arr = [1, 2, 3, 4, 5, 6, 7, 8]
# print(all_permutations_recursive(arr))
#
# # 1-8 0.09s 1-9 1.1s 1-10 14s 1-11 178s
# print(f'************* 搜素用时: {time.time() - start_time:.6f}s *************')
def getTowNum(parentList: list[int], orderList: list) -> tuple[int, list[int]]:
towNum = 0
towNumPerHour = [0 for i in range(25)]
# 最后添加一个N标志,用于处理末位拖曳情况
orderList.append('N')
parentList.append(-1)
# 虚拟航班累计数
VFPNum = 3
# 上一个虚拟航班
lastVFP = -1
for i in range(len(parentList)):
if parentList[i] < 0:
# 真实航班
if lastVFP != -1 and VFPNum != 3:
towNum += 1
# 真实航班的虚拟航班累计数视为3
VFPNum = 3
lastVFP = -1
else:
# 虚拟航班
if parentList[i] == lastVFP:
# 与上一个虚拟航班属于同一原始航班
VFPNum += 1
else:
if VFPNum != 3:
# 累计不为3个同父航班的虚拟航班 & 当前航班为新的虚拟航班
towNum += 1
VFPNum = 1
lastVFP = parentList[i]
towNumPerHour[24] = sum(towNumPerHour)
return towNum, towNumPerHour
print(getTowNum([3, 5, 5, 5, -1], ['A', 'A', 'M', 'D', 'N']))
# print(getTowNum([3, -1, 5, 5, -1]))
# print(getTowNum([3, 5, 5, 6, -1]))
bb = [1, 4]
bb.extend([1, 2, 3, 4, 5])
bb = list(dict.fromkeys(bb))
print(bb)
color_set = {
'#98FF98', '#87CEEB', '#FFB6C1', '#2F4F4F', '#9400D3', '#C0C0C0',
'#FFE4E1', '#FFEFD5', '#F0FFF0', '#E6E6FA', '#FFF0F5', '#FFFACD',
'#FAFAD2', '#FFDAB9', '#FFB5C5', '#DDA0DD', '#90EE90', '#8FBC8F',
'#3CB371', '#20B2AA', '#40E0D0', '#0000CD', '#0000FF', '#191970',
'#AFEEEE', '#7FFFD4', '#66CDAA', '#00FA9A', '#8A2BE2', '#9932CC',
'#00FF7F', '#00008B', '#4682B4', '#6A5ACD', '#BA55D3', '#708090',
'#FF69B4', '#FF1493', '#FF4500', '#FF8C00', '#FFA500', '#000080',
'#FFFF00', '#ADFF2F', '#7CFC00', '#00FF00', '#32CD32', '#4B0082',
'#A9A9A9', '#D3D3D3', '#808080', '#696969', '#8B008B', '#F5F5DC',
'#778899', '#B0C4DE', '#FFA726', '#26A69A', '#9CCC65', '#FAEBD7',
'#F5EBFF', '#E1F5FE', '#FFF8E1', '#F1F8E9', '#EDE7F6', '#CDDC39',
'#FFECB3', '#FBE9E7', '#E0F7FA', '#FFF3E0', '#E8F5E9', '#64B5F6',
'#B3E5FC', '#C8E6C9', '#FFF9C4', '#FFCCBC', '#E3F2FD', '#FF5722',
'#F0F4C3', '#FFE0B2', '#B2DFDB', '#FFFDE7', '#DCEDC8', '#FFEB3B',
'#81D4FA', '#A5D6A7', '#FFAB91', '#BBDEFB', '#4CAF50', '#FFC0CB',
'#DCE775', '#FFCC80', '#80CBC4', '#C5E1A5', '#29B6F6', '#FF1493',
'#4FC3F7', '#66BB6A', '#FFEE58', '#FF8A65', '#90CAF9', '#AED581',
'#D4E157', '#FFB74D', '#4DB6AC', '#FFF59D', '#FF69B4', '#FFB6C1',
'#FFD700', '#DAA520', '#8B4513', '#A0522D', '#BC8F8F', '#DDA0DD',
'#F4A460', '#D2B48C', '#800000', '#A52A2A', '#B22222', '#FF00FF',
'#CD5C5C', '#F08080', '#FA8072', '#E9967A', '#FFA07A', '#DA70D6',
'#DB7093', '#FF6347', '#FF7F50', '#FF4500', '#FF8C00', '#EE82EE',
'#FFA500', '#FFFF00', '#9ACD32', '#556B2F', '#6B8E23', '#483D8B',
'#228B22', '#008000', '#006400', '#3CB371', '#2E8B57', '#6A5ACD',
'#008B8B', '#008080', '#48D1CC', '#00CED1', '#40E0D0', '#9370DB',
'#AFEEEE', '#7FFFD4', '#66CDAA', '#00FA9A', '#00FF7F', '#D8BFD8',
'#32CD32', '#90EE90', '#98FB98', '#8FBC8F', '#20B2AA', '#7B68EE',
'#00BFFF', '#1E90FF', '#6495ED', '#4169E1', '#0000FF', '#8B008B',
'#0000CD', '#00008B', '#000080', '#191970', '#4B0082', '#BA55D3',
'#8A2BE2', '#9400D3', '#9932CC',
}
print(color_set)
color_set = list(set(color_set))
print(color_set)
for colorIndex in range(len(color_set)):
print(color_set[colorIndex])
if colorIndex % 6 == 0:
print(f'\n')
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/Hammerzer/code-for-gap.git
git@gitee.com:Hammerzer/code-for-gap.git
Hammerzer
code-for-gap
code-for-gap
master

搜索帮助