当前位置:首页 » 操作系统 » 生成算法

生成算法

发布时间: 2022-01-10 08:06:07

❶ 生成学习算法和判别学习算法的区别

那个不叫 区分模型 一般要叫判别模型
简单说判别模型会描述从观察到的现象会得到怎样的结论 比如可以是类别等
生成模型会描述观察到的现象是通过一种怎样的数学结构产生的

❷ 求序列号生成算法

随机序列的算法
作者:unknown 更新时间:2005-03-17

找到了两个算法, 第一个很简单, 但可惜不是随机的, 第二个是典型的伪随机数算法, 可惜要用到2的几百万次方这样巨大的整数, 真痛苦
要是有UNIX上计算密码的源代码就好了

第一种做法:
f(k) = (k*F(N-1)) mod F(N)
其中,
k是一个序列号, 就是要取的那个数的顺序号
F(N)是这样一个序列 F(0) = 0, F(1) = 1, F(N+2) = F(N+1)+F(N) (for N>=0)

第二种做法

V = ( ( V * 2 ) + B .xor. B ... )(Mod 2^n)
N+1 N 0 2
V是要取的随机数, B是个种子, n是随机数的最大个数

原来这个问题, 很高难, 不少数学高手都为解决这个问题写了论文, 咳咳, 偶真是个白痴

呵呵, 效果肯定是不错啦, 因为用不到很大的表.
至于应用是这样的, 比如, 你要给每个用户在注册的时候一个ID但有不希望用户在看到自己的ID的时候能知道其他用户的ID, 如果用SEQUENCE来生成ID的话, 一个用户只要把自己的ID减1就能得到其它用户的ID了. 所以要用随机数来做ID, 这样用户很难猜到其他用户的ID了.

当然主要的问题是, 随机数可能重复. 因此希望使用一个随机数做种子用它来确定一组"无规律"的自然数序列, 并且在这个序列中不会出现重复的自然数. 在这里使用的方法生成的序列并不是没有规律的, 只不过这个轨律很难被发现就是了.
Xn+1 = (aXn + b) mod c (其中, abc通常是质数)是一种被广泛使用的最简单的随机数发生算法, 有研究表表明这个算法生成的随机数基本上符合统计规律, java, BORLAND C等用的都是这个方法, 一般只要保证第一个种子是真正的随机数就行了,

下面来说一下重复的问题,
上述方法会有可能出现重复, 因为当(aXn + b)有可能是同样的数或者说余数相同的数, 因此要想不重复就得变形
偶想到的方法是
Xn=(a*n + b) mod c n是一个在1到c之间的整数, a*n + b就是一个线性公式了, 且若n不同则a*n + b也不同, 它们除上质数c得到的余数也肯定不同, 因为 若不考虑a和b而只有n的时候, 每次的结果都是n,而线性公式, 只不过移动了这条直线的位置和斜率而已, 每个结果仍然不会相同的,
为了增加不可预计性, 偶又为上面那个公式设计了, 随机数种子, 于是就变成了这个样子
F(N)=(随机数*(N+随机数))MOD 一个质数
这样就能够产生 1到选定质数之间的一个"无规律"的自然数序列了, 只要改变随机数就能改变序列的次序

在应用的时候, 要把随机数种子和最后用到的序列号保存到一个表里, 每此使用的时候取出来算好, 再把序列号更新一下就可以了
具体地说, 就是可以建一个表来保存每个序列的随机数种子, 然后再为这个序列建一个SEQUENCE就行了
然后就
SELECT MOD(序列控制表.随机数*(SEQ.NEXTVAL+序列控制表.随机数)),序列控制表.质数)
FROM 序列控制表
WHERE 序列控制表.序列ID=XX
就OK了
注意 序列控制表.质数 决定了序列的范围

http://www.ddvip.net/database/mssql/index2/81.htm /* CopyRight */

当然,我以前也见过那种类型的,就是“真随机”,大概是根据随机按键的键位和鼠标在CRT上任意的“随机”位置以及当时的系统时间(或相对间隔,一般至少毫秒级)来适应某种较复杂的算法来产生的。...其实,可以产生随机效应的自变量的确是很多的,就看你怎么用好了。

去看看系统论和混沌学吧,还有高等数学中的分形理论和物理热学中的耗散结构理论,可能会有所帮助,呵呵。
最后,倒有兴趣问问你要的随机数是做什么用呢,是个子问题吗?

❸ java怎么进行随机数生成算法

要产生随机数,可以使用Java api中java.lang包中的Math类.Math类以静态方法的方式提供常用的数学方法,
其中Math.random()方法是一个可以产生[0.0,1.0]区间内的一个双精度浮点数的方法
如:
产生一个100以内的整数:int x=(int)(Math.random()*100);
又如:
产生一个1-50之间的随机数:int x=1+(int)(Math.random()*50)
也可以使用通用创建对象来获取:
Random random = new Random();
random.nextInt(x);
产生一个0到x-1的正数,如果想产生浮点数有Random类的nextFloat方法,总之nextXXX方法是用来产生随机数的。

❹ 求二维码的生成算法 C语言

二维码有很多种标准,可以控制存储数据的信息量,也可以控制容错的数据量[使得部分污损的二维码可以被正常读取]

通常的做法是调用二维码设计方提供的组件,像你这个准备自己生成二维码,应该可以生成可以看起来很像的东西。

但是估计其余的读码工具都读取不出来。

❺ 直线和圆的生成算法

直线和圆的像素级生成算法2008-05-31 16:42直线的像素级生成算法:

光栅扫描显示器,其显示屏是由许多被称为像素的点组成。显示器显示的图形或图像就是通过这些像素的亮与不亮(或颜色不同)的各种组合而形成的。

像素级生成方法:如果要生成一条曲线,逐点地选择那些距离曲线最近的像素并将其点亮,这就是像素级(或点)生成算法。

优点:1. 生成的曲线误差小,精度高。一般所显示的像素与实际曲线之间的距离一般不大于二分之一个像素单位。

2. 算法只使用整数运算(至少在主循环内只使用整数运算),因而执行速度快。

bresenham算法:

伪代码:

在(x1,y1)到(x2,y2)之间画一条直线

dx 是x到终点横坐标的距离

dy 是y到终点纵坐标的距离

ix 是dx的绝对值

iy 是dy的绝对值

inc是dx和dy中较大的那个

plot是是否要画一个点的标志位,boolean变量

plotx 是当前点所在的横坐标

ploty 是当前点所在的纵坐标

plotx = x1

ploty = y1

x = 0

y = 0

在 plotx,ploty画一个点——起点

for i = 0 to inc 增量1

x += ix

y += iy

plot = false

if x > inc then

plot = true

x -= inc

if dx > 0 then plotx ++

if dx < 0 then plotx --

if y > inc then

plot = true

y -= inc

if dy > 0 then ploty ++

if dy < 0 then ploty --

if plot == true then 在(plotx,ploty)处画点

c代码:

void draw_line1(pnt s, pnt e)

{

int plotx, ploty; //当前点横纵坐标

plotx = s.x;

ploty = s.y;

int x, y;

x = 0;

y = 0;

int dx, dy; //x,y到终点横、纵坐标的距离

dx = e.x - s.x;

dy = e.y - s.y;

int ix, iy; //dx,dy的绝对值

ix = abs(dx);

iy = abs(dy);

int inc = (dx > dy ? dx : dy);

char plot = FALSE;

for(int i=0; i<inc; ++i)

{

x += ix;

y += iy;

plot = FALSE;

if(x > inc)

{

plot = TRUE;

x -= inc;

if (dx > 0)

plotx++; //当前点加1

if (dx < 0)

plotx--;

}

if(y > inc)

{

plot = TRUE;

y -= inc;

if(dy > 0)

ploty++;

if(dy < 0)

ploty--;

}

if(plot == TRUE)

{

int i = ploty*WIDTH + 3*plotx;

image[i] = 0;

image[i+1] = 0;

image[i+2] = 0;

}

}

LCD_SetFrameBufferAddress(image);

}

最快的像素级圆生成算法:

形式描述:

x = 0; y = R;

d = -R/2;

if R is even then goto EvNoIt;

setpixel(x, y);

LOOP: x = x + 1;

if d<0 then d=d+x;

else {

y=y-1;

d=d+x-y;

if x>y then stop;

}

setpixel(x, y);

EvNoIt: x=x+1;

if d<0 then d=d+x+1;

else {

y=y-1;

d=d+x-y+1;

if x>y then stop;

}

setpixel(x, y);

goto LOOP;

C代码:

void draw_circle(pnt c, int r)

{

int x,y,d;

x = 0;

y = r;

d = -r/2;

while(x<y)

{

if(r%2 == 0)

//第一象限

setpixel(c.x+x, c.y+y);

setpixel(c.y+y, c.x+x);

//第二象限

setpixel(c.x+x, c.y-y);

setpixel(c.y+y, c.x-x);

//

setpixel(c.x-x, c.y+y);

setpixel(c.y-y, c.x+x);

//

setpixel(c.x-x, c.y-y);

setpixel(c.y-y, c.x-x);

if(r%2 == 1)

{

x += 1;

if(d < 0)

d += x + 1;

else

{

y -= 1;

d += x - y + 1;

}

//第一象限

setpixel(c.y+y, c.x+x);

setpixel(c.x+x, c.y+y);

//第二象限

setpixel(c.x+x, c.y-y);

setpixel(c.y+y, c.x-x);

//

setpixel(c.x-x, c.y+y);

setpixel(c.y-y, c.x+x);

//

setpixel(c.x-x, c.y-y);

setpixel(c.y-y, c.x-x);

}

x += 1;

if(d < 0)

d += x;

else

{

y -= 1;

d += x - y;

}

//第一象限

setpixel(c.y+y, c.x+x);

setpixel(c.x+x, c.y+y);

//第二象限

setpixel(c.x+x, c.y-y);

setpixel(c.y+y, c.x-x);

//

setpixel(c.x-x, c.y+y);

setpixel(c.y-y, c.x+x);

//

setpixel(c.x-x, c.y-y);

setpixel(c.y-y, c.x-x);

}

LCD_SetFrameBufferAddress(image);

}

❻ 求一序列号生成算法设计

看的我头好大啊

❼ letax编写论文时,原有模版生成算法格式为:algorithm1, 如何让algorithm与章节关联, 如:算法3.1

LaTeX(LATEX,音译“拉泰赫”)是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,
能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。
LaTeX使用TeX作为它的格式化引擎,当前的版本是LaTeX2ε。
Leslie Lamport开发的LaTeX是当今世界上最流行和使用最为广泛的TeX宏集。它构筑在Plain TeX的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用TeX的强大功能。使用LaTeX基本上不需要使用者自己设计命令和宏等,因为LaTeX已经替你做好了。因此,即使使用者并不是很了解TeX,也可以在短短的时间内生成高质量的文档。对于生成复杂的数学公式,LaTeX表现的更为出色。LaTeX自从八十年代初问世以来,也在不断的发展.最初的正式版本为2.09,在经过几年的发展之后,许多新的功能,机制被引入到LaTeX中。在享受这些新功能带来的便利的同时,它所伴随的副作用也开始显现,这就是不兼容性。标准的LaTeX 2.09引入了“新字体选择框架”(NFSS)的LaTeX、SLiTEX,AMS-LaTeX等等,相互之间并不兼容.这给使用者和维护者都带来很大的麻烦。为结束这种糟糕的状况,FrankMittelbach等人成立了ATeX3项目小组,目标是建立一个最优的,有效的,统一的,标准的命令集合。即得到LaTeX的一个新版本3.这是一个长期目标,向这个目标迈出第一步就是在1994年发布的LaTeX2e。LaTeX2e采用了NFSS作为标准,加入了很多新的功能,同时还兼容旧LaTeX 2.09。LaTeX2e每6个月更新一次,修正发现的错误并加入前,LaTeX2e将是标准的。[1]

❽ 什么是列生成算法

什么是算法?试从日常生活中找3个列,描述它们的算法

❾ 列生成算法

列生成
设yi(i∈N\{0})为前述线性规划(LP)的对偶变量(al variable),则对应可 行路线r=(0,i1,i2, …, ik, 0)有即约代价(reced cost)fr:

它可表示为r上弧的边际代价(marginal cost)之和:

这里弧(i,j)的边际代价定义为

fij=Cij-yj,(i,j)∈r

当对任意r∈R有fr0时, 线性规划(LP)求得最优解。
在实施列生成时,可行路线r通过动态规划产生。设Fi(S,t)表示从中心出发,经过S中的 所有点i(PiSN)一次且仅仅一次,在t时刻或之前到达客户i的路线的最小边际成本, 则Fi(S,t)可用如下递归公式计算:

对所有的j,S,t, j∈N, SN, ajtbj.

❿ 像素地图的随机生成算法是怎么样的

你看到的每一片风景,都是由好多程序员们默默地做出来的

解释:
利用种子,每一个地图都有一个种子
种子不同,地图就不同
你的问题有一些不严谨
1、如果你的地图种子很巧合的一样,那么你的地图就是一样的(只是出生地有些不同而已)
2、MC是个不科学的游戏···(你见过雪地和沙漠挨在一起的么···你见过用铁桶容纳1500度的岩浆的么···你见过那么大个的蜘蛛么···你见过四格的水无限取么···)

热点内容
单片机android 发布:2024-09-20 09:07:24 浏览:765
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:664
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:311
子弹算法 发布:2024-09-20 08:41:55 浏览:289
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:817
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:162
sql数据库安全 发布:2024-09-20 08:31:32 浏览:94
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:507
编程键是什么 发布:2024-09-20 07:52:47 浏览:658
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:481