2024电工杯A题保姆级分析完整思路+代码+数据教学

2024电工杯A题保姆级分析完整思路+代码+数据教学

A题题目:园区微电网风光储协调优化配置 

接下来我们将按照题目总体分析-背景分析-各小问分析的形式来

总体分析:

题目要求对园区微电网进行风光储协调优化配置,具体涉及三个园区(A、B、C)的独立运营和联合运营情况。目标是通过合理配置储能系统,尽量提高风光电量的负荷占比,减少弃电,同时考虑投资及其收益。具体需要解决以下几个问题:

问题1:各园区独立运营储能配置方案及经济性分析

  1. 未配置储能时各园区的购电量、弃风弃光电量、总供电成本和单位电量平均供电成本分析。

  2. 配置50kW/100kWh储能系统后的经济性、最优运行策略及购电计划分析。

  3. 判断50kW/100kWh方案是否最优,若不是,制定最优储能配置方案并论证其优越性。

问题2:联合园区储能配置方案及经济性分析

  1. 未配置储能时联合园区的总购电量、总弃风弃光电量、总供电成本和单位电量平均供电成本分析。

  2. 制定联合园区的储能最优配置方案及其运行策略、购电计划,分析经济性。

  3. 比较联合运营与独立运营的经济收益,并分析主要影响因素。

问题3:园区风、光、储能的协调配置方案及经济性分析

  1. 考虑负荷增长50%后的独立运营和联合运营方案,制定风光储协调配置方案。

  2. 按全年12个月典型日风光发电数据,结合分时电价制定购电计划并分析经济性。

背景分析:

随着可再生能源(如风电和光伏发电)的普及,如何高效利用这些不稳定的电力资源成为一个重要课题。微电网系统通过结合风电、光伏发电与储能系统,能够在一定程度上解决风光发电的波动性和间歇性问题,优化电力资源配置,提高可再生能源的利用率。

具体背景:

  1. 园区微电网结构:

  • 三个园区(A、B、C)各自独立接入主电网。

  • 每个园区均有其最大负荷及风光发电装机容量(园区A:750kW光伏,447kW负荷;园区B:1000kW风电,419kW负荷;园区C:600kW光伏、500kW风电,506kW负荷)。

  • 经济性考量:

  • 可再生能源优先供给园区负荷,电力不足部分从主电网购电(购电价格1元/kWh)。

  • 由于风光发电的波动特性,可能出现弃电现象(风电、光伏电量超过负荷且不能售回主电网)。

  • 储能系统配置:

  • 配置磷酸铁锂电池储能系统(功率单价800元/kW,能量单价1800元/kWh,SOC范围10%-90%,充/放电效率95%,寿命10年)。

  • 通过配置储能系统,能够缓解负荷与发电功率的不匹配,减少弃电量。

问题分析:

  1. 独立运营的经济性分析:

  • 未配置储能时的经济性:购电量、弃电量、总供电成本及平均供电成本。

  • 配置储能系统后的经济性:储能运行策略及购电计划,分析是否改善经济性。

  • 联合运营的经济性分析:

  • 未配置储能时,三个园区联合运营的经济性:总购电量、总弃电量、总供电成本及平均供电成本。

  • 制定联合运营的储能最优配置方案,并分析其经济性。

  • 比较独立运营与联合运营的经济收益,分析主要影响因素。

  • 风光储协调配置方案:

  • 考虑负荷增长50%后的独立运营和联合运营方案。

  • 使用全年12个月的典型日发电数据,结合分时电价制定购电计划,分析经济性。

通过以上分析,最终来优化储能配置,提高风光发电的利用率,降低总供电成本,实现经济效益的最大化。

数据集分析:

我们以附件1为例,对其进行数据预处理和EDA(探索性数据分析),我们分为以下几步(python代码)

  1. 读取数据

  2. 数据预处理

  • 检查缺失值

  • 数据类型转换

  • EDA

  • 各园区负荷数据的基本统计描述

  • 各园区负荷数据的可视化

1. 读取数据

import pandas as pd

# 读取附件1:各园区典型日负荷数据

file_path = '/mnt/data/附件1:各园区典型日负荷数据.xlsx'

load_data = pd.read_excel(file_path, sheet_name=None)

# 查看数据表名称

sheet_names = load_data.keys()

print("数据表名称:", sheet_names)

# 提取每个园区的数据

load_data_A = load_data['园区A']

load_data_B = load_data['园区B']

load_data_C = load_data['园区C']

# 显示每个园区数据的前几行

print("园区A负荷数据前几行:")

print(load_data_A.head())

print("\n园区B负荷数据前几行:")

print(load_data_B.head())

print("\n园区C负荷数据前几行:")

print(load_data_C.head())

2. 数据预处理

检查缺失值和数据类型转换

# 检查各园区数据的缺失值情况

print("园区A缺失值情况:")

print(load_data_A.isnull().sum())

print("\n园区B缺失值情况:")

print(load_data_B.isnull().sum())

print("\n园区C缺失值情况:")

print(load_data_C.isnull().sum())

# 检查数据类型

print("\n园区A数据类型:")

print(load_data_A.dtypes)

print("\n园区B数据类型:")

print(load_data_B.dtypes)

print("\n园区C数据类型:")

print(load_data_C.dtypes)

# 如有必要,进行数据类型转换(此处假设数据类型已经正确,不需要转换)

3. 探索性数据分析(EDA)

基本统计描述

# 各园区负荷数据的基本统计描述

print("园区A负荷数据基本统计描述:")

print(load_data_A.describe())

print("\n园区B负荷数据基本统计描述:")

print(load_data_B.describe())

print("\n园区C负荷数据基本统计描述:")

print(load_data_C.describe())

负荷数据可视化

import matplotlib.pyplot as plt

# 设置绘图风格

plt.style.use('seaborn-darkgrid')

# 可视化园区A的负荷数据

plt.figure(figsize=(12, 6))

plt.plot(load_data_A['时间'], load_data_A['负荷'], label='园区A负荷')

plt.xlabel('时间 (小时)')

plt.ylabel('负荷 (kW)')

plt.title('园区A典型日负荷曲线')

plt.legend()

plt.show()

# 可视化园区B的负荷数据

plt.figure(figsize=(12, 6))

plt.plot(load_data_B['时间'], load_data_B['负荷'], label='园区B负荷', color='orange')

plt.xlabel('时间 (小时)')

plt.ylabel('负荷 (kW)')

plt.title('园区B典型日负荷曲线')

plt.legend()

plt.show()

# 可视化园区C的负荷数据

plt.figure(figsize=(12, 6))

plt.plot(load_data_C['时间'], load_data_C['负荷'], label='园区C负荷', color='green')

plt.xlabel('时间 (小时)')

plt.ylabel('负荷 (kW)')

plt.title('园区C典型日负荷曲线')

plt.legend()

plt.show()

问题一分析:

这个问题包含三个部分:

  1. 未配置储能时的经济性分析

  2. 配置储能后的经济性分析

  3. 储能系统配置方案优化

下面详细分析每个部分需要解决的问题和方法。

1.1 未配置储能时的经济性分析

需要解决的问题:

  • 计算各园区的购电量。

  • 计算各园区的弃风弃光电量。

  • 计算总供电成本和单位电量平均供电成本。

  • 分析影响经济性的关键因素。

步骤:

  1. 从负荷数据和风光发电数据中提取各园区的典型日数据。

  2. 计算各时刻的风光发电总量。

  3. 比较风光发电总量与负荷需求,计算购电量和弃电量。

  4. 计算总供电成本和单位电量平均供电成本。

1.2 配置储能后的经济性分析

需要解决的问题:

  • 配置50kW/100kWh储能系统后的经济性分析。

  • 制定储能最优运行策略及购电计划。

  • 分析配置储能后的运行经济性是否改善及其原因。

步骤:

  1. 引入储能系统,考虑储能系统的功率和容量限制,以及充放电效率。

  2. 在负荷需求大于风光发电时,优先使用储能系统提供电力,不足部分从电网购电。

  3. 在风光发电大于负荷需求时,优先充电至储能系统,超出部分视为弃电。

  4. 计算配置储能系统后的购电量、弃电量、总供电成本和单位电量平均供电成本。

  5. 比较未配置储能和配置储能情况下的经济性。

1.3 储能系统配置方案优化

需要解决的问题:

  • 判断50kW/100kWh储能方案是否最优。

  • 如果不是,制定各园区最优的储能功率、容量配置方案。

  • 论证所制定方案的优越性。

步骤:

  1. 通过不同储能配置方案的模拟,比较各配置方案的经济性指标。

  2. 确定在各园区经济性最优的储能功率和容量配置。

  3. 分析最优配置方案的优越性,包括投资成本与运行成本的综合考虑。

下面给大家第一问需要的代码,包括未配置储能时的经济性分析和配置储能后的经济性分析:

读取数据和初步预处理

import pandas as pd

# 读取附件1:各园区典型日负荷数据

file_path = '/mnt/data/附件1:各园区典型日负荷数据.xlsx'

load_data = pd.read_excel(file_path, sheet_name=None)

# 提取每个园区的数据

load_data_A = load_data['园区A']

load_data_B = load_data['园区B']

load_data_C = load_data['园区C']

# 读取附件2:各园区典型日风光发电数据

file_path_gen = '/mnt/data/附件2:各园区典型日风光发电数据.xlsx'

generation_data = pd.read_excel(file_path_gen, sheet_name=None)

# 提取每个园区的发电数据

generation_data_A = generation_data['园区A']

generation_data_B = generation_data['园区B']

generation_data_C = generation_data['园区C']

计算未配置储能时的经济性

# 定义购电成本

grid_cost = 1 # 元/kWh

# 计算未配置储能时的购电量、弃风弃光电量和供电成本

def calculate_no_storage(load, generation):

load['购电量'] = 0

load['弃电量'] = 0

load['供电成本'] = 0

for i in range(len(load)):

generation_total = generation['风电功率'][i] + generation['光伏功率'][i]

if generation_total >= load['负荷'][i]:

load['弃电量'][i] = generation_total - load['负荷'][i]

else:

load['购电量'][i] = load['负荷'][i] - generation_total

load['供电成本'][i] = load['购电量'][i] * grid_cost

total_cost = load['供电成本'].sum()

total_load = load['负荷'].sum()

avg_cost = total_cost / total_load if total_load != 0 else 0

return total_cost, avg_cost, load['购电量'].sum(), load['弃电量'].sum()

# 园区A

total_cost_A, avg_cost_A, total_grid_A, total_discard_A = calculate_no_storage(load_data_A, generation_data_A)

print(f"园区A未配置储能时总供电成本: {total_cost_A} 元, 单位电量平均供电成本: {avg_cost_A} 元/kWh, 总购电量: {total_grid_A} kWh, 总弃电量: {total_discard_A} kWh")

# 园区B

total_cost_B, avg_cost_B, total_grid_B, total_discard_B = calculate_no_storage(load_data_B, generation_data_B)

print(f"园区B未配置储能时总供电成本: {total_cost_B} 元, 单位电量平均供电成本: {avg_cost_B} 元/kWh, 总购电量: {total_grid_B} kWh, 总弃电量: {total_discard_B} kWh")

# 园区C

total_cost_C, avg_cost_C, total_grid_C, total_discard_C = calculate_no_storage(load_data_C, generation_data_C)

print(f"园区C未配置储能时总供电成本: {total_cost_C} 元, 单位电量平均供电成本: {avg_cost_C} 元/kWh, 总购电量: {total_grid_C} kWh, 总弃电量: {total_discard_C} kWh")

计算配置储能后的经济性

# 定义储能系统参数

storage_power = 50 # kW

storage_capacity = 100 # kWh

storage_efficiency = 0.95

soc_min = 0.1

soc_max = 0.9

# 计算配置储能后的购电量、弃风弃光电量和供电成本

def calculate_with_storage(load, generation):

load['购电量'] = 0

load['弃电量'] = 0

load['供电成本'] = 0

soc = storage_capacity * soc_max # 初始SOC设为最大值

for i in range(len(load)):

generation_total = generation['风电功率'][i] + generation['光伏功率'][i]

load_needed = load['负荷'][i]

if generation_total >= load_needed:

surplus = generation_total - load_needed

if soc < storage_capacity * soc_max:

charge_power = min(surplus, storage_power) * storage_efficiency

soc += charge_power

if soc > storage_capacity * soc_max:

soc = storage_capacity * soc_max

surplus -= charge_power / storage_efficiency

load['弃电量'][i] = surplus

else:

deficit = load_needed - generation_total

if soc > storage_capacity * soc_min:

discharge_power = min(deficit, storage_power) / storage_efficiency

soc -= discharge_power

if soc < storage_capacity * soc_min:

soc = storage_capacity * soc_min

deficit -= discharge_power * storage_efficiency

load['购电量'][i] = deficit

load['供电成本'][i] = load['购电量'][i] * grid_cost

total_cost = load['供电成本'].sum()

total_load = load['负荷'].sum()

avg_cost = total_cost / total_load if total_load != 0 else 0

return total_cost, avg_cost, load['购电量'].sum(), load['弃电量'].sum()

# 园区A

total_cost_A_with_storage, avg_cost_A_with_storage, total_grid_A_with_storage, total_discard_A_with_storage = calculate_with_storage(load_data_A, generation_data_A)

print(f"园区A配置储能后总供电成本: {total_cost_A_with_storage} 元, 单位电量平均供电成本: {avg_cost_A_with_storage} 元/kWh, 总购电量: {total_grid_A_with_storage} kWh, 总弃电量: {total_discard_A_with_storage} kWh")

# 园区B

total_cost_B_with_storage, avg_cost_B_with_storage, total_grid_B_with_storage, total_discard_B_with_storage = calculate_with_storage(load_data_B, generation_data_B)

print(f"园区B配置储能后总供电成本: {total_cost_B_with_storage} 元, 单位电量平均

当然,第一问想要做的出彩,可以使用以下方法:

混合整数线性规划(Mixed-Integer Linear Programming, MILP)

混合整数线性规划适用于包含整数变量的优化问题。储能系统配置中的开关状态、充放电决策可以用整数变量表示,通过MILP求解最优配置方案。

元启发式算法(Metaheuristic Algorithms)

例如,遗传算法(Genetic Algorithm)、粒子群优化(Particle Swarm Optimization, PSO)等,这些算法能够有效搜索复杂的非线性和非凸优化空间,找到近似最优解。

仿真建模与蒙特卡洛模拟(Simulation Modeling and Monte Carlo Simulation)

这里给大家讲解一下粒子群优化如何做这道题目:

PSO算法概述

PSO通过模拟鸟群觅食行为来优化问题,主要包括以下步骤:

  1. 初始化一群粒子,每个粒子表示一个潜在解。

  2. 更新每个粒子的速度和位置,使其趋向于自身和群体的最佳位置。

  3. 评估每个粒子的适应度值,根据适应度值更新全局最佳位置。

  4. 重复以上步骤直到满足终止条件(如达到最大迭代次数或适应度值变化小于设定阈值)。

Python实现

下面是一个使用PSO算法优化储能系统配置方案的示例代码。假设我们需要优化储能系统的功率和容量,以最小化总供电成本。

import numpy as np

import pandas as pd

from pyswarm import pso

# 读取数据

file_path = '/mnt/data/附件1:各园区典型日负荷数据.xlsx'

load_data = pd.read_excel(file_path, sheet_name=None)

load_data_A = load_data['园区A']

file_path_gen = '/mnt/data/附件2:各园区典型日风光发电数据.xlsx'

generation_data = pd.read_excel(file_path_gen, sheet_name=None)

generation_data_A = generation_data['园区A']

# 定义PSO优化目标函数

def cost_function(x):

storage_power, storage_capacity = x

storage_efficiency = 0.95

soc_min, soc_max = 0.1, 0.9

grid_cost = 1

T = len(load_data_A)

soc = storage_capacity * soc_max # 初始SOC设为最大值

total_cost = 0

for t in range(T):

generation_total = generation_data_A['风电功率'][t] + generation_data_A['光伏功率'][t]

load_needed = load_data_A['负荷'][t]

if generation_total >= load_needed:

surplus = generation_total - load_needed

if soc < storage_capacity * soc_max:

charge_power = min(surplus, storage_power) * storage_efficiency

soc += charge_power

if soc > storage_capacity * soc_max:

soc = storage_capacity * soc_max

surplus -= charge_power / storage_efficiency

else:

deficit = load_needed - generation_total

if soc > storage_capacity * soc_min:

discharge_power = min(deficit, storage_power) / storage_efficiency

soc -= discharge_power

if soc < storage_capacity * soc_min:

soc = storage_capacity * soc_min

deficit -= discharge_power * storage_efficiency

total_cost += deficit * grid_cost

return total_cost

# PSO参数

lb = [10, 50] # 储能功率和容量的下界

ub = [200, 500] # 储能功率和容量的上界

maxiter = 100 # 最大迭代次数

swarmsize = 30 # 粒子群大小

# 执行PSO优化

best_x, best_cost = pso(cost_function, lb, ub, swarmsize=swarmsize, maxiter=maxiter)

print(f"最优储能功率: {best_x[0]} kW")

print(f"最优储能容量: {best_x[1]} kWh")

print(f"最小总供电成本: {best_cost} 元")

通过上述代码,我们使用PSO算法优化了储能系统的功率和容量配置,找到了使总供电成本最小化的最优配置方案。可以根据具体问题和数据调整PSO算法的参数(如粒子群大小、最大迭代次数)来获得更优的结果。

问题2-3后续更新

其中更详细的思路、各题目思路、代码、讲解视频、成品论文及其他相关内容,可以点击下方名片获取哦!

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

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

相关文章

Python魔法学院:PySpider篇——网络世界的探险与征服

Hi&#xff0c;我是阿佑&#xff0c;迎来到Python魔法学院&#xff0c;今天阿佑要带大家学习的是PySpider篇——一门让你在网络世界中探险与征服的魔法课程。从环境搭建到高级功能应用&#xff0c;再到性能优化&#xff0c;每一个章节都是成为数据大师的必经之路&#xff01; 文…

深度学习之基于YOLOV5的口罩检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着全球公共卫生事件的频发&#xff0c;口罩成为了人们日常生活中不可或缺的一部分。在公共场所&am…

Nacos 微服务管理

Nacos 本教程将为您提供Nacos的基本介绍&#xff0c;并带您完成Nacos的安装、服务注册与发现、配置管理等功能。在这个过程中&#xff0c;您将学到如何使用Nacos进行微服务管理。下方是官方文档&#xff1a; Nacos官方文档 1. Nacos 简介 Nacos&#xff08;Naming and Confi…

Qt for Android 乱码问题

java文件乱码 导致编译失败 使用notepad等查看java文件的编码&#xff0c; 修改成utf-8&#xff0c;否则会因为乱码编译失败&#xff0c; 记住是utf8不是utf8-bom. 做如下修改确保utf8文件不被修改掉。 编译时错误显示的是乱码 如果开发其他乱码再改回&#xff0c; 原本是Sys…

Q-Learning学习笔记-李宏毅

introduction 学习的并不是policy&#xff0c;而是学习critic&#xff0c;critic用来评价policy好还是不好&#xff1b;一种critic&#xff1a;state value function V π ( s ) V^\pi(s) Vπ(s)是给定一个policy π \pi π&#xff0c;在遇到state s s s之后累积的reward的…

docker所在磁盘空间不足 迁移数据

1.查看原始目录docker info | grep "Docker Root Dir" 一般在/var/lib/docker 2.停止docker service docekr stop 3.移动数据 注意 移动前不要创建docker目录&#xff01; mv /var/lib/docker /home/docker 4.进入目录查看是否与原始目录相同&#xff0c;确认一…

操作系统总结(2)

目录 2.1 进程的概念、组成、特征 &#xff08;1&#xff09;知识总览 &#xff08;2&#xff09;进程的概念 &#xff08;3&#xff09;进程的组成—PCB &#xff08;4&#xff09;进程的组成---程序段和数据段 &#xff08;5&#xff09;程序是如何运行的呢&#xff1f…

微服务架构下Docker容器技术与Kubernetes(K8S)

Kubernetes、微服务和Docker容器技术的结合提供了一个强大、灵活且高效的平台&#xff0c;能够应对现代应用程序的复杂性和动态性。Kubernetes的自动化管理、服务发现、负载均衡和配置管理&#xff0c;与Docker的标准化打包和运行环境相结合&#xff0c;最大化地发挥了微服务架…

听说京东618裁员没?上午还在赶需求,下午就开会通知被裁了~

文末还有最新面经共享群&#xff0c;没准能让你刷到意向公司的面试真题呢。 京东也要向市场输送人才了? 在群里看到不少群友转发京东裁员相关的内容&#xff1a; 我特地去网上搜索了相关资料&#xff0c;看看网友的分享&#xff1a; 想不到马上就618了&#xff0c;东哥竟然抢…

电磁仿真软件CST六面体网格和六面体TLM网格的区别【仿真入门】

六面体网格&#xff08;1&#xff09; Time Domain Solver中使用的Hexahedral Mesh&#xff01; 网格可以说是为了Maxwell方程式计算&#xff0c;将仿真结构分割成许多小的网格单元。因此&#xff0c;仿真计算中识别的结构是网格结构。 Time Domain Solver中使用的Hexahedra…

【Python】 去除字符串中的所有空白字符

基本原理 在Python中&#xff0c;字符串&#xff08;String&#xff09;是不可变的数据类型&#xff0c;这意味着一旦创建了一个字符串&#xff0c;就不能修改它的内容。然而&#xff0c;我们可以创建一个新的字符串&#xff0c;它包含原始字符串中的字符&#xff0c;但不包含…

【Unitydemo制作】音游制作—控制器与特效

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;就业…

2024电工杯A题详细思路代码分析数学建模:园区微电网风光储协调优化配置

题目分析&#xff1a;园区微电网风光储协调优化配置 我们会先给出三个问题总体的分析&#xff0c;最后会详细分析问题一的建模和详细内容。 背景&#xff1a; 园区微电网由风光发电和主电网联合为负荷供电&#xff0c;为了尽量提高风光电量的负荷占比&#xff0c;需配置较高比…

《TortoiseSVN》简单使用说明

##################工作记录#################### 常用图标说明 一个新检出的工作副本 修改过的文件 更新过程遇到冲突的文件 你当前对文件进行了锁定&#xff0c;不要忘记不使用后要解锁&#xff0c;否则别人无法使用 当前文件夹下的某些文件或文件夹已经被调度从版本控制…

Lc42---- 1200. 最小绝对差(java版)---排序

1.题目描述 2.知识点和思路 &#xff08;1&#xff09;先排序 &#xff08;2&#xff09;再计算元素对之间的差值&#xff0c;找到最小绝对差&#xff1a; &#xff08;初始化 minDiff 为最大整数值&#xff0c;然后遍历数组找出相邻元素之间的最小差值。&#xff09; int m…

在R中赞扬下努力工作的你,奖励一份CheetShet

传说有个R&#xff0c;R里有个包&#xff0c;包的名字叫praise&#xff0c;会一直不停地夸赞你。 > praise() [1] "You are sensational!" > praise() [1] "You are luminous!" > praise() [1] "You are pioneering!" > praise() […

文件中海量数据的排序

文件中海量数据的排序 题目&#xff1a; 跟之前堆排序可以解决TopK问题一样&#xff0c;我们来看看归并排序会用来解决什么问题&#xff1f; 思路&#xff1a; 我们说归并排序是外排序。其实就是将数据分成一个个小段&#xff0c;在内存中进行排序&#xff0c;再拿出内存&am…

2024年 电工杯 (B题)大学生数学建模挑战赛 | 大学生平衡膳食食谱的优化设计 | 数学建模完整代码解析

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享&#xff0c;与你一起了解前沿科技知识&#xff01; 本次DeepVisionary带来的是电工杯的详细解读&#xff1a; 完整内容可以在文章末尾全文免费领取&阅读&#xff01; 问题1&…

摸鱼大数据——Hadoop基础理论知识之ZooKeeper1-3

1、ZK概述 ZooKeeper概念: Zookeeper是一个分布式协调服务的开源框架。本质上是一个分布式的小文件存储系统 ZooKeeper作用: 主要用来解决分布式集群中应用系统的一致性问题。HA搭建&#xff1b;管理去中心化的集群&#xff08;例如Kafka&#xff09; ZooKeeper结构: 采用树形…

回溯法——(2)n皇后问题(C语言讲解)(LeetCode51 N皇后思想)(4皇后棋盘画图举例)(附代码)

目录 一、问题概括 二、算法分析 三、举例&#xff08;4皇后棋盘&#xff09; 四、算法实现 4.1运行结果&#xff1a; 51. N 皇后 - 力扣&#xff08;LeetCode&#xff09; 一、问题概括 n皇后问题是19世纪著名数学家高斯于1850年提出的。 问题是&#xff1a;在nn的棋盘上…