javascript中的哈希表(hashtable)实现

JavaScript:实现带有链表的哈希表算法(附完整源码) 阅读详情

javascript中的hashtable实现


javascript中没有像c#,java那样的哈希表(hashtable),
然而,javascript中的Array也只有一些类似于'哈希表'的非常简单功能, 如下:
  1.  var arr = new Array();
  2.  arr['item1'] = 'the value of item 1 ';
  3.  arr['item2'] = 'the value of item 2 ';
  4.  alert(arr['item1']);
  5.  alert(arr['item2']);


但上述功能,不符我们的实际要求,另外查询遍历也不方便,我们需要在Array的基础上进行扩展,
下面我们可以用js中的数组来实现类似的hashtable的功能,
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  1. function Hashtable(){
  2.     this.clear = hashtable_clear;
  3.     this.containsKey = hashtable_containsKey;
  4.     this.containsValue = hashtable_containsValue;
  5.     this.get = hashtable_get;
  6.     this.isEmpty = hashtable_isEmpty;
  7.     this.keys = hashtable_keys;
  8.     this.put = hashtable_put;
  9.     this.remove = hashtable_remove;
  10.     this.size = hashtable_size;
  11.     this.toString = hashtable_toString;
  12.     this.values = hashtable_values;
  13.     this.hashtable = new Array();
  14. }                

  15. function hashtable_clear(){
  16.     this.hashtable = new Array();
  17. }

  18. function hashtable_containsKey(key){
  19.     var exists = false;
  20.     for (var i in this.hashtable) {
  21.         if (i == key && this.hashtable[i] != null) {
  22.             exists = true;
  23.             break;
  24.         }
  25.     }
  26.     return exists;
  27. }

  28. function hashtable_containsValue(value){
  29.     var contains = false;
  30.     if (value != null) {
  31.         for (var i in this.hashtable) {
  32.             if (this.hashtable[i] == value) {
  33.                 contains = true;
  34.                 break;
  35.             }
  36.         }
  37.     }
  38.     return contains;
  39. }

  40. function hashtable_get(key){
  41.     return this.hashtable[key];
  42. }

  43. function hashtable_isEmpty(){
  44.     return (this.size == 0) ? true : false;
  45. }

  46. function hashtable_keys(){
  47.     var keys = new Array();
  48.     for (var i in this.hashtable) {
  49.         if (this.hashtable[i] != null) 
  50.             keys.push(i);
  51.     }
  52.     return keys;
  53. }

  54. function hashtable_put(key, value){
  55.     if (key == null || value == null) {
  56.         throw 'NullPointerException {' + key + '},{' + value + '}';
  57.     }else{
  58.         this.hashtable[key] = value;
  59.     }
  60. }

  61. function hashtable_remove(key){
  62.     var rtn = this.hashtable[key];
  63.     //this.hashtable[key] =null;
  64.     this.hashtable.splice(key,1);
  65.     return rtn;
  66. }

  67. function hashtable_size(){
  68.     var size = 0;
  69.     for (var i in this.hashtable) {
  70.         if (this.hashtable[i] != null) 
  71.             size ++;
  72.     }
  73.     return size;
  74. }

  75. function hashtable_toString(){
  76.     var result = '';
  77.     for (var i in this.hashtable)
  78.     {      
  79.         if (this.hashtable[i] != null) 
  80.             result += '{' + i + '},{' + this.hashtable[i] + '}/n';   
  81.     }
  82.     return result;
  83. }

  84. function hashtable_values(){
  85.     var values = new Array();
  86.     for (var i in this.hashtable) {
  87.         if (this.hashtable[i] != null) 
  88.             values.push(this.hashtable[i]);
  89.     }
  90.     return values;
  91. }
Hastable类使用方法:

  1. //实例化一个自定义的哈希表类
  2. var hashTable = new Hashtable();

  3. hashTable.put(0,'abc');  //0为key, 'abc'为value
  4. hashTable.put(1,'123');
  5. hashTable.put(2,'88a');
  6. hashTable.put(3,'88a');

  7. //遍历hashtable, 相当于c#和java中的foreach
  8. for (var key in hashTable.keys()){ /* 用keys方法 */
  9.     alert(hashTable.get(key)); //按key遍历value
  10. }

  11. //遍历hashtable, 相当于c#和java中的foreach
  12. for (var key in hashTable.hashtable)){ /* 用hashtable属性 */
  13.     alert(hashTable.get(key)); //按key遍历value
  14. }

  15. alert(hashTable.containsKey(1));        //返回true
  16. alert(hashTable.containsKey(4));      //因为不存在key为4的,返回false

  17. alert(hashTable.containsValue('888'));  //返回true
  18. alert(hashTable.containsValue('mobidogs')); //因为不存在value为'mobidogs'的,返回false

  19. hashTable.remove(1);  //移除key为1的元素
  20. alert(hashTable.containsKey(1));        //因为key为1的元素已被上行的reomve()方法移除,所以返回false

  1. //关于hastable的其它方法使用简单,读者可以自己测试 (此略)
哈希表算法(HashTable)的JavaScript实现 总结起来,哈希表算法是一种高效的数据结构,适用于存储大量的键值对,并且在插入、查找和删除操作上具有常数时间复杂度。在本篇文章中,我们将使用JavaScript来实现一个基本的哈希表算法,并提供相应的源代码。在这个简单的实现中,我们将键中每个字符的ASCII码相加,并使用一个质数37对其取余,以得到较好的分布效果。我们首先计算键的哈希值,然后检查对应索引位置上是否存在该键值对,如果存在,则返回对应的值;我们首先计算键的哈希值,然后检查对应索引位置上是否存在该键值对,如果存在,则从哈希表中删除该键值对。 阅读详情

相关推荐

js 模拟实现类似c#下的hashtable的简单功能代码

如果在c#中,我们只要用hashtable或者dictionary根据key取value的特性,就可以很轻松地实现这个功能了。其实我们稍作处理,js也可以实现类似hashtable的功能。下面总结一下笔者开发中用到的实现方式,贴代码为主。 1、实现思路:主要就是利用原型(prototype)的hasOwnProperty方法,确定对象中的项是该添加、移除还是取出某个匹配的项等。hasOwnProperty比遍历数组取值灵巧快速的地方在于:至少从代码上来看,它是O(1)复杂度的。 2、实现代码 代码如下: // js哈希表 function HashTable() { this.ObjArr

JavaScript实现的HashTable(键值对)类

引言 在后端语言中存在HashTable数据结构,他可以以一种key/value的形式保存数据,同时也可以通过key快速获取value的值。这是一种很便捷也很常用的功能。原生JS中同样也没有实现HashTable的数据类型(注意是类型,并不是结构),有与它类似的数据结构——Object,JS的Object其实本质上就是一种key/valu...

weixin_34025051的博客 318

JAVASCRIPT HashTable

JAVASCRIPT HashTable

javascript模拟实现类似c#下的hashtable的简单功能

越来越感觉js对集合的处理没有c#强大。比如在实际开发中,经常用到在一维数组或者二维数组里取某一个满足某些条件的项,通常的处理方式就是遍历数组,对比条件,匹配就取出,然后结束循环。如果在c#中,我们只要用hashtable或者dictionary根据key取value的特性,就可以很轻松地实现这个功能了。其实我们稍作处理,js也可以实现类似hashtable的功能。下面总结一下笔者开发中用到的实现...

weixin_34417814的博客 121

js实现hashtable的赋值、取值、遍历操作实例详解

本文实例讲述了js实现hashtable的赋值、取值、遍历操作。分享给大家供大家参考,具体如下: 哈希表(Hashtable)这个概率应该是#c里面的概念,用来赋值、取值、遍历、排序操作提高效率。想起这个东西其实使我们以前经常遇到这样的面试题,一个很大的数组可能有100000个,如何快速知道它里面的出现最多的次数,那么这里我们可能就要用Hashtable的相关知识了。Javascript中,object的实现就是hash表,因此只要在object上封装点方法,再利用原生的hasOwnProperty方法就可以实现简单高效的hashtable。 一、什么是哈希表(Hashtable) 二、哈希表

js实现HashTable(哈希表)的实例分析

一、javascript哈希表简介 javascript里面是没有哈希表的,一直在java,C#中有时候用到了这一种数据结构,javascript里面若没有,感觉非常不顺手。细细看来,其实javascript的object的属性其实与哈希表非常类似。 如: var person = {}; person["name"] = "关羽"; 我们只需要在其基础上再封装一些HashTable的函数,就能够得到一个精简版的哈希表。 加入函数如下: 函数名 说明 返回值 add(key,value) 添加项 无 getValue(key) 根据key取值 object remove(k

javascript 中定义 hashtable哈希表 类

在哈希表类中,可以使用Array和Object来存储实质的哈希表数据。Object具有更强的类型兼容新,使的Object可以以任意的数据类型的作为哈希表的下标key数据类型。 哈希表类定义 代码 //定义哈希表类functionHashTable(){this.hash=newObject();//创建Object对象。存放ke...

weixin_30815427的博客 163

手把手教你用ADS仿真FMMT417雪崩三极管,搞定射频脉冲源设计

本文详细介绍了如何使用ADS仿真工具设计基于FMMT417雪崩三极管的射频脉冲源。从器件选型、SPICE模型导入到电路设计与优化,提供了一套完整的实操方案,特别适合射频脉冲设计的初学者。通过级联设计和实测验证,帮助工程师快速掌握雪崩电路的应用技巧,提升射频脉冲源的设计效率。

weixin_30905981的博客 491

【数据结构与算法】JavaScript实现哈希表

哈希表通常是基于数组哈希表可以提供非常快速的插入-删除-查找操作;无论多少数据,插入和删除值都只需要非常短的时间,即O(1)的时间级。实际上,只需要几个机器指令即可完成;哈希表的速度比树还要快,基本可以瞬间查找到想要的元素。但是相对于树来说编码要简单得多。哈希表同样存在不足之处哈希表中的数据是没有顺序的,所以不能以一种固定的方式(比如从小到大 )来遍历其中的元素。通常情况下,哈希表中的key是不允许重复的,不能放置相同的key,用于保存不同的元素。哈希表是什么?

一个前端开发者 1495

FPGA开发中Quartus与Modelsim联合仿真配置与调试全攻略

在数字电路设计与FPGA开发中,仿真验证是确保逻辑功能正确性和时序性能达标的核心环节。其基本原理是通过软件模拟硬件电路的行为,在设计转化为实际硬件前发现潜在缺陷。这项技术的核心价值在于大幅降低开发风险与成本,提升设计可靠性,广泛应用于通信、嵌入式系统、芯片验证等领域。对于使用Intel FPGA平台的开发者,Quartus Prime作为官方综合布局布线工具,其内置仿真器在应对复杂设计、深度调试和自动化测试时存在局限。此时,引入专业仿真工具Modelsim进行联合仿真成为提升验证效率的关键实践。通过搭建自动

weixin_33736048的博客 451

FPGA 高速接口Aurora8B/10B 协议详解与仿真

Aurora 8B/10B 是一种用于高速串行通信的协议,通常用于 FPGA 设计和其他数字通信应用。即一种编码方案,旨在在传输数据时提供可靠性、时钟恢复和错误检测。主要用于在点对点串行链路间移动数据的可扩展轻量级链路层协议,为板对板、芯片对芯片以及一些单向链接提供低成本低资源的解决方案。信号源信号描述ref_clk时钟源GT的外部时钟INIT CLK时钟源全局复位,低电平有效DRP CLK时钟源DRP时钟,动态重配置时钟时钟源用户传输的数据钟及逻辑时钟域。

toonyhe的博客 3999

Javascript实现HashTable(哈希表)

ES6特性(详细可看阮一峰) Set 对象类似于数组,且成员的值都是唯一的。 Map 对象是键值对集合,和 JSON 对象类似,但是 key 不仅可以是字符串还可以是对象 其中Map中的键名也可以是对象这个特性极大的方便了开发,但是在ES6之前是没有办法的,只能模拟,但是很麻烦。 但是可以模拟一个hashTable来方便开发,其实javascript的object的属性其实与哈希表非常

wangshengfei 1961

Codex驱动AEDT完成无线充电仿真——从双线圈建模到三维电磁场动画

本文介绍了一个利用Codex、PyAEDT和Ansys Electronics Desktop 2025 R2实现双线圈无线充电系统自动建模与仿真的案例。通过简化模型(平面线圈+铁氧体磁芯),完成了从参数化建模、电磁场求解到后处理的全流程自动化,获得了耦合系数(k=0.17)、三维电磁场分布及多周期动态可视化效果。研究发现:线圈间距对传输效率影响最大(10-30mm间距时效率从40.2%降至5.57%),横向偏移15mm会使效率下降35%,而磁芯厚度增加带来的效率提升有限(3→7mm仅提高1.67%)。该框

sjjsjjsjjsjjsjj的博客 446

JavaScript之HashTable

HashTable(哈希表)是一种根据键值对(key-value)来直接访问的集合类型的数据结构。 哈希表的查找效率非常高,因为它可以直接通过key来访问。 而数组是通过遍历下标来进行查找的。 通常javascript中的对象可以动态添加或者删除属性,故可以把对象看做是一个集合, javascript的对象就是天生的HashTable。 构造HashTable对象,如下: v...

aclwajw600722的博客 134

方差迭代计算公式

方差迭代计算过程推导术语约定递推公式过程推导 术语约定 (1)En=1n∑i=1nxi E_n =\frac{1}{n} \sum_{i=1}^{n}x_i \tag{1} En​=n1​i=1∑n​xi​(1) (2)F(n)=∑i=1n(x2−En) F(n) = \sum_{i=1}^{n}{(x^2-E_n)} \tag{2} F(n)=i=1∑n​(x2−En​)(2) (3)V(n)...

weixin_44479136的博客 7921

RK3568平台开发系列讲解(外设篇)CAN的使用

📢 本篇章带大家快速了解CAN的使用。

内核笔记 2352

JavaScript实现散列表(ES5动态原型模式)

散列表的概念 HashTable类,也叫HashMap类,是Dictionary类的一种散列表实现方式。 散列算法的作用是尽可能快地在数据结构中找到一个值。如果要在数据结构中获得一个值(使用get方法),需要遍历整个数据结构来找到它。如果使用散列函数,就知道值的具体位置,因此能够快速检索到该值。散列函数的作用是给定一个键值,然后返回值在表中的地址。 ...

qq_40816360的博客 412

手把手教你学BSP(11.3)--BSP实例:基于Raspberry Pi 4 Model B的Linux BSP开发实例

通过以上步骤,我们完成了一个基于Raspberry Pi 4 Model B的Linux BSP开发过程,包括硬件初始化、设备驱动编写、Bootloader配置、内核配置和编译,以及最终映像的生成。每个步骤都非常重要,确保每一步都正确无误才能使整个系统正常运行。

MHD0815的博客 1011

我对JS散列表的简单学习

对JS散列表的简单学习 HashTable类也叫HashMap类,是Dictionary类的一种散列表实现方式。 散列算法的作用是尽可能快的在数据结构中找到一个值。 在之前的学习中,如果你想要获得数据结构中的一个值,需要遍历整个数据结构来找到它。如果使用散列函数,就能知道具体位置,也就能够快速找到该值。 使用最常见的散列函数--‘lose...

weixin_34417635的博客 85

【python股票价格预测】基于CNN-LSTM的股票价格预测(附python代码)

【python股票价格预测】基于CNN-LSTM的股票价格预测(附python代码)

k8291121的博客 2008

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ds哈希查找—二次探测再散列_JavaScript中的算法:哈希函数

阿散列表(也称为散列,散列映射,无序地图或字典)是一种数据结构,对键的值。它是一种将键值范围转换为数组索引范围的技术。它用于实现关联数组,该数组可以将键映射到值。哈希表使用哈希函数来计算存储桶或插槽数组的索引,从中可以找到所需的值。哈希表操作分两个步骤执行使用哈希函数将键转换为整数索引。该索引确定键值对记录所属的位置。找出例如a)书中每个单词的出现次数,b)类似的问题(例如查找多个唯一单词)非常有...

weixin_35353583的博客 345

深度学习工具包 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")

【数据结构】自己动手使用JavaScript实现字典、哈希表、集合(第二篇)

以上,如有不合理之处,还请帮忙指出,大家一起交流学习~

weixin_45620943的博客 230

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Camera2Demo

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

在JS中使用哈希表(hashTable)

   New Document         var hashTable = new Object();   // 声明对象    // 添加    function add(key,value){       // 判断key是否存在       if(key in hashTable){            alert("key已经存在");       }       hashTabl

430

js数据结构第七弹:散列

散列是一种常用的数据存储技术, 散列后的数据可以快速地插入或取用。 散列使用的数据结构叫做散列表。 在散列表上插入、 删除和取用数据都非常快, 但是对于查找操作来说却效率低下 1 散列概览 哈希表也叫散列表,是根据关键码值(key,value)而直接进行访问的数据结构,它是通过键码值映射到表中一个位置来访问记录的,散列表后的数据可以快速的插入和使用,散列使用的数据结构叫做散列表。 散列表的优点及缺...

weixin_43187545的博客 367

JS数据结构与算法 —— 散列表(哈希表)

概念:散列表(Hash table,也叫哈希表),是根据关键码-值(Key-value)的形式进行存储和访问的数据结构。 散列表类似于字典,是以 键-值(Key-value) 对形式存储的数据结构,不同点在于散列表的键key是经过散列函数计算得出,我们称之为关键码,每个关键码都对应一个值,我们把这种以 关键码-值 形式存储数据的数组称为散列表。 作用:可以快速定位元素,并拿到对应的值。相...

知行合一,跬步致远 1665
上一篇: javascript中的trim()函数实现
下一篇: javascript中StringBuilder类实现
Mobidogs
博客等级 码龄21年 186粉丝 264原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值