(13)搜索

android 13.0 Settings去掉二级三级菜单搜索功能 在13.0的系统rom定制化开发中,由于客户定制开发需求,需要去掉Settings里面的搜索功能,主页面的搜索功能,在前面的章节已经讲了 这里需要去掉二级三级菜单的搜索功能,需要从搜索功能流程分析去掉搜索功能 阅读详情

一、简介

    通过构造可生成一个随机整数的有序集合(不允许重复)来引出问题的讨论。C++相关的代码使用了set数据结构,具体代码如下所示:

void gensets(int m, int maxval)
{
    int *v = new int[m];
    IntSetImp S(m, maxval);
    while(S.size() < m)
        S.insert(bigrand() % maxval);
    S.report(v);
    for(int i=0;i < m;i++)
        cout<<v[i]<<"\n";
}
二、链表

    而后通过描述线性结构,分别以类似插入排序的数组及链表查找插入数据的形式实现分析了数据的插入顺序插入操作。这里只介绍下链表的相关实现,下面是链表的递归插入实现:

    思路:node *rinsert(node *p, int t)是关键函数,注意调用的时候,p->next=rinsert(p->next,t); 如果小于则一直等于next,如果p-val > t 则 p =new node(t,p);说明第一个大于t的p被作为新节点(val=t)的next,代码实现如下:

class IntSetList {
private:
	int	n;
	struct node {
		int val;
		node *next;
		node(int i, node *p) { val = i; next = p; }
	};
	node *head, *sentinel;
	node *rinsert(node *p, int t) //递归插入函数
	{	if (p->val < t) {
			p->next = rinsert(p->next, t);
		} else if (p->val > t) {
			p = new node(t, p);
			n++;
		}
		return p;
	}
public:
	IntSetList(int maxelements, int maxval)  //初始化函数时候,将哨兵置于第一个
	{	sentinel = head = new node(maxval, 0);
		n = 0;
	}
	int size() { return n; }
	void insert(int t) { head = rinsert(head, t); } //调用递归插入函数
	void insert2(int t)
	{	node *p;
		if (head->val == t)
			return;
		if (head->val > t) {
			head = new node(t, head);
			n++;
			return;
		}
		for (p = head; p->next->val < t; p = p->next)
			;
		if (p->next->val == t)
			return;
		p->next = new node(t, p->next);
		n++;
	}
	void insert3(int t)//类似数组的插入
	{	node **p;
		for (p = &head; (*p)->val < t; p = &((*p)->next))//找到第一个大于等于p的节点
			;
		if ((*p)->val == t)
			return;
		*p = new node(t, *p);//创建节点的同时,将节点插入到正确位置
		n++;
	}
	void report(int *v)//输出整个链表
	{	int j = 0;
		for (node *p = head; p != sentinel; p = p->next)
			v[j++] = p->val;
	}
};
    第二种实现方法(链表非递归):主要是找到第一个大于t的节点,然后插入到其前面。实现代码如下:

class IntSetList2 {
private:
	int	n;
	struct node {
		int val;
		node *next;
	};
	node *head, *sentinel, *freenode;
public:
	IntSetList2(int maxelements, int maxval)//最大元素个数和哨兵
	{	sentinel = head = new node;
		sentinel->val = maxval;
		freenode = new node[maxelements];
		n = 0;
	}
	int size() { return n; }
	void insert(int t)
	{	node **p;
		for (p = &head; (*p)->val < t; p = &((*p)->next))
			;
		if ((*p)->val == t)
			return;
		freenode->val = t; //将t插入到第一个大于t的元素的前面
		freenode->next = *p;
		*p = freenode++;
		n++;
	}
	void report(int *v)
	{	int j = 0;
		for (node *p = head; p != sentinel; p = p->next)
			v[j++] = p->val;
	}
};
    递归调用实现的链表插入,除了递归调用的开销外,rinsert函数的递归深度就是找到元素的位置,即O(n)。递归全部结束后,代码将初值赋给几乎所有的指针。当将其改为非递归实现版本后,运行时间极虎降低为原来的三分之一。

三、二分搜索树

    利用二分搜索树来实现整数的查找及插入,递归实现如下:

class IntSetBST {
private:
	int	n, *v, vn;
	struct node {
		int val;
		node *left, *right;
		node(int v) { val = v; left = right = 0; }
	};
	node *root;
	node *rinsert(node *p, int t)
	{	if (p == 0) {
			p = new node(t);
			n++;
		} else if (t < p->val) {
			p->left = rinsert(p->left, t);
		} else if (t > p->val) {
			p->right = rinsert(p->right, t);
		} // do nothing if p->val == t
		return p;
	}
	void traverse(node *p)//中序遍历输出
	{	if (p == 0)
			return;
		traverse(p->left);
		v[vn++] = p->val;
		traverse(p->right);
	}
public:
	IntSetBST(int maxelements, int maxval) { root = 0; n = 0; }
	int size() { return n; }
	void insert(int t) { root = rinsert(root, t); }
	void report(int *x) { v = x; vn = 0; traverse(root); }
};
四、专门用于整数处理的数据结构

    利用位图的思想,位图数据中特定索引位记录此数是否存在,通过清除和设置相应的bit位来标记相应的数是否在集合中。例如x的第一个字节的第三个bit若为1,则表示数组2在集合中。代码实现如下所示:

class IntSetBitVec {
private:
	enum { BITSPERWORD = 32, SHIFT = 5, MASK = 0x1F };
	int	n, hi, *x;
	void set(int i)  {        x[i>>SHIFT] |=  (1<<(i & MASK)); }
	void clr(int i)  {        x[i>>SHIFT] &= ~(1<<(i & MASK)); }
	int  test(int i) { return x[i>>SHIFT] &   (1<<(i & MASK)); }
public:
	IntSetBitVec(int maxelements, int maxval)
	{	hi = maxval;
		x = new int[1 + hi/BITSPERWORD];
		for (int i = 0; i < hi; i++)
			clr(i);//所有的位都置零
		n = 0;
	}
	int size() { return n; }
	void insert(int t)
	{	if (test(t))
			return;
		set(t);
		n++;
	}
	void report(int *v)
	{	int j=0;
		for (int i = 0; i < hi; i++)
			if (test(i))
				v[j++] = i;
	}
};
    解释:其中i>>SHIFT 相当于 i/32得到对应数组下标,二进制右移5位相当于十进制除以32,i&MASK相当于 i mod 32,因为每一个数32位。最大只能左移32位。1<<(i&MASK)相当于获得2的(i&MASK)次幂,就是1左移(i&MASK)位,i=[0,31] 标记在数组第一字节,i=[32,63] 标记在数组第二字节。

五、如何输出一个数的二进制位

    代码实现如下:

#include <iostream>
using namespace std; 
int main()
{
    int n;
    cout << "input n:";
    cin >> n;
    for(int i=1; i<=32; i++)
    {
       cout << ( n < 0 ? 1 : 0 ); //如果首位为1则为负数 所以小于0 
       n = n<<1;//左移一位
    }
    cout << endl;
    return 0;
}
六、箱

    箱是一个集合了链表和位向量优点的数据结构。其思路是每一个箱表示一定范围的整数,并用链表链接起来。链表插入采用有序插入。实现代码如下:

class IntSetBins {
private:
	int	n, bins, maxval;
	struct node {
		int val;
		node *next;
		node(int v, node *p) { val = v; next = p; }
	};
	node **bin, *sentinel;
	node *rinsert(node *p, int t)//递归  插入结点到合适地方
	{	if (p->val < t) {
			p->next = rinsert(p->next, t);
		} else if (p->val > t) {
			p = new node(t, p);
			n++;
		}
		return p;
	}
public:
	IntSetBins(int maxelements, int pmaxval)
	{	bins = maxelements;
		maxval = pmaxval;
		bin = new node*[bins];
		sentinel = new node(maxval, 0);
		for (int i = 0; i < bins; i++)
			bin[i] = sentinel;
		n = 0;
	}
	int size() { return n; }
	void insert(int t)
	{	int i = t / (1 + maxval/bins);  // CHECK !  映射到某个箱子中
		bin[i] = rinsert(bin[i], t);
	}
	void report(int *v)
	{	int j = 0;
		for (int i = 0; i < bins; i++)
			for (node *p = bin[i]; p != sentinel; p = p->next)
				v[j++] = p->val;
	}
};
七、习题答案

    (1)习题1:Floyd算法的IntSet实现中只需要在插入数据前保存原先的Set大小值,然后插入数据,再判断Set大小是否改变,若改变,则插入成功,若未改变,则插入当前的j值。具体见书中的P214。

    (2)习题5:如何避免多次调用存储分配器来提高效率:为了用一次分配来取代多次分配,需要有一个指向下一个可用节点的指针:

node * freenode;
    在构造类的时候就分配出足够的空间:

freenode = new node[maxelems];
    然后在插入函数中根据需要加以使用:

if(p == 0)
{
    p = freenode++;
    p->val = t;
    p->left = p->right = 0;
    n++
}
else if ...
    同样的方法可以应用到箱中。

    (3)习题7:如何将哨兵用于二分搜索树:把以前null指针都指向哨兵节点,哨兵在构造函数中进行初始化,插入代码先将目标值t放入哨兵节点,然后用一个指向指针的指针自顶向下遍历数直到找到t。代码实现如下所示:

class IntSetBST2 {
private:
	int	n, *v, vn;
	struct node {
		int val;
		node *left, *right;
	};
	node *root, *freenode, *sentinel;

	void traverse(node *p)
	{	if (p == sentinel)
			return;
		traverse(p->left);
		v[vn++] = p->val;
		traverse(p->right);
	}
public:
	IntSetBST2(int maxelements, int maxval)
	{	root = sentinel = new node;  
		n = 0;
		freenode = new node[maxelements];
	}
	int size() { return n; }

	void insert(int t)
	{	sentinel->val = t;
		node **p = &root;       //指向指针的指针
		while ((*p)->val != t)
			if (t < (*p)->val)
				p = &((*p)->left);
			else
				p = &((*p)->right);
		if (*p == sentinel) {
			*p = freenode++;
			(*p)->val = t;
			(*p)->left = (*p)->right = sentinel;
			n++;
		}
	}
	void report(int *x) { v = x; vn = 0; traverse(root); }
};
    (4)说明如何通过使用低开销的逻辑移位替代高开销的除法运算来对箱进行加速。

    为了用移位取代除法,通过类似下面的伪代码对变量进行初始化:

goal  = n/m;
binshift = 1;
for(int i=2;i<goal;i*=2)
    binshift++;
nbins = 1 + (n >> binshift);
    插入函数从该结点开始:

p = &(bin[t >> binshift]);
Android 13.0 Settings搜索功能屏蔽某个app 在13.0的系统ROM产品定制化开发中,Settings中由于要屏蔽到某些app 不让搜索出这个app,所以就要从搜索流程中来去掉查询到这个app, 而搜索流程都是在SettingsIntelligence中完成的,接下来就来具体实现相关功能 阅读详情

相关推荐

Android13 Launcher界面关闭google搜索框

由于定制化Launcher开发中的一个需求是需要实现将Launcher中的google搜索框去掉,所以需要实现关闭google搜索框操作。

龚礼鹏的博客 1723

树的预备知识,基本术语,顺序查找(哨兵)和二分查找

树客观世界中许多食物存在层次关系:人类社会家谱、社会组织结构、文件路径分层次组织在管理上具有更高的效率查找:静态查找:集合中的记录是固定不变的哨兵,第一个字符放长度,在第零号位置存放我们要查找的字符,从后往前查找动态查找:集合中的记录是动态变化的静态查找方法一:顺序查找:(哨兵) 1 typedef struct LNode *List; 2 strut LNode { 3 Elemen...

weixin_33885676的博客 228

ARM芯片内部的高速公路:手把手教你用AMBA Designer配置NIC-400互连控制器

本文详细介绍了如何使用AMBA Designer工具配置ARM芯片中的NIC-400互连控制器,涵盖从基础拓扑构建到高级QoS设置的完整流程。通过实际案例演示,帮助开发者掌握AXI协议下的高效片上网络设计,提升SoC性能与能效比。

weixin_26750481的博客 311

寻找N!末尾的0的个数

对于任意一个正整数,我们都可以利用唯一分解定理将其分解为一系列质数的乘积。 即 这样的形式 考虑N!后面的0是由2*5 = 10所贡献的,这样就可以转而寻找z = min(a,c)[a和c是2和5的指数] 由于在N!中能分解出的2一点比能分解的5多[这句看不懂可以写一下N!找一下里面从1-n的中含2的数和含5的数],所以问题就是找到最小的c,就是0的个数。 #include<i...

zzu.zzysleep 279

OPNET卫星节点仿真避坑指南:为什么你的STK轨道文件导入后位置不对?

本文深入解析OPNET卫星节点仿真中STK轨道文件导入后位置异常的常见问题,揭示坐标系差异(ECI与ECF)、时间基准不匹配等关键因素。通过修改.SA文件头标识、统一时间基准等解决方案,帮助工程师避免仿真失真,提升卫星通信系统仿真的准确性。特别适用于STK与OPNET协同工作的卫星网络仿真场景。

weixin_30335575的博客 600

.ipynb文件深度解析:从JSON结构到Jupyter Notebook高效使用指南

在Python开发与数据处理领域,交互式编程正成为探索数据与验证思路的高效方式。Jupyter Notebook作为最流行的交互式环境之一,其默认文件格式.ipynb本质是一个基于JSON的文本文件,内部通过单元格组织代码、说明文字与运行结果。理解其JSON结构,不仅有助于掌握Notebook的存储原理,更能为文件损坏修复、版本控制与自动化转换提供基础。依托对单元格类型、魔法命令及输出可视化的熟练运用,数据分析和数据可视化流程可以变得更为流畅。同时,借助VS Code、nbconvert等工具,开发者能将.

weixin_28839629的博客 349

二分搜索树实现

二分搜索树是有顺序的树,某节点T的左子树都小于T节点,T的右子树均大于T节点的值。 实现的关键代码为add操作,用递归很容易实现。 package tree; /* * @Param * */ public class BST<E extends Comparable<E>> { private class Node { public E e;...

weixin_34405332的博客 156

Unity UI Toolkit避坑指南:从官方Samples到实际项目,这些‘坑’我帮你踩过了

本文分享了Unity UI Toolkit在实际项目中的避坑经验和优化技巧,包括动画系统的高效替代方案、3D世界UI的创新实现方式、USS样式继承的反直觉规则等。通过详细的代码示例和性能优化策略,帮助开发者避免常见陷阱,提升开发效率。

weixin_29535577的博客 343

 带有哨兵的顺序表查找和二分法查找(折半查找)(java)代码+说明

带有哨兵的顺序表查找和二分法查找(折半查找)(java)代码+说明 一:带有哨兵的顺序表查找 1、算法设计: * 在一个线性表中,按照从前往后或者从后往前的顺序依次查找,如果查找到关键字和给定值相等,则返回给定值的位置,查找成功; * 如果查找值最后一个元素仍未找到,则查找失败。 * 带哨兵的顺序查找,所谓哨兵就是将关键字用一个数组位置去存储,保证在循环的过程中不必判断数组是否越界,因为执行到...

qiudongdilei的博客 2325

DESeq2实战:利用LRT检验解析时间序列基因表达动态变化

本文详细介绍了如何使用DESeq2中的LRT检验分析时间序列基因表达数据,揭示基因表达动态变化模式。通过构建完整模型与简化模型比较,LRT检验能有效识别处理效应随时间变化的基因,适用于发育过程、疾病进展等研究。文章提供了从数据准备、模型构建到结果可视化的完整实战指南,并分享了高级技巧与常见问题排查方法。

weixin_29062671的博客 439

第三篇:学习InternVL2.0(探讨代码之训练模块版)

InternVL2的训练模块

qq_69051120的博客 1244

Taxonomy搜索功能:Next.js 13全文搜索终极实现指南

🚀 想要为你的Next.js应用添加强大的全文搜索功能吗?Taxonomy项目提供了一个完美的解决方案!本文将带你深入了解Taxonomy搜索功能的实现原理和配置方法,帮助你快速构建高效的搜索体验。 ## 什么是Taxonomy搜索功能? Taxonomy是一个基于Next.js 13构建的开源应用,它展示了最新的路由系统、服务器组件等创新特性。其中,**全文搜索功能**是项目的一大亮点,让

gitblog_00876的博客 860

手把手教你用Wireshark抓包分析Profinet非周期通信(附实战案例)

本文详细解析了PROFINET非周期通信(RTA)的技术原理与实战应用,通过Wireshark抓包分析,揭示从PLC请求到驱动器响应的完整对话过程。涵盖实验环境搭建、关键配置步骤、典型参数访问流程及故障诊断案例,帮助工程师深入理解并优化工业网络通信性能。

Black的专栏 1049

Android13 去除桌面默认搜索框

搜索框都是通过QSB_ON_FIRST_SCREEN属性控制的 把值修改为false即可。

maimaihggh的博客 222

姿态传感器/陀螺仪之IIS2DLPC 应用驱动程序设计

* 转换为°C单位 (参考温度为25°C,灵敏度为16 LSB/°C) */

corlin6688的博客 220

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

13ft Ladder搜索功能:全文搜索与内容检索

你是否曾经遇到过这样的情况:在付费墙(Paywall)后面找到了一个看似很有价值的文章,但无法查看完整内容?或者想要在多个付费墙文章中进行关键词搜索,却因为访问限制而束手无策?这正是13ft Ladder搜索功能要解决的核心痛点。 传统的付费墙绕过工具往往只提供简单的页面访问功能,但缺乏对内容的深度处理能力。13ft Ladder通过集成全文搜索和内容检索功能,让你不仅能够绕过付费墙,还能在获取...

gitblog_00339的博客 753

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

高通 Android 13 首页去掉Google导航搜索栏

2、编译源码验证 如下图所示 首页搜索栏没有了。4、到这里基本结束了,转载请注明出处!

郑敏 1831

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

13 款开源的全文搜索引擎

原文转载于:http://www.open-open.com/lib/view/open1433383682182.html 主要介绍13款现有的开源搜索引擎,你可以将它们用在你的项目中以实现检索功能。  1.  Lucene  Lucene的开发语言是Java,也是Java家族中最为出名的一个开源搜索引擎,在Java世界中已经是标准的全文检索程序,它提供了完

农村的我的专栏 2万+

Elasticsearch 8.13.4 常用搜索操作完全指南

本文详细介绍了Elasticsearch 8.13.4的核心搜索功能,包括11种常用查询类型(如全文搜索、短语匹配、布尔查询等)、搜索结果控制(分页、排序、高亮等)和聚合分析功能(指标聚合、分桶聚合)。文章还提供了性能优化建议,强调合理使用filter上下文、避免深度分页等技巧。通过掌握这些搜索操作,用户可以构建高效的搜索应用,充分利用Elasticsearch强大的搜索和分析能力。

得塔云的博客 549

13款优秀的开源搜索引擎

本文档是对现有的开源的搜索引擎的一个简单介绍 1.    Lucene Lucene的开发语言是java, 也是java家族中最为出名的一个开源搜索引擎, 在java世界中已经是标准的全文检索程序, 它提供了完整的查询引擎和索引引擎, 没有中文分词引擎, 需要自己去实现, 因此用Lucene去做一个搜素引擎需要自己去架构.另外它不支持实时搜索, 但linkedin和twitter有分别

u011326189的专栏 854

重塑 Google 搜索、Android 13 新版发布,这届 I/O 大会为开发者带来了什么?

揭晓 Google I/O 2022 的精彩内容。

优快云资讯 5820

13 个应该记住的最不寻常的搜索引擎

13 个应该记住的最不寻常的搜索引擎  罗严塔尔 发表于 2008-7-21 16:11:00 如果你通过Digg或其他社会化媒体网站,向世界传播,我会非常感激,您对此文的随手评论会让此文展示在更多人面前。谢谢 你已经天天使用一些常见的搜索引擎,象 Google,Msn,Yahoo,Excite。但是其实有更多的其他搜索引擎,使用与例行搜索不同的方式,让搜索更加有效。从它们当中,我选了13个

yingxuexuan的专栏 526

13倍提速!fd搜索工具:从find到闪电搜索的终极替代方案

fd是一款简单、快速且用户友好的find命令替代工具,它通过优化的搜索算法和直观的语法设计,为文件系统搜索带来革命性的速度提升。无论是日常文件查找还是开发工作流优化,fd都能以惊人的效率帮你定位目标文件,让传统find命令彻底成为历史。 ## 🔥 为什么选择fd?传统find的痛点与fd的解决方案 传统的find命令虽然功能强大,但复杂的语法和缓慢的搜索速度常常让用户望而却步。比如要查找当前

gitblog_00322的博客 703
上一篇: 有意思的C语言优先级口诀
下一篇: (14)堆
ddppqq
博客等级 码龄17年 15粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值