这是我在互联网上找到的用户管理数据库的设置(用伪代码编写).虽然它看起来很好,但我不明白为什么users表有id一个唯一的非空username列.我不能只使用用户名作为id(主键)吗?
users
(
id integer primary key,
username varchar(100) not null unique key,
pwd varchar(50) not null
);
user_roles
(
user_id integer not null,
role_id integer not null,
unique key (user_id, role_id),
index(user_id)
);
roles
(
id integer primary key,
role varchar(100) not null unique key
);
Run Code Online (Sandbox Code Playgroud) 对于伪函数,如
void transaction(Account from, Account to, double amount){
Semaphore lock1, lock2;
lock1 = getLock(from);
lock2 = getLock(to)
wait(lock1);
wait(lock2);
withdraw(from, amount);
deposit(to, amount);
signal(lock2);
signal(lock1);
}
Run Code Online (Sandbox Code Playgroud)
如果您运行事务(A,B,50)事务(B,A,10),则会发生死锁
怎么能防止这种情况?
这会有用吗?
我面临以下面试问题.
考虑这个函数声明:
Run Code Online (Sandbox Code Playgroud)void quiz(int i) { if (i > 1) { quiz(i / 2); quiz(i / 2); } writeOutput("*"); }函数调用打印了多少个星号
quiz(5)?
我的回答是:
具有整数除法结果类型的语言(Javascript,PHP等)是float - 七个星号.函数测验被调用:
- i = 5 - 一次,星号印刷.
- i = 2.5 - 两次,打印星号.
- i = 1.25 - 四次,打印星号.
- i = 0.625 - 八次,没有打印星号
分割结果类型名称为整数的语言(C/C++,C#,Java等) - 三个星号.函数测验被调用:
- i = 5 - 一次,星号印刷.
- i = 2 - 两次,打印星号.
- i = 1 - 四次,星号未打印.
问题语法类似于C/C++,Java,所以答案是三个
采访是a closed book exam- 在采访中我无法运行此代码并进行检查.面试官告诉我,我的回答并不完全正确(或者至少,他们没想到会这样).Hovewer,我在家里运行了这段代码(使用PHP,Javascript和C#),结果就像我描述的那样.
那么,是否有一些我不知道的警告或者我的答案比他们期望的更详细?
我想知道是否有人可以指向某个特征向量中心伪代码或算法(用于社交网络分析)的方向.我已经在维基百科和谷歌搜索了一些信息,但我找不到任何关于广义算法或伪代码的描述.
谢谢!
我目前正在研究快速排序算法的伪代码.在某些方面,它说:
i := left
Run Code Online (Sandbox Code Playgroud)
这:=代表什么?是+=正常还是正常=?
仅供参考:这是完整的伪代码(德语):
funktion teile(links, rechts)
i := links
// Starte mit j links vom Pivotelement
j := rechts - 1
pivot := daten[rechts]
wiederhole
// Suche von links ein Element, welches größer als das Pivotelement ist
wiederhole solange daten[i] ? pivot und i < rechts
i := i + 1
ende
// Suche von rechts ein Element, welches kleiner als das Pivotelement ist
wiederhole solange daten[j] ? pivot und j …Run Code Online (Sandbox Code Playgroud) 如何设计一种算法,在线性时间内计算(图理论)无向,全边有重量1树的直径?树的直径由两个顶点之间的最长路径的长度给出.
知道如何解决这个问题吗?
我是计算机科学的新手,只是从伪代码开始的,所以我有一些疑问。这是我本学期的第三周,大部分时间都是自学的。我有一些问题:
O(n ^ 2)与O(n)算法有什么区别?-同样,O(n log n)是什么?-和?(n ^ 2)?
到目前为止,我已经写了:
horner = 0;
for( i = n; i >= 0; i ?? )
horner = x * horner + a[i];
Run Code Online (Sandbox Code Playgroud)
但是发现它是O(n)。如何转换?
运行时间是多少?-我知道第一行的分配是1个操作
在实际的C#算法中,它看起来如何?
所述布隆-Kerbosch算法是用于列出的图表的所有极大派系的方法。我最近只是为了好玩而成功地实现了该算法。缺点是该算法是递归的,因此只能在很小的图上运行,直到堆栈溢出为止。
应该有可能使算法纯粹是迭代的。考虑一下Wikipedia上的基本版本(无限制)。该算法的迭代版本在伪代码中的外观如何?某处有描述吗?
我在想象一个堆栈数据结构来模拟递归。我还应该有一个循环,在其中测试P和X的空度,但是我没有看到完整的答案。
我正在尝试做一个简单的"人群"模型,需要在2D区域内分配随机点.这个半伪代码是我最好的尝试,但是在我运行它之前我就能看到很大的问题,因为对于密集的人群来说,新点太近的可能性会很快变得非常高,这使得效率非常低且容易发生失败,除非价值被微调.可能也会出现签名值,但为了简单起见,我将其留下.
int numPoints = 100;
int x[numPoints];
int y[numPoints];
int testX, testY;
tooCloseRadius = 20;
maxPointChecks = 100;
pointCheckCount = 0;
for (int newPoint = 0; newPoint < numPoints; newPoint++ ){
//Keep checking random points until one is found with no other points in close proximity, or maxPointChecks reached.
while (pointCheckCount < maxPointChecks){
tooClose = false;
// Make a new random point and check against all previous points
testX = random(1000);
testY = random(1000);
for ( testPoint = 0; testPoint …Run Code Online (Sandbox Code Playgroud) pseudocode ×10
algorithm ×4
syntax ×2
2d ×1
c# ×1
c++ ×1
colon-equals ×1
database ×1
deadlock ×1
distribution ×1
eigenvector ×1
plot ×1
random ×1
sql ×1