【教学类-55-02】20240512图层顺序挑战(四格长条纸加黑色边框、4*4、7张 、43200张去掉非7色有23040张,去掉重复样式有几种?)

作品展示

背景需求:

之前的代码吗存在几个问题,最大的问题是不能生成“”长条黑边框””

【教学类-55-01】20240511图层顺序挑战(四格长条纸)(4*4)和“手工纸自制参考图”-CSDN博客文章浏览阅读485次,点赞27次,收藏8次。【教学类-55-01】20240511图层顺序挑战(四格长条纸)(4*4)和“手工纸自制参考图”https://blog.csdn.net/reasonsummer/article/details/138745119

一、4宫格7条颜色的不重复排列数量

14:45-14:57,13分钟生成了40320张图片不重复的排列方法

每张图3-4KB,

代码展示:

'''
图层重叠挑战(长矩形带黑框) (抽取7) 一共有40320个不重复
作者:AI对话大师,阿夏
时间:2024年5月12日
'''
from PIL import Image, ImageDraw
import os,random
import itertools

print('--------1、制作图片-----------')
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条'

folder_path = path + r'\jpg'
os.makedirs(folder_path, exist_ok=True)



     

colors = ['red', 'orange','Yellow', 'green',  'lightgreen', 'skyblue','blue','Pink',]


from PIL import Image, ImageDraw
import os

folder_path=r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\jpg'
# 创建画布
canvas_width = 800
canvas_height = 800
canvas_color = (255, 255, 255)  # 白色背景
line_color = (0, 0, 0)  # 黑色线条
line_width = 3
margin = 100  # 边距

canvas = Image.new('RGB', (canvas_width, canvas_height), canvas_color)
draw = ImageDraw.Draw(canvas)

# 计算单元格大小和绘制区域
num_rows = 4
num_cols = 4
cell_size = min((canvas_width - 2 * margin) // num_cols, (canvas_height - 2 * margin) // num_rows)
start_x = (canvas_width - cell_size * num_cols) // 2
start_y = (canvas_height - cell_size * num_rows) // 2

# 绘制第一行四个单元格的长度为红色的矩形,边框为10像素的黑色

# 绘制所有单元格的矩形
# 绘制所有单元格的矩形
# for row in range(num_rows):
#     for col in range(num_cols):
#         x1 = start_x + col * cell_size
#         y1 = start_y + row * cell_size
#         x2 = x1 + cell_size
#         y2 = y1 + cell_size
#         draw.rectangle([(x1, y1), (x2, y2)], fill='white', outline=line_color, width=line_width)

# 4行4列8条四格纸
#  第1行
def draw_h1_rectangle(start_x, start_y, cell_size, line_color, line_width):
    x1 = start_x
    y1 = start_y
    x2 = start_x + 4 * cell_size
    y2 = start_y + 1 * cell_size
    draw.rectangle([(x1, y1), (x2, y2)], fill=colors[0], outline=line_color, width=line_width)

#  第2行
def draw_h2_rectangle(start_x, start_y, cell_size, line_color, line_width):
    x1 = start_x
    y1 = start_y + 1 * cell_size
    x2 = start_x + 4 * cell_size
    y2 = start_y + 2 * cell_size
    draw.rectangle([(x1, y1), (x2, y2)], fill=colors[1], outline=line_color, width=line_width)

#  第3行
def draw_h3_rectangle(start_x, start_y, cell_size, line_color, line_width):
    x1 = start_x
    y1 = start_y + 2 * cell_size
    x2 = start_x + 4 * cell_size
    y2 = start_y + 3 * cell_size
    draw.rectangle([(x1, y1), (x2, y2)], fill=colors[2], outline=line_color, width=line_width)

#  第4行
def draw_h4_rectangle(start_x, start_y, cell_size, line_color, line_width):
    x1 = start_x
    y1 = start_y + 3 * cell_size
    x2 = start_x + 4 * cell_size
    y2 = start_y + 4 * cell_size
    draw.rectangle([(x1, y1), (x2, y2)], fill=colors[3], outline=line_color, width=line_width)

#  第1列
def draw_l1_rectangle(start_x, start_y, cell_size, line_color, line_width):
    x1 = start_x
    y1 = start_y
    x2 = start_x + 1 * cell_size
    y2 = start_y + 4 * cell_size
    draw.rectangle([(x1, y1), (x2, y2)], fill=colors[4], outline=line_color, width=line_width)

#  第2列
def draw_l2_rectangle(start_x, start_y, cell_size, line_color, line_width):
    x1 = start_x + 1 * cell_size
    y1 = start_y
    x2 = start_x + 2 * cell_size
    y2 = start_y + 4 * cell_size
    draw.rectangle([(x1, y1), (x2, y2)], fill=colors[5], outline=line_color, width=line_width)

#  第3列
def draw_l3_rectangle(start_x, start_y, cell_size, line_color, line_width):
    x1 = start_x + 2 * cell_size
    y1 = start_y
    x2 = start_x + 3 * cell_size
    y2 = start_y + 4 * cell_size
    draw.rectangle([(x1, y1), (x2, y2)], fill=colors[6], outline=line_color, width=line_width)

#  第4列
def draw_l4_rectangle(start_x, start_y, cell_size, line_color, line_width):
    x1 = start_x + 3 * cell_size
    y1 = start_y
    x2 = start_x + 4 * cell_size
    y2 = start_y + 4 * cell_size
    draw.rectangle([(x1, y1), (x2, y2)], fill=colors[7], outline=line_color, width=line_width)
    

#     # 将函数名称提取出来并放入列表
# function_names = ['draw_h1_rectangle','draw_h2_rectangle','draw_h3_rectangle','draw_h4_rectangle','draw_l1_rectangle','draw_l2_rectangle','draw_l3_rectangle','draw_l4_rectangle']
# # 生成所有可能的排列,是元祖()
# permutations = list(itertools.permutations(function_names))

# # 打印排列数量
# print(f"总共有 {len(permutations)} 种不同的排列。")
# # 40320 8的阶乘

import itertools

function_names = ['draw_h1_rectangle','draw_h2_rectangle','draw_h3_rectangle','draw_h4_rectangle','draw_l1_rectangle','draw_l2_rectangle','draw_l3_rectangle','draw_l4_rectangle']


# # 调用函数列表中的函数
# for draw_function in function_names:
#     draw_function(start_x, start_y, cell_size, line_color, line_width)




# # # 保存图片
# # image_path = os.path.join(folder_path, f'测试.jpg')
# # canvas.save(image_path)

# # print(f'图片已保存至:{image_path}')


import itertools

#
# 生成从 8 个元素中选取 7 个元素的所有可能排列,8个互相配对40320,7个互相配对也是40320
permutations = list(itertools.permutations(function_names, 7))
# print(permutations[0:10])

# 打印排列数量
print(f"总共有 {len(permutations)} 种不同的排列。")
# 总共有 40320 种不同的排列。

n=1
# 打印所有排列
for permutation in permutations:    # 因为有40万个,所以先测试前20个
    # print(permutation)
    
    # 将元组转换为函数对象列表
    functions = [eval(function_name) for function_name in permutation[::-1]]
    # # 打印函数对象列表,一长串文字
    print(functions)
    # [<function draw_triangle_2 at 0x000001A4B402F3A8>, <function draw_triangle_1 at 0x000001A4B402FB88>, <function draw_triangle_6 at 0x000001A4B4061288>, <function draw_triangle_3 at 0x000001A4B23C5AF8>, <function draw_triangle_4 at 0x000001A4B4061168>, <function draw_triangle_5 at 0x000001A4B40611F8>]

    # 运行一个7元素,就打乱一次颜色,确保color【0】抽取的颜色每次都不同
    
    # random.shuffle(colors)

    # 调用函数绘制等边三角形
    # 调用函数绘制矩形
    for func in functions:
        # 为每个函数添加缺失的参数
        func(start_x, start_y, cell_size, line_color, line_width)

        # 保存绘制好的图像
    canvas.save(folder_path + fr'\{n:05d}.png')
    n+=1

第二个问题是:去除重复的排列方式

以下是三天三夜漫长的测试(

筛选)

二、检测图片并删除的时间比生成40320张图片更长

15:00-16:40 足足等了100分钟 ,久到我以为程序中断了!

图片颜色检测:7色+黑白,删除后还有23040个不重复重叠方式

三、发现48张一组的图片样式相等

我发现前48张图片的样式是一样,前三行3色+第四行四个颜色,

第49张-97张(48张)都是一个样式:第1、2、4行分别一种颜色、第3行四种颜色。

最后48张样式,第一列4个颜色,第2、3、4一种颜色

计算器算了一下,发现可以整除,不同的样式有480种

也就是可以23040张做成48个一组,保留一张,其他删除。

import os

folder_path =r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\jpg'# 替换为实际的文件夹路径

# 获取文件夹中的所有文件名
file_names = os.listdir(folder_path)

# 将文件名与文件夹路径拼接
file_paths = [os.path.join(folder_path, file_name) for file_name in file_names]

# 将文件名与文件夹路径按照每组24个进行分组
grouped_file_paths = [file_paths[i:i+48] for i in range(0, len(file_paths), 48)]
print(len(grouped_file_paths))
# 480组

# 遍历每一组文件路径列表
for group in grouped_file_paths:
    # 保留每组中的第一个文件,删除后面的23个文件
    for file_path in group[1:]:
        os.remove(file_path)

print("删除操作已完成。")

以上方法看上去合理,但是筛选出来的480张图片还是有一样的重复(布局结构重复,但是色卡不一样)


三、放弃随机颜色,用单色来试试40320种图形到底是什么样的

100分钟后,终于再次活动23040个7色图案,看到有大量的相同的图案

检测图片是否相同,相同就删除第一张。

from PIL import Image
import os,time

def compare_images(image1_path, image2_path):
    # 打开两张图片
    image1 = Image.open(image1_path)
    image2 = Image.open(image2_path)

    # 比较图片尺寸
    if image1.size != image2.size:
        return False

    # 比较图片像素
    pixel1 = image1.load()
    pixel2 = image2.load()
    for x in range(image1.width):
        for y in range(image1.height):
            if pixel1[x, y] != pixel2[x, y]:
                return False

    return True

# 示例用法
image_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\一样'  # 替换为图片所在的文件夹路径

# 获取文件夹中的所有图片文件路径
image_files = [file for file in os.listdir(image_folder) if file.endswith(('.jpg', '.jpeg', '.png', '.gif'))]

# 对每对图片进行比较,并删除第一张图片
for i in range(len(image_files)-1):
    image1_path = os.path.join(image_folder, image_files[i])
    for j in range(i+1, len(image_files)):
        image2_path = os.path.join(image_folder, image_files[j])
        if compare_images(image1_path, image2_path):
            # 删除第一张图片
            os.remove(image1_path)
            print(f"已删除图片:{image_files[i]}")
            break  # 找到相同的图片后就跳出循环,继续下一对图片的比较

print("删除操作已完成。")

删除完全相同的图片的第一张,保留第二张

从2024年5月12日22:00-2024年5月13日6:56分,终于把第一轮的256个(90)的文件夹内部图片筛选一遍,删除部分图片

5月13日6:56分,筛选到编号3.2万,实际是4.32张

5月13日7:00删除到30000万张时,电脑黑屏了,打开以后程序关闭了。

四、减少互相筛选的图片数量,提升检测数独

只能重新进行删除,这次我把40张图片做成一个文件夹,减少互相核对的数量,这样又576个文件夹

import os
import shutil

# 第一、2万张图片分开识别

# 原始文件夹路径
image_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\一样'

# 新建文件夹路径
new_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\整理'
os.makedirs(new_folder,exist_ok=True)


# 创建新建文件夹
os.makedirs(new_folder, exist_ok=True)

# 获取文件夹中的所有图片文件路径
image_files = [file for file in os.listdir(image_folder) if file.endswith(('.jpg', '.jpeg', '.png', '.gif'))]

# 按照90个一组移动图片
group_size = 40
num_groups = len(image_files) // group_size + 1

for group in range(num_groups):
    start_index = group * group_size
    end_index = (group + 1) * group_size

    # 获取当前组的图片文件路径
    group_files = image_files[start_index:end_index]

    # 创建当前组的文件夹
    group_folder = os.path.join(new_folder, str(f'{group:03d}'))
    os.makedirs(group_folder, exist_ok=True)

    # 移动图片到当前组的文件夹
    for file in group_files:
        src_path = os.path.join(image_folder, file)
        dst_path = os.path.join(group_folder, file)
        shutil.copy(src_path, dst_path)

print("移动操作已完成。")


from PIL import Image
import os

def compare_images(image1_path, image2_path):
    # 打开两张图片
    image1 = Image.open(image1_path)
    image2 = Image.open(image2_path)

    # 比较图片尺寸
    if image1.size != image2.size:
        return False

    # 比较图片像素
    pixel1 = image1.load()
    pixel2 = image2.load()
    for x in range(image1.width):
        for y in range(image1.height):
            if pixel1[x, y] != pixel2[x, y]:
                return False

    return True

# # 文件夹路径

# # 第二:在258个文件里单独核对,第一遍去重

# folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\整理'

# # 获取所有子文件夹
# subfolders = [subfolder for subfolder in os.listdir(folder_path) if os.path.isdir(os.path.join(folder_path, subfolder))]

# # 对每个子文件夹进行处理
# for subfolder in subfolders:
#     subfolder_path = os.path.join(folder_path, subfolder)

#     # 获取子文件夹中的所有图片文件路径
#     image_files = [file for file in os.listdir(subfolder_path) if file.endswith(('.jpg', '.jpeg', '.png', '.gif'))]

#     # 对每对图片进行比较,并删除第一张图片
#     for i in range(len(image_files)-1):
#         image1_path = os.path.join(subfolder_path, image_files[i])
#         for j in range(i+1, len(image_files)):
#             image2_path = os.path.join(subfolder_path, image_files[j])
#             if compare_images(image1_path, image2_path):
#                 # 删除第一张图片
#                 os.remove(image1_path)
#                 print(f"已删除图片:{image_files[i]}")
#                 break  # 找到相同的图片后就跳出内层循环,继续下一对图片的比较

# print("删除操作已完成。")

生成文件夹后,再次用程序把相同图片删除

from PIL import Image
import os

def compare_images(image1_path, image2_path):
    # 打开两张图片
    image1 = Image.open(image1_path)
    image2 = Image.open(image2_path)

    # 比较图片尺寸
    if image1.size != image2.size:
        return False

    # 比较图片像素
    pixel1 = image1.load()
    pixel2 = image2.load()
    for x in range(image1.width):
        for y in range(image1.height):
            if pixel1[x, y] != pixel2[x, y]:
                return False

    return True

# 文件夹路径

folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\整理'

# 获取所有子文件夹
subfolders = [subfolder for subfolder in os.listdir(folder_path) if os.path.isdir(os.path.join(folder_path, subfolder))]

# 对每个子文件夹进行处理
for subfolder in subfolders:
    subfolder_path = os.path.join(folder_path, subfolder)

    # 获取子文件夹中的所有图片文件路径
    image_files = [file for file in os.listdir(subfolder_path) if file.endswith(('.jpg', '.jpeg', '.png', '.gif'))]

    # 对每对图片进行比较,并删除第一张图片
    for i in range(len(image_files)-1):
        image1_path = os.path.join(subfolder_path, image_files[i])
        for j in range(i+1, len(image_files)):
            image2_path = os.path.join(subfolder_path, image_files[j])
            if compare_images(image1_path, image2_path):
                # 删除第一张图片
                os.remove(image1_path)
                print(f"已删除图片:{image_files[i]}")
                break  # 找到相同的图片后就跳出内层循环,继续下一对图片的比较

print("删除操作已完成。")

从上午8::43一直运行到15:30分,8个小时完成过了第一遍的删除

把000-576文件夹里剩下的照片放回到“第一次筛选”的文件里。

import os
import shutil

# 整理文件夹路径
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\整理'

# 目标文件夹路径
target_folder =r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条\第一次筛选'
os.makedirs(target_folder,exist_ok=True)

# 创建目标文件夹
os.makedirs(target_folder, exist_ok=True)

# 遍历整理文件夹中的子文件夹
for subfolder in os.listdir(folder_path):
    subfolder_path = os.path.join(folder_path, subfolder)

    # 检查子文件夹是否是文件夹而不是文件
    if os.path.isdir(subfolder_path):
        # 遍历子文件夹中的图片文件
        for file in os.listdir(subfolder_path):
            file_path = os.path.join(subfolder_path, file)

            # 检查文件是否是图片文件
            if file.endswith(('.jpg', '.jpeg', '.png', '.gif')):
                # 移动图片文件到目标文件夹
                shutil.copy(file_path, target_folder)

print("移动操作已完成。")

第一次筛选后,出现了12224张张片。

因为是40张分割排除重复,所以再次合并后,还会有重复,

再次测试,做成12224/64=191,也就是64张一个文件夹,做191个文件夹,开始第二轮的去重

修改删除代码里面的路径。

64张互相对比,时间很长

16:07--19:37,此时整理到104/190号文件夹,我感觉速度很慢,想试试再减少每个文件夹的元素,看看是否可以识别快一点。

直接测试2张图之间的对比

把文件做成11005/5=2201个一组,看看筛选快不快

19:48——20:34看看5张5张对比删除需要多少时间?

19:53分,出现了第一张删除的图片

5分钟刷到166/2201,大概需要3*5=60分钟筛选完成。

汇总剩余数量

删除后,还有10928,再测试2张图 有5464个文件夹

两张两张对比是不是更快呢

20:46——20.56  10分钟

两张图片正好相同的概率比较低,估计也选不出图片,但是速度会块很多!

还真的找到了两张中的重复

再筛一次。

10926还是双数,继续除以2

5分钟筛一遍,的确没有重复的了

四张一组对比删除10926/3=3642

21:06——21:19

现在五个一组对比

10915/5=2183

21:24-21:50

10868除以4=2717

过程不再了,就是反复的删除

21:57——22:16

还剩10848

10848除以48=226

22:23——

慢慢等……

每次根据除数,把图片分到不同文件里,可以反复删除,但是数量不同。原则上10000个图片放在一起,一一检测,但是720个图片互相检测就用了1小时,我担心1万张直接把电脑干崩溃了。

…………

继续删除中

尽可能多排除一模一样的图片,便于最后一轮的几百张对比,时间更长

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/622126.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024第八季完美童模 【星光】品牌赛区 【直通】赛 完美收官

2024年5月1日&#xff0c;春风徐徐的【星光品牌赛区】热闹非凡&#xff0c;备受瞩目的第八季完美童模【星光品牌赛区】赛区【直通赛】在这一天正式拉开了帷幕。比赛现场&#xff0c;童模们身着华服&#xff0c;在舞台上演绎了“亚特兰蒂斯”的时尚主题赛。 参赛选手们身着带有海…

【优先级队列】Leetcode 最后一块石头的重量

题目讲解 1046. 最后一块石头的重量 算法讲解 根据题目的意思&#xff0c;为了寻找到本次数组中的最大的两个值&#xff0c;我们需要使用一个数据结构&#xff1a;堆&#xff0c;使用大堆&#xff0c;每一次出两个数据&#xff0c;这两个数据就是当前数组中的两个最大值&…

拉链表实现过程+案例

第一种 1.从ODS层获取增量数据(上一天新增和更新的数据) 2.拿着DWD原始拉链表数据 left join 增量数据 ,修改原始拉链中历史数据的结束时间 3.拿着left join 的结果集 union all 增量数据 4.把最新的拉链数据优先保存到DWD对应的临时表中 5.使用insertselect 方式把临时表中…

力扣75. 颜色分类

Problem: 75. 颜色分类 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 由于题目只提供0&#xff0c;1&#xff0c;2分别代表颜色红、白、蓝&#xff0c;并按此排序&#xff0c;那么我们可以遍历两次数组&#xff0c;第一次将0&#xff0c;全部放到数组前面一部分…

Python如何绘制直流电机开闭环特性曲线?matplotlib

import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [FangSong] # 指定默认字体 mpl.rcParams[axes.unicode_minus] False # 解决保存图像是负号-显示为方块的问题# 数据集1 n1 [1206, 1174, 1141, 1116, 1037, 986] Id1 [0.505, 0.55…

GEVernova推出GEV新能源平台,引领新能源未来

近日&#xff0c;全球领先的能源设备制造和服务公司 GE Vernova 宣布推出 GEV 新能源平台&#xff0c;这是一个将金融、科技和产业深度融合的全新投资平台。GEV 新能源平台旨在为用户提供一站式可持续新能源投资解决方案&#xff0c;助力全球新能源转型和可持续发展。 新能源已…

车载电子电器架构 —— UDS Service 11介绍

车载电子电器架构 —— UDS Service 11介绍 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证…

Dev-C++的下载和安装教程(超详细图文,小白入门)

Dev-C&#xff08;或者叫做Dev-Cpp&#xff09;是Windows环境下的一个轻量级C/C集成开发环境&#xff08;IDE&#xff09;。它是一款自由软件&#xff0c;遵守GPL许可协议分发源代码。 Dev-C集合了功能强大的源码编辑器、MingW64/TDM-GCC编译器、GDB调试器和AStyle格式整理器等…

Linux 第二十九章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

k8s job

ReplicaSet 和 DaemonSet 会持续运行任务&#xff0c;永远达不到完成态。但在一个可完成的任务中&#xff0c;其进程终止后&#xff0c;不应该再重新启动。 Job 允许你运行一种 pod&#xff0c;该 pod 在内部进程成功结束时&#xff0c;不重启容器&#xff0c;一旦任务完成&…

【React】redux开发者工具redux-devtools-extension的安装和使用

前言 redux-devtools-extension: 是一个用于Redux的开发者工具扩展。适合用于需要调试和监控Redux应用的状态管理。特点是可以提供实时的状态查看、行动日志和错误检测等 安装 chrome安装redux-devtools-extension 项目中安装并引入redux-devtools-extension yarn add re…

【opencv】图像处理(二)

前文指引 一、使用到的图片 一、梯度计算 原始图片 img cv2.imread(circle.jpg)plt.imshow(img) plt.show()sobel算子 使用两个核 Gx [[-1,0,1], [-2,0,2], [-1,0,1]] Gy [[-1,-2,-1], [0,0,0], [1,2,1]] dst cv2.Sobel(src, ddepth, dx, dy, ksize) ddepth 深度 -1d…

爆款小红书免费流量体系课程(两周变现),小红书电商教程

课程下载&#xff1a;小红书电商教程-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载&#xff1a;关注我。 课程内容&#xff1a; 10-爆款标题(三段式取标题).mp3 11-爆款封面怎么作图.mp3 12-爆款内容的模板(三段式模板).mp3 13-小红书流量推荐背后的秘密(四大流…

【数据库原理及应用】期末复习汇总高校期末真题试卷11

试卷 一、填空题(每题 1 分&#xff0c;共10 分)    1. 数据库管理技术的发展经历了三个阶段&#xff1a;人工管理阶段&#xff0c;文件系统阶段和__________阶段。 2.实体完整性约束规定__________的取值不能为空值。 3. 计算机系统有三类安全性问题&#xff0c;即_____…

ARM据称将开发AI芯片,计划在2025年秋季开始量产

KlipC报道&#xff1a;软银集团下的芯片设计公司ARM将成立一个AI芯片部门&#xff0c;目标在2025年推出首批产品。 ARM是日本软银旗下的公司&#xff0c;成立34年&#xff0c;一直在科技行业中扮演着不可或缺的角色。此次&#xff0c;ARM将承担初期开发成本&#xff0c;预计将…

交易复盘-20240513

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 双成药业 (1)|[9:30]|[3566万]|0.34 中通客车 (1)|[9:43]|[7678万]|0.15 嘉华股份 (2)|[9:30]|[36…

Ubuntu22.04怎么安装cuda11.3

环境&#xff1a; WSL2 Ubuntu22.04 问题描述&#xff1a; Ubuntu22.04怎么安装cuda11.3 之前是11.5 解决方案&#xff1a; 在Ubuntu 22.04上安装CUDA 11.3需要一些步骤&#xff0c;因为CUDA 11.3不是为Ubuntu 22.04官方支持的版本。但是&#xff0c;您仍然可以通过以下步…

机器学习中表格数据预处理

目录 缺失值处理 在dataframe中进行填补 使用模型填补缺失值&#xff08;随机森林&#xff09; 异常值 数据无量纲化 中心化 数据归一化 数据标准化 缩放处理 转换数据类型 文本—>数值preprocessing.LabelEncoder&#xff1a;标签专用&#xff0c;能够将分类转换为…

使用Docker+Jar方式部署微服务工程(前后端分离)看着一篇就够了

本篇教程的使用到的技术有springboot、springcloud、Nacos、Docker、Nginx部署前后端分离访问的微服务。 部署一下Nacos 首先我们需要在服务器中&#xff08;或者本地部署启动一下Nacos&#xff09;&#xff0c;这里我采用服务器的方式进行部署&#xff0c;这里有一点不一样的…

【Web后端】Tomcat简介_安装_解决乱码_idea配置

1.1 简介 tomcat是在oracle公司的ISWDK(lavaServer Web DelevopmentKit)的基础上发展起来的一个优秀的开源的servlet容器tomcat使用java语言编写。运行稳定、可靠、效率高&#xff0c;可以和目前 主流web服务器一起工作(如IIS、Apache、 Nginx)tomcat是Apache软件基金会(Apach…