附加功能--保存用户查询历史,显示查询史,复习查询过的单词

欢聚时代iOS校招B卷解析:内存管理、多线程与架构设计考点全梳理 在iOS开发中,内存管理与多线程是构建稳定应用的核心基础,也是校招笔试中的高频考察方向。理解ARC与MRC的本质差异、掌握Runtime消息传递机制,能够帮助开发者规避野指针与循环引用等潜在风险;而合理选型GCD与NSOperation、优化AutoLayout性能,则直接关系到直播类App的流畅性与稳定性。这些底层原理不仅决定代码质量,更是大型项目架构设计的前提。从MVC到MVVM的演进、组件化模块解耦,乃至HTTPS安全通信与数据持久化方案选型,均离不开对基础机制的深入理解。本文以欢聚时代2017年iO 阅读详情

这些都是学习过程中慢慢添加的,一次性发布在这篇文章把,一片一片的写太累了。。。。。。

1) 首先是设置用户COOKIE,并把COOKIE名存入到数据库,设置一个关联id,这个唯一的id对应的另外一个表,保存了对应的用户的查询单词

<?php
require_once "sql.class.php";
function setOrGetUser()
{
	$mysqli = new mysqli("localhost", "root", "cai123") or die ('连接数据库失败');
	$mysqli->select_db("words");
	$mysqli->query("set names utf8");
	if(empty($_COOKIE))
	{
		$username=md5($_SERVER["REMOTE_ADDR"].time().rand(1,500));
		setcookie("user", $username, time()+30*24*3600);


		$sql="insert into user(username) values('$username')";
		$mysqli->query($sql) or die('插入用户名失败');
		return $username;
	}
	else
	{
		$username = $_COOKIE['user'];
		//下面是一段测试代码,用于检测在清楚数据库保存的cookie时,根据浏览器提交的cookie再次插入数据库,并返回
		$sql = "SELECT * FROM user WHERE username ='$username' ";
		$res = $mysqli->query($sql);
		if($mysqli->affected_rows==0)
		{
			$sql="INSERT INTO user(username) VALUES('$username') ";
			$mysqli->query($sql);
			if($mysqli->affected_rows<1)
			{
				die('插入用户失败');
			}
			return $username;
		}
		else
		{
			$time = $res->fetch_assoc();
			//当超过最大时间时,删除用户的查询史
			if($time['udate']+3600*24*10 > time())
			{
				$sql = new Sql($username);
				$sql->deleteWord();
			}
			$res->free();
		}
		return $username;
	}

}

//echo setOrGetUser();

/////这个类sql.class.php封装了保存用户cookie,存储单词和查询单词的一些操作


<?php
//require_once "cookie.php";
class Sql
{
	private $host="localhost";
	private $username="root";
	private $passwd="cai123";
	private $db="words";
	private $conn=null;

	private $uid=null;
	//根据user表的ID主键,关联到对应的DIC的UID字段里,进行查询单词的保存
	public function __construct($cookiename='',$word='')
	{
		$this->conn=new mysqli($this->host, $this->username, $this->passwd) or die('连接mysql失败'.mysql_error);
		$this->conn->select_db($this->db);
		$this->conn->query("set names utf8");

		$sql="SELECT id FROM user WHERE username='$cookiename' ";
		$result = $this->conn->query($sql);
		if($this->conn->affected_rows)
		{
			$this->uid = $result->fetch_row()[0];
			$result->free();
		}
		else
		{
			die("没有关于你的信息");
		}
		if($word!='')
		{
			$this->setWord($word);
		}
	}
	//将用户的查询记录保存到数据库
	public function setWord($word)
	{
		$sql="INSERT INTO dic(uid,word) VALUES($this->uid,'$word')";
		$this->conn->query($sql);
		if($this->conn->affected_rows)
		{
			//file_put_contents("word.txt", "插入单词{$word}成功",FILE_APPEND);
		}
		else
		{
			file_put_contents("word.txt", "插入单词{$word}失败",FILE_APPEND);
		}
	}
	public function getOneWord()
	{
		$sql = "SELECT word FROM dic WHERE uid={$this->uid} LIMIT 1";
		$result=$this->conn->query($sql);
		if(!$this->conn->errno)
		{
			$res=$result->fetch_row()[0];
			$result->free();
			return $res;
		}
		else
		{
			return false;
		}
	}
	public function getAllWord()
	{
		$sql = "SELECT word FROM dic WHERE uid={$this->uid} ";
		$result=$this->conn->query($sql);
		if($this->conn->affected_rows)
		{
			while($res = $result->fetch_row())
			{
				$words[]=$res[0];
			}
			$result->free();
			return array_unique($words);
		}
		else
		{
			return array("你没有查询历史");
		}
	}
	//根据USER表中保存的时间戳字段,当超过一段时间后,删除对应的查询单词保存记录
	public function deleteWord()
	{
		$sql = "DELETE FROM dic WHERE uid=".$this->uid ;
		$this->conn->query($sql);
	}
	public function clearHistory()
	{
		$sq01 = "DELETE FROM user WHERE id = ".$this->uid; 
		$sq02 = "DELETE FROM dic WHERE uid= ".$this->uid;
		$this->conn->query($sq02);
		$this->conn->query($sq01);
	}
	public function __destruct()
	{
		$this->conn->close();
	}
}

/* $sql = new Sql("MTI3LjAuMC4x");
$sql->setWord("hello"); */

////这段程序用于提供返回用户查询史


<html>

<body bgcolor="#RGB(67,65,65)">
<img src="../image/logo.jpg" style='margin-left: 400px;' /><br />
<?php
require_once "../sql.class.php";
require_once "../rollpage/rollpage.class.php";
if(empty($_COOKIE['user']))
{
	die("你没有查询历史");
}
else
{
	$username = $_COOKIE['user'];
	$sql = new Sql($username);
	if($words = $sql->getAllWord())
	{
		//将数据传给分页类进行分页
		$href = $_SERVER['PHP_SELF'];
		$page = new Rollpage($words, $href);
		$page->getLink();
	}
	else
	{
		die("你没有查询历史");
	}
}
?>
</body>
</html>

//下面这个类封装了分页代码,当用户查询的单词比较大时,在查看用户查询史时,而已对单词进行分页显示


<?php
/*唯一的参数是控制器传过来的数据,数据的形式以数据传递,可以作为一个通用分页类*/
class Rollpage
{
	//分成多少页
	private $page_total;
	//分页大小
	private $page_size = 15;
	//被分页的页面地址
	private $page_link;
	//当前页
	private $page_current ;
	//需要被分页的数据,这里是对数组进行分页
	private $words;
	//整体翻页大小
	private $rollpage_size=10;
	
	//首页
	private $home;
	//尾页
	private $end;
	//共有多少页
	private $total;
	
	private $link='';
	private $pos='';
	private $nagv='';
	private $table='';
	public function __construct($words, $href)
	{
		$len = count($words);
		$this->words=$words;
		$this->page_total = ($len > 0)? ceil($len/$this->page_size):0;
		$this->page_link=$href;
		$this->check();
	}
	private function check()
	{
		if(!isset($_GET['offset']))
		{
			$this->page_current=1;
		}
		else
		{
			$offset = $_GET['offset'];
			if($offset > $this->page_total)
			{
				$this->page_current = $this->page_total;
			}
			else if($offset < 1)
			{
				$this->page_current = 1;
			}
			else
			{
				$this->page_current = $offset;
			}
		}
	}
	
	//分页数据
	private function data()
	{
		return array_chunk($this->words, $this->page_size)[$this->page_current-1];
	}
	//首页
	private function home()
	{
		$this->home = "<a href =".$this->page_link."?offset=1 style='text-decoration:none ;'>首页</a> ";
	}
	//尾页
	private function end()
	{
		$this->end = "<a href ='".$this->page_link."?offset=".$this->page_total." '  style='text-decoration:none ;' >尾页</a>   ";
	}
	//总页数
	private function total()
	{
		$this->total="共有<span style='color:#eeabf0;'>".$this->page_total."</span>页";
	}
	//创建分页链接,当前页禁用<a>..</a>并突出显示
	private function link()
	{
		if($this->page_total > $this->rollpage_size)
		{
			//根据分页大小,当分页总数大于10页时,每次显示10页内容
			$start = floor(($this->page_current-1)/$this->rollpage_size)*$this->rollpage_size+1;
			$end = $start+$this->rollpage_size;
			//整体向上翻10页
			if($this->page_current > $this->rollpage_size)
			{
				$offset = $start-1;
				$this->link .= "<a href='{$this->page_link}"."?offset={$offset}' "." style=\"text-decoration:none\" > ".'<<<'."<a> ";
			}
			//整体翻十页关键代码
			for($start; $start < $end; $start++)
			{
				if($start < $this->page_total)
				{
					if($this->page_current == $start)
					{
						$this->link .= "<span style='text-decoration:none; font-size: 19px; color: white;' >".$start."</span> ";
					}
					else
					{
						$this->link .= "<a href='{$this->page_link}"."?offset={$start}' "." style=\"text-decoration:none\" >".$start."<a> ";
					}
				}
				
			}
			//根据边界条件,显示上一页
			if($this->page_current > 1)
			{
				$next_page = $this->page_current-1;
				$this->link .= "<a href='{$this->page_link}"."?offset={$next_page}' "." style=\"text-decoration:none\" > ".'上一页'."<a> ";
			}
			if($this->page_current < $this->page_total)
			{
				$next_page = $this->page_current+1;
				$this->link .= "<a href='{$this->page_link}"."?offset={$next_page}' "." style=\"text-decoration:none\" > ".'下一页'."<a> ";
			}
			//整体向下翻10页
			if($end < $this->page_total)
			{
				$this->link .= "<a href='{$this->page_link}"."?offset={$end}' "." style=\"text-decoration:none\" > ".'>>>'."<a> ";
			}
		}
		//根据分页大小,当分页总数小于10页时,显示基本分页信息
		else
		{
			for($i=1; $i <= $this->page_total;$i++)
			{
				//当前页时,突出显示
				if($this->page_current == $i)
				{
					$this->link .= "<span style='text-decoration:none; font-size: 19px; color: white;' >".$i."</span> ";
				}
				else
				{
					$this->link .= "<a href='{$this->page_link}"."?offset=$i' "." style=\"text-decoration:none\" >".$i."<a> ";
				}
			}
		}
	}
	//添加一个跳转表单
	private function pos()
	{
		$this->pos = "<form  action='{$this->page_link}' method='get' style='display: inline;'><input type='text' name='offset' style='width:40px;' > ".
		"<input type='submit' value='跳转' id='submit' style = 'width: 35px; height: 20px ; margin-top: 2px ; padding:1px;' ></form> ";
	}
	//分页信息的头部(1)需要修改为通用的
	private function header()
	{
		$this->table .= "<div style='margin-left: 400px; margin-top: -18px;'>
		<span style='width: 120px; height:30px; background-color: #a00000; color: #00a000; font-size: 18px;'>查询历史</span>
		<span style='width: 120px; height:30px;  margin-left: 10px ;background-color: #a00000;  font-size: 18px;'><a href='clearHistory.php' target='_blank'  style='text-decoration:underline;color: #00a000; '>清空历史</a></span>
		<span style='width: 120px; height:30px;  margin-left: 10px ;background-color: #a00000;  font-size: 18px;'><a href='reviewWord.html' target='_blank'  style='text-decoration:underline;color: #00a000; '>复习单词</a></span></div>";
		
		$this->table .= "<table style=' width: 720px;  margin-left: 400px; border: 1px solid gray; padding-left: 80px;'>";
	}
	//分页主体(2)需要修改为通用的
	private function table()
	{
		$this->header();
		$word = $this->data();
		$len = count($word);
		for($i=0; $i < $len; $i = $i+3)
		{
			$one = isset($word[$i]) ? $word[$i] : "";
			$two = isset($word[$i+1]) ? $word[$i+1] : "";
			$three = isset($word[$i+2]) ? $word[$i+2] : "";
			$this->table .= "<tr>";
			$this->table .= "<td>".$one."</td>"."<td>".$two."</td>"."<td>".$three."</td>";
			$this->table .= "</tr>";
		}
		$this->table .= "</table>";
		
	}
	//用户接口,生成分页信息
	public function getLink()
	{
		$this->home();
		$this->end();
		$this->total();
		$this->link();
		$this->pos();
		$this->table();
		$this->nagv = $this->home.$this->link.$this->end.$this->pos.$this->total;
		echo $this->table;
		echo "<div style='margin-left: 400px; width: 720px; margin-top: 2px;' >".$this->nagv."</div>";;
	}
}
?>

//下面这个类用户提供复习单词时提供服务,这个功能模仿了有道的复习单词的功能,也就是随机回显你查询过的单词,如果你记得对应的翻译,可以点击按钮进入下一个,如果你不记得,可以点击获取翻译,回显对应的翻译,一次性发完:

<?php
require_once "../sql.class.php";
require_once "../processCheck.class.php";
require_once "../storeWord.class.php";
require_once "../format.class.php";
class ReviewWord
{
	private $cookiename=null;
	private $words=null;
	private $check=null;
	private $storeword=null;
	private $trans;
	public function __construct()
	{
		if(empty($_COOKIE['user']))
		{
			die("你没有查询历史");
		}
		else
		{
			$this->cookiename = $_COOKIE['user'];
			
		}
		$sql = new Sql($this->cookiename);
		$this->check = new Check();
		$this->storeword=new StoreWord();
		$this->trans = new FormatTrans();
		if(!($this->words = $sql->getAllWord())) die('你没有查询史');
	}
	public function getWord()
	{
			$key = array_rand($this->words, 1);
			return $this->words[$key];
	}
	public function getTrans($word)
	{
		$wordzone = $this->check->matchDic($word);
		$trans = $this->trans->trans($this->storeword->getWord($wordzone, $word));
		return $trans;
	}
}
?>
//这个事控制器

<?php 
header("content-type: text/html");
require_once "reviewWord.class.php";
if(!empty($_GET['type']))
{
	$type=$_GET['type'];
	$review = new ReviewWord();
	if($type==1)
	{
		$res['flag']=1;
		$res['result']=$review->getWord();
		echo json_encode($res);
	}
	else if($type==2)
	{
		$word=$_GET['word'];
		$res['flag']=2;
		$res['result']=$review->getTrans($word);
		echo json_encode($res);
	}
}


//这个事界面:

<html>
<head>
<style type="text/css">
#layer{width: 1000px; height:500px; background-color:#abcdab;}
#reviewZone{position: absolute; top: 120px;left: 410px;}


#word{width:70px; height:20px; border: 1px solid #bcbcbc; background-color: #ff0000;}
#button{  woidth: 70px ;height: 20px; border:1 solid #FFCC00;color: #FFCCFF;font-size: 12pt;font-style: normal;font-variant: normal;font-weight: 
normal; line-height: normal;background-color: #9900FF;}

#getTrans{width:70px; height:20px;border:1 solid #FFCC00;color: #FFCCFF;font-size: 12pt;font-style: normal;font-variant: normal;font-weight: normal;line-height: normal;background-color: #9900FF;}

#content{position: absolute; top: 140px;left: 410px;}
</style>

<script type="text/javascript">
function getXMLHttpRequest()
{
	var xmlhttp=null;
	if(window.ActiveXObject)
	{
		xmlhttp = new ActiveXObject("Microsoft.XMLHttp");
	}
	else
	{
		xmlhttp=new XMLHttpRequest();
	}
	return xmlhttp;
}
function query(type)
{
	var url="/ciba/niujin-alpha/review/reviewWord.process.php";
	if(type==1)
	{
		var data ="?type=1";
	}
	else if(type==2)
	{
		var word=$("word").innerHTML;
		var data ="?type=2&word="+word; 
	}
	 var xmlhttp=getXMLHttpRequest();
	 if(xmlhttp)
	{
		xmlhttp.open("get", url+data,true);
		//window.alert(url+data);
		xmlhttp.onreadystatechange=function()
		{
			if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
				var res=xmlhttp.responseText;
				res=eval("("+res+")");
				if(res.flag==1)
				{
					$("word").innerHTML = res.result;
				}
				else if(res.flag==2)
				{
					item='';
					var words = res.result;
					for(i in words)
					{
						item += "<p style = ' border: 1px solid gray; width:650px; background-color:grey; color: #000090;'>"+words[i]+"<p>";
					}
					$("content").innerHTML = item;   
				}
			}
		}
		xmlhttp.send(null);
	}	 
}
function $(id)
{
	return document.getElementById(id);
}
function getWord()
{
	query(1);
}

function getTrans()
{
	if($("word").value !="undefined")
	{
		query(2);
	}
}

</script>
</head>
<body bgcolor="#RGB(67,65,65)">
<img src="../image/ici.jpg" style="margin-left: 400px;">

<div id='reviewZone'>
<a id='getTrans'  onclick="getTrans();" title="点击查看单词的翻译">查看翻译</a>
<a id="button" onclick="getWord();" >获取单词</a>
<span id='word' ></span>
</div>

<div id='transZone'>
<span id='content'></span>
</div>

</body>
</html>

//下面这段程序。用户可以选择清楚自己的查询历史,比如在复习完一些单词之后,可能不希望他们再次显示:


<?php
require_once "../sql.class.php";
if(empty($_COOKIE['user']))
{
	echo "<script> alert('你没有查询历史')</script>";
}
else
{
	$sql = new Sql($_COOKIE['user']);
	$sql->clearHistory();
	
	echo "<script> alert('你的查询历史已经被清空');</script>";
	
}
?>



附加说明:   这个模块的功能主要是: 保存用户的查询历史,用户可以查看自己的查询史,清除自己的查询史,对查询过的单词进行复习;.......其实代码都很简单,关键在于创意吧,,,勉强自圆其说了   @_@

【企业SRE/DevOps向的精通Linux课程培训课程】第 05 天:面向 DevOps 工程师的 Linux 基础命令 本文推荐一系列技术学习课程,包括Linux基础、AWS云服务、AI部署、Docker和Kubernetes等,适合DevOps、SRE及云工程师。重点介绍了Linux基础命令的学习目标及其重要性,包括系统信息查询、文件操作、内容查看和搜索功能,帮助用户快速掌握系统操作、故障排查和自动化编排能力。 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库02

每个分支下又细分了四个关键方向,并按照“研究对象/焦点、基本问题、核心理论/概念、研究方法、应用/目标、前沿/发展”的框架进行阐述,严格遵循了六级编码体系。在最终整合时,应建立唯一的学科分类编码表(例如,用两位数字或“ART”、“MED”、“ECO”等字母前缀),并确保所有下级编码(尺度、层次、类别、子类、具体项)的逻辑一致性。此回答中的编码为示例,实际系统需据此调整。控制过程(前馈、同期、反馈)、全面质量管理(TQM)、平衡计分卡(BSC)定量(调查、实验)、定性(访谈、民族志)、混合方法、大数据。

weixin_49199313的博客 675

用户历史浏览方案设计复盘

需求 用户浏览资料后,保存用户3个月的浏览记录 方案一 数据库: mongodb分表存储 分表规则: 分表规则根据用户id 存储结构: 浏览一次资料记录一条 主键ID 用户ID 资料ID 浏览时间 资料是否有效 查询方式: 根据用户ID,走分表规则找到对应表,查询所有资料ID 定时器:(Day|Month) 所有分表扫描浏览时间在3个月外的记录进行删除 分析: 简单,以记录维度存储在大量用户频繁浏览时,数据库压力巨大 方案二 数据库: redis存储(Day)、mongodb单表存储(Thre

码上的博客 1129

Stardict源代码深度剖析与实战

Stardict的另一个亮点是其对自定义词典和插件的支持。用户可以根据个人需求导入或创建新的词典文件,同时,Stardict通过插件机制支持各种高级功能,如语音朗读、例句获取等,增加了程序的可扩展性和灵活性。通过本章的介绍,我们不难理解为何Stardict能在众多词典软件中独树一帜,不仅满足了用户的日常查询需求,还提供了丰富多样的附加功能,让学习变得更加便捷和高效。接下来的章节,我们将深入探讨Stardict的技术细节,包括其使用的双数组Trie树算法以及跨平台能力和界面设计等。

weixin_36178216的博客 731

【Linux】Rhcsa复习4

shell脚本的基本知识以及用户和用户组的基本管理

BiAlex的博客 831

S7-1200模拟量

将两种不同的金属或合金金属焊接起来,构成一个闭合回路,利用温差电动势来测量温度,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势--热电动势,这就是所谓的塞贝克效应(seebeck effect)。温差越大,热电动势越高。热电偶是有正负极性的,所以需要确保导线连接到正确的极性,否则会造成明显的测量误差。为了使温度补偿达到最佳效果,必须将热电偶模块安装在温度稳定的环境中简述:两种金属,每一种金属随温度变化是不同的,出现温差--由俩金属构成的回路就会有电流经过,因此两端形成热电动势。

王阿妹小天才的博客 2592

2024高教社杯数学建模国赛B题丨国一原创论文解析及源码超详细分享!

继续分享一篇2024国赛B题的国奖论文,包含可运行源代码jupyter,国赛B题通常比较聚焦实际复杂系统的多目标优化决策,主要偏重算法实现与概率建模解决开放性的管理问题。而且高度开放,无标准答案,学科交叉复杂,如资源调度、交通优化、海洋探测等。比较建议有一定统计学基础的同学参加。

ihui永不放弃 6738

智能信息处理复习3——词典及容错式检索

词典 词典是指存储词项词汇表的数据结构。 词项词汇表(Term vocabulary): 指的是具体数据 词典(Dictionary): 指的是数据结构 哈希表 每个词项通过哈希函数映射成一个整数 尽可能避免冲突 查询处理时: 对查询词项进行哈希,如果有冲突,则解决冲突,最后在定长数组中定位 优点: 在哈希表中的定位速度快于树中的定位速度 查询时间是常数 缺点: 没办法处理词项的微小变形 (resume vs. résumé) 不支持前缀搜索 (比如所有以automat开头的词项) 如果词汇表不断增大,需

weixin_43723655的博客 802

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 418

基于AI与间隔重复算法构建个性化单词学习工具

间隔重复算法是一种基于人类记忆规律的学习方法,其核心原理是通过在最佳遗忘点安排复习,将短期记忆转化为长期记忆。该技术通过动态调整复习间隔,显著提升了学习效率,在语言学习、医学教育等领域具有重要价值。结合大语言模型的内容生成能力,可以为每个学习项目创建个性化的学习材料和多样化测验,从而构建高度自适应的智能学习系统。本文以构建英语单词学习工具为例,详细阐述了如何将SM-2算法与OpenAI API相结合,实现动态间隔计算、智能测验生成与个性化复习策略,为开发者提供了一套完整的工程实践方案。

weixin_30613727的博客 393

数据中心机房设备标签规范建议

机房的维护工作中,标识管理是极其重要的一部分,从基本的线缆上跳接信息的标识,到设备、机柜标识规范的实施,不同程度的体现了标识管理的重要作用。本规范适用于机房主设备、线缆、机柜(含PDU插排)、仪器仪表、动力配套设备(各类空调、消防设备、配电柜、UPS等设备)、网络口、电源插座口的标签、标识规定。动力设备的设备编号、设备名称、生产厂商及厂商技术支持热线、设备型号、设备序列号、设备使用部门、设备责任人、设备启用时间及设备保修年限、条形码。各类标签、标识可根据设备和机柜的尺寸、大小进行调整。

有地气的强弱电小圈子 3525

LeRobot 官方论文:一个用于端到端机器人学习的开源库

本文介绍了一个名为LeRobot的开源库,旨在解决机器人学习领域的碎片化问题。该库提供了端到端的技术栈,包括统一的机器人中间件API、标准化的数据集格式(LeRobotDataset)、优化的推理栈以及多种最先进机器人学习算法的实现。LeRobot支持多种低成本开源机器人平台(如SO-10X、ALOHA-2等),通过共享中间件实现便捷的遥操作和数据收集。其数据集格式已广泛应用于社区,截至2025年9月已有16,000多个数据集公开共享。该库还支持流式处理大规模数据,降低了研究门槛。在模型方面,LeRobot

2506_90492529的博客 906

高效英语单词记忆法:词根拆解与联想技巧

词根拆解是理解英语单词构造的基础技术,通过分析前缀、词根和后缀的组合规律,可以显著提升记忆效率。这种方法基于语言学原理,尤其适用于印欧语系词汇学习。在实际应用中,结合场景联想和图像记忆技术,能够构建更牢固的记忆网络。例如,经济类词汇entrepreneur可拆解为entre(之间)+pren(抓取)+eur(人),配合餐厅创业的联想场景,实现多重感官刺激。这种记忆方法特别适合需要快速掌握大量专业术语的编程学习、商务英语等场景,其中algorithm等科技词汇的拆解记忆更是计算机学习者的必备技能。

weixin_30325487的博客 322

【在 WSL2 GUI 中使用 pulseaudio 播放声音】

最近在搞一个Linux项目,由于WSL2中需要用到声音外放,无奈只能潜心研究。后来就使用了一种折中的方式替代,那就是pulseaudio。目前来讲WSL2对硬件外设的支持还是不太友好,关于USB的支持我之前在其他文章中已经论述过了,这里不讨论。1、Windows11别忘记打开声音2、可能有一定延迟,因为是通过网络传输的。3、效果的话只能见仁见智了,如果不能满足要求就安装一个实实在在的Ubuntu吧!

jiexijihe945的博客 4531

Qwen3.8-Flash-Next-NVFP4发布:4位NVFP4量化把180B多模态MoE从360GB压到135GB,完整解读

**Qwen3.8-Flash-Next-NVFP4** 是 Qwen3.8-Flash-Next(约 180B 参数、支持文本/图片/视频输入的多模态 MoE 大模型)的 **NVFP4 4位量化** 版本:仅对 48 层 MoE 中的路由专家做 W4A4 量化,权重从 **360 GB 压缩到 135 GB(约 2.7 倍)**,精度保持在 BF16 参考区间内。下面帮你搞懂它量化了什么、怎么

gitblog_01182的博客 370

PyTorch实战(19)——变分自编码器(Variational Autoencoder,VAE)

变分自编码器 (Variational Autoencoder, VAE) 是一种结合了自编码器和概率建模的生成模型,通过编码器将输入数据映射到潜在空间中的概率分布,并通过解码器将从潜在空间采样得到的潜在变量映射回原始数据空间,实现了数据的生成和特征学习。本节中,将介绍变分自编码器的基本概念,并使用 PyTorch 实现变分自编码器生成新图像。

盼小辉丶的博客 2889

PCL基础:getTransformation函数全流程解析与应用实例,一篇文章精通点云变换

在 Eigen 和 PCL 中,getTransformation是一个常用的函数,用于根据输入的平移和旋转信息(如欧拉角或四元数)生成一个仿射变换矩阵(Eigen::Affine3f或 Eigen::Affine3d)。1)在 Eigen 中,可以通过四元数和平移向量构造一个变换矩阵。2)讲解了从四元数转换到欧拉角,或者从欧拉角转换到四元数的方法。

weixin_42896234的博客 1368

[数据仓库复习] 抽取-转换-装载

抽取-转换-装载前言数据抽取1. 逻辑抽取全量抽取增量抽取2. 物理抽取联机抽取脱机抽取3.变化数据捕获数据转换数据装载开发ETL系统的方法常见ETL工具参考资料 前言 ETL一词,它是Extract、Transform、Load三个英文单词首字母的简写,中文意为抽取、转换、装载。ETL是建立数据仓库最重要的处理过程,也是最体现工作量的环节,一般会占到整个数据仓库项目工作量的一半以上。 抽取: ...

Lestat.Z.的博客 1920

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

终极避坑指南:解决Qwerty Learner用户90%都会遇到的8大技术难题

作为一名键盘工作者,你是否曾因英语输入速度慢于母语而感到困扰?Qwerty Learner正是为这一痛点而生的开源项目——它巧妙地将英语单词记忆与键盘肌肉记忆训练结合,帮助你在背诵单词的同时建立正确的肌肉记忆。无论是备考英语考试的程序员,还是需要提升英语输入效率的专业人士,这个单词记忆与肌肉记忆锻炼软件都能为你提供高效的解决方案。今天,我将带你深入剖析Qwerty Learner使用过程中最常见的

gitblog_01111的博客 651

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

满语学习入门:从零搭建虚拟学习环境与高效学习路径规划

语言学习是掌握一门新技能、拓展认知边界的重要途径,其核心在于建立声音与符号的关联,并通过结构化练习实现内化。从技术实现角度看,现代语言学习已深度依赖数字化工具与环境,例如通过配置特定的输入法、文本编辑器及自动化脚本,可以构建高效、可定制的个人学习系统。这种技术驱动的学习方式,不仅能提升记忆与复习效率,还能通过模拟真实应用场景(如拼读验证、句子构建)来巩固学习效果。对于满语这类少数民族语言的学习,一个精心规划的虚拟学习环境尤为关键,它涉及从资料验证、工具配置到学习流程自动化的完整链路。本文以“快乐满语200句

weixin_30430169的博客 477

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Linux】常用命令大全

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。-size [±]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。正数表示在指定的时间内修改或访问过的文件,负数表示在指定的时间之前修改或访问过的文件,零表示在当前时间点上修改或访问过的文件。(1)-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。

weixin_44823875的博客 1297

OpenAI API实战指南:从零到一掌握大模型集成与对接

在人工智能应用开发中,API(应用程序编程接口)是实现不同软件组件间通信和数据交换的核心技术。其工作原理是通过预定义的协议和数据结构,允许开发者无需了解底层实现细节即可调用远程服务。这项技术的价值在于极大地提升了开发效率,降低了系统集成的复杂度。在AI领域,通过API调用大语言模型(LLM)已成为构建智能应用的主流方式,它让开发者能够快速集成文本生成、对话交互、代码编写等先进能力。在实际工程实践中,掌握API密钥管理、请求构建、错误处理和成本控制等关键环节至关重要。本文聚焦于OpenAI API的实战对接,

cuibinmo3519的博客 501

网易大数据开发校招笔试复盘:考点拆解与备考策略

大数据开发岗位的校招笔试,往往不是单纯考察知识点记忆,而是通过真实业务场景下的工程问题,筛选具备数据分析和分布式系统理解力的候选人。以Hive、Spark、Flink为代表的离线与实时计算组件,是笔试中的核心考察模块,而数据倾斜处理、数仓建模等实战技能更是区分度最高的考点。这道笔试背后的逻辑,是要求候选人在掌握Java/Scala基础的同时,具备从数据接入、计算引擎选型到OLAP查询的完整链路认知。对于求职者而言,理解这类笔试的出题意图,围绕高频考点构建系统化的备考框架,并熟悉从Kafka到Flink再到C

weixin_30251829的博客 337

【系统架构设计师】综合知识篇

本文是软考系统架构设计师备考笔记,系统梳理了考试核心知识点,重点涵盖中间件技术、缓存问题和解决方案。主要内容包括: 中间件概述:定义位于OS与应用间的软件层,分类包括数据库访问、RPC、消息队列等,分析7大技术优点。 消息中间件:对比RabbitMQ/Kafka/RocketMQ特性,详解点对点和发布订阅模型,列举异步解耦、流量削峰等典型场景。 Redis缓存:介绍单线程模型、5种数据结构,重点分析RDB/AOF持久化机制和集群高可用方案。 缓存三大问题:通过流程图解析雪崩(随机过期时间/熔断降级)、穿透(

你的博客 881

常用算法代码模板与题单 | A - 基础算法(更新于2026.10.7)

这篇文档其实是我自己学习路上的一份“复习笔记”。之前看了不少教程,零零散散记了一堆代码片段和小技巧,时间久了就容易忘,翻起来也麻烦。所以干脆花时间整理了一下,把常用的模板、容易踩的坑、还有一些个人觉得挺实用的小技巧都归到了一起。 如果你也在学类似的东西,或许能帮你省下一些翻找的时间;如果有哪里写得不清楚或不对,也欢迎随时指正交流。 希望这份整理也能对你有一点点帮助~ ✨

团爸讲算法 803

附加功能--双击或者划选,获得翻译

//这个功能充分检验了英语六级是多么菜,如果你去听美国总统的演讲,基本是听不懂的,因为太多单词不懂。 这个模块的功能主要是,可以阅读美国历届总统的演讲,在遇到不懂的单词时,可以双加单词,或者划选单词,然后,,然后,对应的翻译就出来了,而且是秒速度。。。。 //这个英语6级的单词词库是网上找的,就是sql语句组成的,所以省了不少事,需要的可以留言 封装了一些对数据库的操作,虽然对于1万多

Free_Program_1314的专栏 1426
上一篇: (11)格式化输出
下一篇: 附加功能--添加词条,并作为查询结果显示
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值