- 博客(20)
- 收藏
- 关注
原创 常见的同态加密算法收集
随着对crypten与密码学的了解,我们将逐渐深入学习相关知识。今天,我们将跟随同态加密的发展历程对相关算法进行简单的收集整理。同态加密是基于数学难题与计算复杂性理论的密码学技术。它是指密文状态下对加密信息进行计算得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的明文信息计算得到的输出结果是一致的。同态加密分为半同态加密和全同态加密。其中:半同态加密:允许在加密数据上执行特定的算术运算,加法乘法。全同态加密:支持对密文进行任意形式的加法乘法运算。半同态加密全同态加密乘法同态。
2025-01-29 18:17:32
1418
原创 CrypTen——基于pytorch的隐私保护机器学习框架
Crypten 是由 Facebook 人工智能研究院开源的一个深度学习框架扩展,专注于提供加密的深度学习计算能力。它基于 PyTorch 构建,将加密技术深度集成,使得模型训练与推理能够在密文数据上直接进行,确保数据在整个计算流程中的隐私性。其核心技术包括同态加密、秘密共享等多种密码学原语。这些技术允许数据以加密形式参与运算,计算结果解密后与明文计算结果相同,从而实现在不暴露原始数据的前提下完成复杂的深度学习任务。
2025-01-22 16:27:56
1391
原创 《Python零基础入门》——关于PyCharm使用技巧及python基本概念
从本次文章开始,我们将学习一门新的编程语言——Python。作为最热门的编程语言,Python相对比较清晰、简单。python主要的编译工具就是pycharm,关于pycharm的安装及python配置环境,大家可自行参考网络上的教程,本文不再赘述,我们将开门见山,直接进入pycharm的使用技巧以及python的基本概念。
2024-07-12 23:11:41
495
1
原创 关于《二叉树的层序遍历》的基础解析
本篇我们暂时不涉及关于二叉树的全部基本知识,而是了解一下二叉树的一个十分重要的操作——层序遍历。二叉树的遍历方式大致分为两种,深度优先遍历和广度优先遍历。·前序遍历:中左右·中序遍历:左中右·后序遍历:左右中层次遍历下面我们通过题目来了解层序遍历的一些操作,各题目的大体结构是相似的,只需改变其中的逻辑结构来实现题目要求。
2024-04-06 23:01:51
912
1
原创 关于《哈希表》的基础解析(下)
承接上篇,本篇将继续介绍有关哈希表的部分操作,并会将双指针法融入哈希表中。本篇直接通过对例题思路的思考来介绍双指针法的初步应用。
2024-03-03 21:14:46
383
原创 关于《链表》的基础解析(残卷)
int x;//单链表节点结构体定义作为动态数据结构,我们需要引入动态变量。此时使用malloc函数。综上,我们对链表已经有了一个基本的认知。在认识链表时,最好将抽象的文字具象化,把链表的基本结构画出来,有助于理解和解题,下面介绍链表的系列基本操作并附上例题。2.移除链表元素删除链表元素的基本算法是将该元素上一个指针域指向该元素下一个数据项;//指向下一项//删除掉p原先所指的一项给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回新的头节点。示例 2:[]
2024-02-16 15:22:16
792
1
原创 关于《螺旋矩阵》的基础解析
上述即为对“螺旋矩阵”的基础解析,万事万物皆有规律可循,螺旋矩阵的规律除了从外而内的递增,还有对称,正是对称使得第二题的代码不必将矩阵中心的元素单列出来。代码将数学的规律演绎的栩栩如生,数学使代码的逻辑变得有迹可循,二者浑然一体,才能创造出抽象且具体的螺旋矩阵。同时,我们要注意,如果只是单纯的依据该特点画出正方形的矩阵,我们会发现正方形四个角的位置对应的元素很容易出现重复操作的情况。:在了解螺旋矩阵的写法与原理后,本题的思路就是将螺旋矩阵的写法反其道而行之,将其中的元素列出来。,返回矩阵中的所有元素。
2024-02-13 14:48:31
1495
1
原创 关于《长度最小的子数组》的基础解析
上述即为对“长度最小的子数组”的基础解析,从连续子串到覆盖子串,窗口滑动的方法都是在遍历中找到目标元素,依据题意进行边界的移动与更新。更新的过程是一步接一步的,所谓“不积跬步,无以至千里”,一步步的更新才能找最后的答案。本题仅仅要求s中覆盖有t中元素的子串,子串中的元素可以不连续,元素个数只能多不能少。子数组只能容纳两种不同的元素,重复的元素可以连续,也可紧挨子数组中的元素,但该两种元素出现的位置必须连续。暴力解法是用常见的双循环遍历;之后随着遍历的进行,表格中的数据也随之更新,直至找到最小的覆盖子串。
2024-02-11 17:34:40
1023
1
原创 关于《移除元素》的基础解析
如何删除数组中的指定元素呢?对于数组中多余的元素直接删掉的方法是不可取的,因为数组的元素在内存地址中是连续的,只能覆盖,不能删除。常见的移除数组中的元素的方法有两种:双循环法和双指针法。(本篇主要介绍双指针法)
2024-02-06 18:21:14
973
4
原创 关于《二分查找》的基础解析
在查找有序数组的元素的题目中,二分法是一种常见的方法。二分法一般有两种写法,依据题目所给区间而分。而两种写法的区别在于while的表达式中是left<=right或是left<right以及right=middle或是middle-1。由于作者的能力有限,主要解释第一种,即在左闭右闭情况下的二分查找写法;对左闭右开情况作简述。
2024-02-04 23:30:00
858
2
原创 关于《链表》(单向链表的简单操作·上)
在C语言基础里,链表无疑是较为困难的一部分。但是作为具有逻辑性的东西,我们争取将复杂的问题具象化,便能使其迎刃而解。考虑到问题的复杂性和个人能力,以下只介绍单向链表。
2023-12-07 22:32:55
422
1
原创 关于《简单排序》----选择排序,插入排序,冒泡排序
那么从无序部分中取最左端的元素,将插入有序部分中比较排序(即插入到合适的有序部分中的位置),那么该位置即其之后的元素均向后移一个位置以便有序部分新增一个元素。思路:假定整个数组都是无序的,依次比较相邻两个数的大小,若前面的比后面大,这调换他们的位置。排序后为13,25,8。思路:在N个元素里,总是取最小的元素放在最前端的位置上,直到所有元素排列完毕。冒泡排序与插入排序类似,不过冒泡排序中,无序部分在前面,有序部分在后面。将整数组a分为有序和无序两部分,有序的部分在前面,无序的部分在后面。
2023-11-29 01:59:53
461
1
原创 关于《矩阵的种种》
(1)输入:如果想要输入一个m*n型的矩阵,我们首先要定义一个二维矩阵a[m][n],那么根据输入习惯,一行一行依次输入矩阵中的元素,这样又涉及到了循环。思路:定义三个矩阵(二维数组),其中前两个矩阵行列数相等,第三个矩阵的元素由前两个矩阵各行各列元素相加减。思路:可以另设一个矩阵,使该矩阵为原矩阵的转置,再判断对应行列的元素是否相等。(3)矩阵转置,除了矩阵的加减乘运算外,矩阵的转置也是一种重要的运算。关于矩阵暂时论到这里,重要的是对于线性代数中矩阵的理解。对于矩阵的四则运算只需掌握其运算原理和法则。
2023-11-25 20:55:50
903
原创 关于《求素数的方法》
但是,我们发现该方法要判断的数据过多,通过数学知识我们知道,一个数n的因数大小是以√n为“分界线”的(即一个比√n大,一个比√n小),那么我们只需要判断从2到√n中是否有n的因数即可;思路1:要求该数(i)的因数只有1和它本身,则通过待定因数的方法,从2到i-1取值,若其中有i的因数,说明其(i)不是素数。附加:输入一个正整数n(n<=100),在输入n个正整数,求在n个正整数中的素数之和,若无素数则输出0。求素数,即找到一个大于等于2的数,它的因数只有1和它本身。输出要求:输出数组中的质数与质数之和。
2023-11-24 22:20:25
433
2
原创 关于《计算星期方法》
由此观之,一个题目可由多个思路多个方法求解,在程序设计中寻找最简单的方法应是学习程序的同学应具备的意识。多加练习,明确每个方法的思路,找到多个方法之间的区别,就会有“柳暗花明又一村”的感觉啦。附加:已知2021年1月25日是星期三,编写一个程序,输入“年 月 日”表示的一个2012年1月25日以后的日期,输出该星期是星期几(星期天输出0)。天是星期几,并表示工作日(星期一到星期五)和休息日(星期六和星期天),星期天数由。例3:数组加字符串(复杂思路中有许多多余步骤)例1:使用switch语句。
2023-11-24 11:47:56
502
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人