我不想邀请Pseudocode在这里是否有用的论点,...有很多与此相关的问题.我觉得写伪代码有时很有用,但有一件事一直在发生,我表达的最好方法是什么?
有时我最终会使用编号方法,有时我会使用C风格的语法,但大部分时间它都是我认为当时最好的混合.这很好,但在6个月后,当我再来看一遍时,并不总是那么清楚意图是什么!为了打击我最近开始将页面分成两部分而在右半部分,我会写pidgin [在这里插入语言],在左边我会写出非常明显和冗长的英文.
我不认为没有任何"标准"来编写伪代码,但我很想知道其他人是如何做到的,也许这将帮助我决定采用统一的方法.
提前致谢.
哦,我知道这个问题是主观的,如果这不是SO的预期目的,我很抱歉,但它仍然是一个有效的问题.事实上,计算中真的有很多问题只有一个正确的答案吗?我将把最有用的答案标记为正确.
我已经把它变成了这样你就不会帮我欺骗.只是想知道这看起来是否正确:
作业:输入员工姓名和工资清单,并确定平均(平均)工资以及平均值之上和之下的工资数量.
计划:允许输入姓名和工资计算平均排序值计算高于平均计数值低于平均值的值
//This program will allow a user to input an employee name and salary
//The output will contain the mean salary
//as well as the number of salaries above and below the mean
//
//Arrays Used:
//Name(K) = Array for employee names
//Salary(K) = Array for salaries
//
//Variables Used:
//Mean = Mean of all employees Salaries
//UpMean = Number of Employees making more than the mean
//DwnMean = Number of Employees making less than the mean
//Sum …Run Code Online (Sandbox Code Playgroud) 我有一些小算法,我想在一篇论文中写出来.它们相对简短,简洁.然而,我不想用伪代码(àlaCormen甚至Knuth)编写它们,而是想写出它们的代数表示(更线性和更好的LaTeX渲染).但是,如果有什么东西,我无法找到关于此的最佳表示法的资源:例如,我如何表示循环?如果?在列表中添加元组?
有没有人遇到过这个问题,并以某种方式解决了它?
谢谢.
编辑:谢谢,人们.我认为我在表达这个问题方面表现不佳.这里又说了一遍,希望我说得更清楚:在数学符号中讨论循环和if-then子句的常用符号是什么?例如,我可以$acc \leftarrow acc \cup \langle i,i+1 \rangle$用来表示列表的"添加"方法.
以下代码是我认为可以作为伪代码限定的示例,因为它不以任何语言执行,但逻辑是正确的.
string checkRubric(gpa, major)
bool brake = false
num lastRange
num rangeCounter
string assignment = "unassigned"
array bus['business']= array('person a'=>array(0, 2.9), 'person b'=>array(3, 4))
array cis['computer science']= array('person c'=>array(0, 2.9), 'person d'=>array(3, 4))
array lib['english']= array('person e'=>array(0, 4))
array rubric = array(bus, cis, lib)
foreach (rubric as fieldAr)
foreach (fieldAr as field => advisorAr)
if (major == field)
foreach (advisorAr as advisor => gpaRangeAr)
rangeCounter = 0
foreach (gpaRangeAr as gpaValue)
if (rangeCounter < 1)
lastRange = gpaValue
else if …Run Code Online (Sandbox Code Playgroud) 有没有人知道Donald B. Johnson的算法,它列举了有向图中的所有基本电路(周期)?
我有他在1975年发表的论文,但我无法理解伪代码.
我的目标是用Java实现这个算法.
例如,我所遇到的一些问题是它所指的矩阵A k是什么.在伪代码中,它提到了这一点
Ak:=adjacency structure of strong component K with least
vertex in subgraph of G induced by {s,s+1,....n};
Run Code Online (Sandbox Code Playgroud)
这是否意味着我必须实现另一种找到A k矩阵的算法?
另一个问题是以下是什么意思?
begin logical f;
Run Code Online (Sandbox Code Playgroud)
这条线是否"logical procedure CIRCUIT (integer value v);"意味着电路程序返回一个逻辑变量?在伪代码中也有" CIRCUIT := f;" 行.这是什么意思?
如果有人能将这个1970年代的伪代码翻译成更现代的伪代码,那将是很棒的,所以我能理解它
如果您有兴趣提供帮助但找不到纸张,请发送电子邮件至pitelk@hotmail.com,我会将纸张发给您.
我正在寻找您可能在面试中被问到或被要求代表您的工作或教育的伪代码问题的示例.我不是特别寻找来自任何领域的示例,因此它可能与设计模式,算法,数据结构,缓存策略,与软件工程和开发有关,简单或复杂.
例如,我发现的一些常见的主要与排序和搜索技术有关:
procedure bubbleSort( A : list of sortable items ) defined as:
do
swapped := false
for each i in 0 to length(A) - 2 inclusive do:
if A[i] > A[i+1] then
swap( A[i], A[i+1] )
swapped := true
end if
end for
while swapped
end procedure
Run Code Online (Sandbox Code Playgroud)
插入排序:
insertionSort(array A)
begin
for i := 1 to length[A]-1 do
begin
value := A[i];
j := i - 1;
done := false;
repeat
if A[j] > value then …Run Code Online (Sandbox Code Playgroud) 我正在为游戏制作一个gui API,一个请求的功能是震动事件.基本上是一个非常类似于Windows 7的Aero Shake的事件.当鼠标按下时,如果它快速地单向来回移动,则会触发该事件.我只是不确定什么类型的psedocode会进入这个?
我们正在生成rsa密钥,并希望将它们存储为公共和私有base64哈希,就像我以前在我的linux框中的〜/ .ssh文件夹中看到的那样.
但是,我们正在处理RSA原语--n,e和d值.
如何从这些值中生成base64哈希值?反之亦然(如果不是很明显).
我正在为期中考试而学习,其中一个练习题要求:
考虑递归伪算法Milk(a),该算法将a> = 1作为输入整数。
MILK(a)
if a = 1;
then eat cookie;
else drink glass of milk;
select a random integer b with 1 <= b <= a-1
MILK(b);
MILK(a-b);
endif
Run Code Online (Sandbox Code Playgroud)
1)解释为什么对于任何整数a> = 1算法,MILK(a)终止
我认为因为n-1,对于递归函数MILK(b)的输入,m的可能性变得越来越小,最终达到满足条件a = 1的1;因此吃了一个cookie,因此终止了算法。
2)令M(a)为您在运行MILK(a)时喝的牛奶量。确定M(a)的确切值
对于这个,我假设它将是M(a)= a + a,因为每次您运行它时,输入都是“ a”,将每个输入相加即可得出总数。
我的答案如何?或者这完全不正确。谢谢!
我需要使用动态编程在零和一个矩阵中找到最大的三角形.所以如果这是我的矩阵:
1 0 0 1 1
0 1 1 1 1
0 1 1 1 0
1 1 1 1 1
1 1 0 0 1
Run Code Online (Sandbox Code Playgroud)
然后在[2,2]和[4,4]处有两个最大的三角形,右角.我只需要寻找正确的等腰三角形(其角度为90°,45°,45°),我还需要只查看一个方向,因为所有其他方向都是对称的.所以基本上我需要一个函数,它接受矩阵并返回一个三角形,三角形是一个对象.我不需要完整的代码伪代码也很好.
首先我想到在这里使用方形算法:动态编程 - 最大的方块,当你找到最大的方块时,那么最大的三角形必须在那里.但我可以很容易地找到反效果的例子.在那之后我试着查看上面的单元格并用动态编程来计算它,但是我不知道下一步该怎么做...所以我的计数看起来像这样用上面的矩阵:
1 0 0 1 1
0 1 1 2 2
0 2 2 3 0
1 3 3 4 1
2 4 0 0 2
Run Code Online (Sandbox Code Playgroud)
我认为必须以某种方式使用它.
更新:
我认为我现在非常接近,当你遍历矩阵n*m并且使count [i] [j] = 1+ min(count [i-1] [j],count [i] [j-1] ),所以看左边和上面的细胞.我们得到这个:
1 0 0 1 1
0 1 1 2 …Run Code Online (Sandbox Code Playgroud) pseudocode ×10
algorithm ×4
c++ ×1
cycle ×1
definition ×1
graph ×1
java ×1
javascript ×1
math ×1
notation ×1
python ×1
recursion ×1
ssh ×1
vb.net ×1