忘了周二都干啥了(2005年9月6日,周二)

像牛牛一样工作着。

内容概要:本文详细介绍了一个基于Java和Vue的联邦学习隐私保护推荐系统的设计与实现。系统采用联邦学习架构,使用户数据在本地完成模型训练,仅上传加密后的模型参数或梯度,通过中心服务器进行联邦平均聚合,从而实现数据隐私保护与协同建模的双重目标。项目涵盖完整的系统架构设计,包括本地模型训练、中心参数聚合、安全通信、前后端解耦、推荐算法插件化等模块,并结合差分隐私与同态加密等技术强化安全性。同时,系统通过Vue前端实现用户行为采集与个性化推荐展示,Java后端支撑高并发服务与志处理,形成“本地训练—参数上传—全局聚合—模型下发—个性化微调”的完整闭环。文中还提供了关键模块的代码示例,如特征提取、模型聚合、加密上传等,增强了项目的可实施性与工程参考价值。 适合人群:具备一定Java和Vue开发基础,熟悉Spring Boot、RESTful API、分布式系统或机器学习相关技术,从事推荐系统、隐私计算或全栈开发方向的研发人员。 使用场景及目标:①学习联邦学习在推荐系统中的工程落地方法;②掌握隐私保护机制(如加密传输、差分隐私)与模型聚合技术的集成;③构建高安全、可扩展的分布式推荐系统原型;④实现前后端协同的个性化推荐闭环系统。 阅读建议:建议结合代码示例深入理解联邦学习流程,重点关注本地训练与全局聚合的协同逻辑,同时可基于项目架构进行算法替换与功能扩展,适用于科研验证与工业级系统原型开发。
源码来自:https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
<think>我们有两个需求: 1. 调整周末顺序,使周排在周六之前(即每周的第一天为周)。 2. 将周几的显示格式改为简写形式:、一、二、...、六。 解决方案: 1. 调整顺序:使用`firstDay: 0`(0代表周)来设置每周的第一天为周。 2. 修改显示格式:使用`dayHeaderFormat`选项,并提供一个函数或对象来定制期标题的显示。 具体步骤: - `dayHeaderFormat`可以是一个字符串,使用[期格式](https://fullcalendar.io/docs/date-formatting)中的令牌(tokens),也可以是一个函数。 - 对于简写形式,我们可以使用令牌`'dd'`,它会显示、一、二...六(在中文环境下)。 但是注意:在中文环境下,FullCalendar默认使用中文语言包时,`'dd'`应该会显示为“”、“一”等。 - 我们需要确保历使用中文语言包,设置`locale: 'zh-cn'`。 如果默认的`'dd'`不能满足(比如显示的不是单个字符),我们可以使用函数自定义。 示例代码: 使用`dayHeaderFormat: { weekday: 'short' }`,在中文环境下,`short`会显示为“周”、“周一”等,但我们只需要一个字,所以我们可以用函数自定义。 自定义函数示例: ```javascript dayHeaderFormat: function(arg) { // arg.date是一个Date对象 // 返回星期几的简写,我们只取最后一个字符(因为中文环境下,arg.date.toLocaleString('zh-cn', { weekday: 'short' })会返回“周”、“周一”等) // 但是注意:在中文中,我们通常用“”、“一”等一个字表示。 // 另外,也可以使用数组映射 var weekdays = ['', '一', '二', '三', '四', '五', '六']; return weekdays[arg.date.getDay()]; } ``` 但是,注意:在周视图下,`arg`是一个对象,包含`date`(该列的期)和`view`(当前视图)等信息。我们只需要返回一个字符串。 然而,FullCalendar提供了更简单的方式:使用`locale`和`dayHeaderFormat`的字符串格式。我们可以尝试: ```javascript locale: 'zh-cn', dayHeaderFormat: 'dd', // 在中文环境下,dd会显示为、一、二...六 ``` 所以,我们可以先尝试使用`dd`,因为这样最简单。 完整配置: ```javascript document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 设置周为第一天 locale: 'zh-cn', // 设置中文环境 dayHeaderFormat: { weekday: 'short' // 或者直接使用字符串 'dd' }, // 或者直接使用字符串:dayHeaderFormat: 'dd', // 但注意:在中文环境下,'short'会显示如“周”,而'dd'会显示“”,所以我们更希望用'dd' // 实际上,在FullCalendar中,期表头的默认格式就是'dd',所以设置locale为中文后,默认就是显示一个字。 // 因此,我们也可以不设置dayHeaderFormat,因为默认就是'dd'。 }); calendar.render(); }); ``` 验证: 在中文环境下,设置`locale: 'zh-cn'`后,默认的期表头格式就是“”、“一”、“二”等。所以我们可以省略`dayHeaderFormat`设置。 因此,只需要: - 设置`firstDay: 0` - 设置`locale: 'zh-cn'` 注意:如果项目中没有引入中文语言包,需要先引入。使用CDN方式: ```html <script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js"></script> ``` 如果使用npm包,则需要导入: ```javascript import { Calendar } from '@fullcalendar/core'; import zhCnLocale from '@fullcalendar/core/locales/zh-cn'; // 然后在配置中加入locale: zhCnLocale 或者 'zh-cn' ``` 完整示例(使用CDN): ```html <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <link href='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/main.min.css' rel='stylesheet' /> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js'></script> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js'></script> <script> document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 周为第一天 locale: 'zh-cn', // 使用中文 headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay' }, events: [ // 示例事件 { title: '会议', start: new Date() } ] }); calendar.render(); }); </script> </head> <body> <div id='calendar'></div> </body> </html> ``` 这样,周视图的表头将显示为:、一、二、三、四、五、六,且第一列是周。 相关问题: 1. 如何设置FullCalendar每周的第一天为周一? 2. 如何在FullCalendar中隐藏周末? 3. FullCalendar如何自定义期标题的显示格式? 4. 如何为FullCalendar添加中文语言支持?</think>在 FullCalendar 中实现周为首列并简写期标题,需结合 `firstDay` 和期格式化选项。以下是完整解决方案: ### 解决方案步骤 1. **设置周为首列** 使用 `firstDay: 0`(0 表示周): ```javascript firstDay: 0, // 周作为每周第一天 ``` 2. **简写期标题格式** 通过 `dayHeaderFormat` 自定义格式(需配合中文语言包): ```javascript locale: 'zh-cn', // 启用中文环境 dayHeaderFormat: { weekday: 'short' // 简写格式:/一/二等 }, ``` ### 完整示例代码 ```html <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <link href='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/main.min.css' rel='stylesheet'> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js'></script> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js'></script> <script> document.addEventListener('DOMContentLoaded', function() { const calendarEl = document.getElementById('calendar'); const calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 周为首列 locale: 'zh-cn', // 中文环境 dayHeaderFormat: { // 简写标题 weekday: 'short' // 显示为/一/二等 }, headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek' } }); calendar.render(); }); </script> </head> <body> <div id='calendar'></div> </body> </html> ``` ### 关键配置说明 | **配置项** | **值** | **作用** | |--------------------|-----------|----------------------------------| | `firstDay` | `0` | 设置周为每周第一天 | | `locale` | `'zh-cn'` | 启用中文语言环境 | | `dayHeaderFormat` | `{ weekday: 'short' }` | 简写期标题为单字符(/一/二等) | ### 效果对比 - **默认顺序**:周一 → 二 → 三 → 四 → 五 → 六 → - **调整后顺序**:**** → 一 → 二 → 三 → 四 → 五 → 六 - **标题格式**:从“星期/星期一”简化为“/一/二” ### 注意事项 1. **语言包依赖**:必须引入中文语言包(通过 CDN 或 npm 安装) 2. **多视图支持**:此配置同样适用于 `timeGridWeek` 等视图 3. **移动端适配**:自动响应式布局,无需额外设置 4. **高级自定义**:如需更复杂格式,可用函数自定义: ```javascript dayHeaderFormat: function(arg) { const days = ['', '一', '二', '三', '四', '五', '六']; return days[arg.date.getDay()]; } ``` [^1]: FullCalendar 期格式化文档:[Date Formatting](https://fullcalendar.io/docs/date-formatting)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值