我在2天内接受采访,我很难找到这个问题的解决方案:我想要做的是......对于任何电话号码......程序应该打印出它代表的所有可能的字符串.例如.)数字中的2可以用'a'或'b'或'c'代替,3代表'd''e''f'等.这样可以形成多少可能的排列给出了电话号码.我不希望任何人为它编写代码......一个好的算法或伪代码会很棒.
谢谢
我将以编码器的形式完成我的学徒生涯,并且我有一个很好的j2me项目可以继续工作,但我不得不承认我对数学算法并不如我所希望的那么好.
我的问题是从一组给定的值中创建所有可能的"多米诺骨牌对".例如:可能的值从0到6.现在想象一些具有这些值的多米诺骨牌.输出应该是这样的:
00
01
02
03
04
05
06
11
12
13
...
每对只出现一次,但有两个相等值的对是可能的.
我已经搜索过这个问题了,但是我找不到解决这个问题的方法,或者我真的不明白这些算法是如何工作的.
我真的很感激任何解释和算法.随意发布替代解决方案.我宁愿不只是有一个解决方案,但也要理解它;)
我需要找到一种方法来生成一个字符串与特定字符的所有组合,以便始终在PHP中显示.
例如,给定一个字符串'ABCD',并且我想获得字符串的所有组合和字符'B',我希望得到:
数组('B','BC','BCD','B D','AB','ABC','AB D','ABCD')
缺少的字符将替换为空格.有人有主意吗?
我在编写用于求解Magic Squares的递归置换函数时遇到了一些麻烦.对于这个函数,我不允许使用二维数组,只能使用列表.以下是我目前的情况:
def permute(size):
magicSquare = []
for value in permute(size**2):
for pos in range(size**2 + 1):
magicSquare.append(value)
return magicSquare
Run Code Online (Sandbox Code Playgroud)
size 由用户通过命令行参数定义.
如果上面写的函数完成了置换值的任务,我会感到有些困惑.
我正在尝试编写一个简单的递归Perl例程来生成数组的所有排列.我没有任何提供例程的模块,我也无法安装它们.这是我到目前为止的代码:
sub permute
{
my @array = @_;
if (@array == 0)
{
return;
}
else
{
my $accum = "";
my $result = permute_with_accumulator($accum, @array);
return $result;
}
}
sub permute_with_accumulator
{
my ($accum, @array) = @_;
if (@array == 1)
{
my $element = $array[0];
$accum .= "$element,";
}
else
{
my $i;
for ($i = 0; $i <= $#array; $i++)
{
$accum .= "$array[$i] ";
my @new_array = ();
if ($i == 0)
{
@new_array = @array[1..$#array]; …Run Code Online (Sandbox Code Playgroud) 我有一些话:
shapes<- c("Square", "Triangle","Octagon","Hexagon")
Run Code Online (Sandbox Code Playgroud)
我想成对安排它们:
shapescount<-combn(shapes, 2)
shapescount
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] "Square" "Square" "Square" "Triangle" "Triangle" "Octagon"
[2,] "Triangle" "Octagon" "Hexagon" "Octagon" "Hexagon" "Hexagon"
Run Code Online (Sandbox Code Playgroud)
我想计算成对中每个字母的分组,例如第一对对于"Square"为"6"而对于"Triangle"为"8"对于第一对给出"14",依此类推.
我从网站上检查过,这称为单峰置换,它定义为只有一个局部最大值的序列.例如n = 5:
12345
12354
12453
12543
13452
13542
14532
15432
23451
23541
24531
25431
34521
35421
45321
54321
Run Code Online (Sandbox Code Playgroud)
是否有算法来获得第k个单峰排列?
我有n清单,例如:
L_1 = [a_11, a_12, ...]
L_2 = [a_21, a_22, ...]
...
L_n = [a_n1, a_n2, ...]
Run Code Online (Sandbox Code Playgroud)
其中i次列表具有k_i的元素。现在,我想生成所有n-elements列表,其中ith元素来自L_i,我的意思是:
[a_11, a_21, ..., a_n1]
[a_11, a_21, ..., a_n2]
...
[a_11, a_22, ..., a_n1]
[a_11, a_22, ..., a_n2]
...
[a_12, a_21, ..., a_n1]
[a_12, a_21, ..., a_n2]
...
[a_12, a_22, ..., a_n1]
[a_12, a_22, ..., a_n2]
...
Run Code Online (Sandbox Code Playgroud)
列表总数应等于k_1*k_2*...k_n。您能描述这种算法的伪代码还是使用Java代码?当列表数量被硬编码时,我可以使用嵌套的for循环来完成此操作,但是当n在运行时可自定义时,我将被完全阻止。
我正在尝试对字母表的随机排列进行一些处理,但是每个排列产生相同的结果,尽管使用srand(myseed)
我已经包含了<algorithm>标题.
string create_permutation(unsigned seed)
{
srand(seed);
string permutation = ALPHABET;
random_shuffle(permutation.begin(), permutation.end());
return permutation;
}
cout << create_permutation(2) << endl; // or 3, 4, 5 etc
// continuously returns 'XQACKHSLOJ,TRBZNGV.W FIUEYDMP
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
编辑:最小,完整和可验证的例子
编辑2:调整到mcve
#include <iostream>
#include <algorithm>
using namespace std;
const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,' ";
string create_permutation(unsigned seed)
{
srand(seed);
string permutation = ALPHABET;
random_shuffle(permutation.begin(), permutation.end());
return permutation;
}
int main(){
cout << create_permutation(2) << endl; // or 3, 4, 5 etc
// …Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序,该程序计算通过其概率加权的最长条纹,并使用递归来获取所有可能的情况。这是我正在做的编码挑战:https : //open.kattis.com/problems/winningstreak
我注意到,由于递归,对于较大的输入,我拥有的置换函数并不是最有效的。输入示例为3,它将为matchs数组添加以下内容:000、010、001、011、100,110,101,111
public static void Permutations(string text, int numberOfGames, List<String> matches)
{
if (numberOfGames > 0)
for (int j = 0; j < 2; j++)
Permutations(text + j.ToString(), numberOfGames - 1, matches);
else
{
matches.Add(text.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题在于较大的输入(示例500),因为这会导致程序崩溃并引发错误:垃圾收集器无法为主要堆段分配16384字节的内存。还有其他方法可以改善此递归,以便在较大的输入上更好地运行吗?
感谢大伙们!
permutation ×10
algorithm ×3
combinations ×2
recursion ×2
c# ×1
c++ ×1
counting ×1
java ×1
magic-square ×1
math ×1
perl ×1
phone-number ×1
php ×1
pseudocode ×1
python ×1
r ×1
repeat ×1
sequence ×1
string ×1