小编jad*_*hem的帖子

使用myString.split("\n")时遇到问题;

我需要将输入字符串拆分成许多部分.拆分应该出现在"\n"(字面意思是反斜杠-n,而不是换行符).我想转此:

x = [2,0,5,5]\ny = [0,2,4,4]\ndraw y #0000ff\ny = y & x\ndraw y #ff0000
Run Code Online (Sandbox Code Playgroud)

进入这个:

x = [2,0,5,5]
y = [0,2,4,4]
draw y #0000ff
y = y & x
draw y #ff0000
Run Code Online (Sandbox Code Playgroud)

我原本以为stringArray = string.split("\n");这就足够了.

但它在以下代码中给出了与输入相同的输出:

public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter Input\n");
    String s = br.readLine();
    NewInterpreter interpreter = new NewInterpreter(s);
    interpreter.run();
}

public NewInterpreter(String input) {
    this.input = input;
    this.index = 0;
    this.inputComponents = input.split("\n");
    System.out.println("Output: ");
    for(String …
Run Code Online (Sandbox Code Playgroud)

java string io split newline

13
推荐指数
1
解决办法
1250
查看次数

嵌入式调用mpirun的Python

我正在尝试使用PyOpt运行一些并行优化.棘手的部分是在我的目标函数中,我想使用mpi运行C++代码.

我的python脚本如下:

#!/usr/bin/env python    
# Standard Python modules
import os, sys, time, math
import subprocess


# External Python modules
try:
    from mpi4py import MPI
    comm = MPI.COMM_WORLD
    myrank = comm.Get_rank()
except:
    raise ImportError('mpi4py is required for parallelization')

# Extension modules
from pyOpt import Optimization
from pyOpt import ALPSO

# Predefine the BashCommand
RunCprogram = "mpirun -np 2 CProgram" # Parallel C++ program


######################### 
def objfunc(x):

    f = -(((math.sin(2*math.pi*x[0])**3)*math.sin(2*math.pi*x[1]))/((x[0]**3)*(x[0]+x[1])))

    # Run CProgram 
    os.system(RunCprogram) #where the mpirun call occurs

    g = [0.0]*2 …
Run Code Online (Sandbox Code Playgroud)

c++ python mpi

7
推荐指数
1
解决办法
1489
查看次数

使用八度音阶图,如何用连接线绘制点?

我有这样的数据:

x = [23, 25, 28, 29, ...]
y = [25, 38, 38, 28, ...]
Run Code Online (Sandbox Code Playgroud)

现在,我可以用点绘制点数 plot(x, y, '.r');

我按时间顺序收集上面的点数据,现在,我想用一条线连接点,这样我就可以看到哪一个是特定点的下一个点.

plot octave

6
推荐指数
1
解决办法
6978
查看次数

为什么这个Octave代码不起作用?

Y是长度的矢量N,从包含数字110.作为示例代码,您可以使用:

Y = vec(1:10);
Run Code Online (Sandbox Code Playgroud)

我正在编写必须创建N x 10矩阵的代码,每行由全零组成,除了1仅在与向量中的数字对应的位置Y.因此,1Y10000000000,30010000000,等等.

这种方法有效:

cell2mat(arrayfun(@(x)eye(10)(x,:), Y, 'UniformOutput', false))
Run Code Online (Sandbox Code Playgroud)

我的下一个想法是"优化",所以eye(10)不是生成N时间,我写了这个:

theEye = eye(10);
cell2mat(arrayfun(@(x)theEye(x,:), Y, 'UniformOutput', false))
Run Code Online (Sandbox Code Playgroud)

但是,现在Octave给了我错误:

error: can't perform indexing operations for diagonal matrix type
error: evaluating argument list element number 1
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?怎么了?

奖金问题 - 您是否看到了更好的方式来做我正在做的事情?我是否尝试优化Octave的制作工作?

matrix octave

6
推荐指数
1
解决办法
1884
查看次数

如何以随机顺序生成所有集合组合

首先,我甚至不确定术语是否正确,因为我没有找到类似的东西(特别是因为我甚至不知道要使用哪些关键字)

问题: 有一群人,我想把他们分成小组.我有一套规则可以为每个作业分配一个分数.我想找到最好的一个(或者至少是一个非常好的).

例如,如果人口为4,{A,B,C,D}并分配给两组,则可能的分配是:

{A,B},{C,D}

{A,C},{B,D}

{A,D},{B,C}
Run Code Online (Sandbox Code Playgroud)

例如,{B,A},{C,D}并且{C,D},{A,B}它们都与第一个相同(我不关心组内的顺序和组本身的顺序).

人数,群体数量以及每个群体中适合的人数都是投入.

我的想法是列出每个可能的分配,计算他们的分数并跟踪最好的分配.也就是说,蛮力.由于人口可能很大,我想以随机顺序浏览它们并返回时间用完时找到的最好的一个(可能是当用户感到无聊或认为它是一个足够好的发现时).人口可以从非常小(列出的四个)到非常大(可能超过200个)变化,所以只是尝试随机的而不关心重复与小的一起分解,在那里可能有蛮力(加上我不知道什么时候)如果我使用普通随机排列,则停止).

人口足够大,列出能够改组它们的所有分配都不适合记忆.所以我需要一个方法来以随机顺序查找所有可能的赋值,或者一个方法,给定一个索引,生成相应的赋值,并使用索引数组和shuffle(第二个会更好因为我可以很容易将任务分配到多个服务器中).

random algorithm combinations set combinatorics

6
推荐指数
1
解决办法
844
查看次数

select() + 非阻塞 write() 是否可以在阻塞管道或套接字上使用?

情况是我有一个阻塞管道或套接字 fd,我不想write()阻塞,所以我先做了select()一个,但这仍然不能保证write()不会阻塞。

这是我收集的数据。即使select()指示可以写入,写入的PIPE_BUF字节数也会阻塞。然而,写入最多PIPE_BUF字节在实践中似乎不会阻塞,但POSIX 规范并未强制要求。

那只指定原子行为。Python(!) 文档指出:

报告为准备写入的文件select()poll()或此模块中的类似接口保证不会在写入最多PIPE_BUF字节时阻塞。POSIX 保证该值至少为 512.

在下面的测试程序中,设置BUF_BYTES100000write()成功选择后在 Linux、FreeBSD 或 Solaris 上阻塞 。我假设命名管道与匿名管道具有相似的行为。

不幸的是,阻塞套接字也会发生同样的情况。通话 test_socket()main(),并使用一个相当大的BUF_BYTES100000好这里太)。目前尚不清楚是否有像PIPE_BUF套接字一样的安全缓冲区大小 。

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <limits.h>
#include <stdio.h> …
Run Code Online (Sandbox Code Playgroud)

unix sockets posix pipe blocking

5
推荐指数
1
解决办法
2393
查看次数

当使用quicksort对具有不同键的N个项目的数组进行排序时,大小为0,1和2的子数组的预期数量是多少?

我正在阅读Robert Sedgewick的书Algorithms第4版,他有以下练习题:当使用quicksort对具有不同键的N个项目的数组进行排序时,大小为0,1和2的子数组的预期数量是多少?

然后他说,如果你在数学上有倾向,做数学,如果没有,运行实验,我已经进行了实验,看起来大小为0和1的数组具有完全相同的出现次数和大小为2的数组只有一半是发生的.

有问题的quicksort版本是具有双向分区的版本.

据我所知,当分区项是子数组中最小/最大的分区项时,我们得到大小为0的子数组,因此后续的2个排序调用将是

sort(a, lo, j-1); // here if j-1 < lo, we have an array of size 0
sort(a, j+1, hi); // here if j+1 > hi, we have an array of size 0
Run Code Online (Sandbox Code Playgroud)

当分区项目是第2个到第一个最小/最大项目时,大小为1的数组发生,当它是第3个到第一个最小/最大项目时,大小为2.

那么,我究竟如何得出一个数学公式呢?

这是C#中的代码

class QuickSort
{
    private static int zero = 0, one = 0, two = 0;
    private static int Partition<T>(T[] a, int lo, int hi) where T : IComparable<T>
    {
        T v = a[lo];
        int i = …
Run Code Online (Sandbox Code Playgroud)

sorting algorithm math probability quicksort

5
推荐指数
1
解决办法
385
查看次数

Octave:在索引表达式中无效使用脚本

我想plot.m在 Octave 中使用一个简单的代码 ( ) 来绘制图形。我的代码如下:

printf('Plotting Data...\n');
x = -10:0.1:10;
plot(x, sin(x));
Run Code Online (Sandbox Code Playgroud)

但我收到错误消息:

错误:在索引表达式中无效使用脚本 ex1/plot.m 错误:从第 3 行第 1 列的绘图中调用

你能告诉我如何解决吗?谢谢!

plot octave

5
推荐指数
2
解决办法
1万
查看次数

无法使用 Octave 求解简单的 ODE

我是 Octave 的新手,所以在转向更复杂的项目之前,我试图让一些简单的示例发挥作用。

我正在尝试解决 ODE 问题dy/dx = a*x+b,但没有成功。这是代码:

%Funzione retta y = a*x + b. Ingressi: vettore valori t; coefficienti a,b
clear all;
%Inizializza argomenti
b = 1;
a = 1;
x = ones(1,20);
function y = retta(a, x, b) %Definisce funzione
y = ones(1,20);
y = a .* x .+ b;
endfunction
%Calcola retta
x = [-10:10];
a = 2;
b = 2;
r = retta(a, x, b)
c = b;
p1 = (a/2)*x.^2+b.*x+c  %Sol. analitica di …
Run Code Online (Sandbox Code Playgroud)

function octave ode

3
推荐指数
1
解决办法
1847
查看次数

按字母顺序排序列表中的元素

我有一个Shape类,在这个类中有一个叫做的方法getRepr()可以得到char一个形状的表示.例如,

ShapeA.getRepr() ->'a' 
ShapeB.getRepr() ->'b'
ShapeC.getRepr() ->'c'
Run Code Online (Sandbox Code Playgroud)

现在我有一个ArrayList存储几个形状,包括ShapeE,ShapeA,ShapeD,ShapeC,和ShapeB.

现在的问题是我如何使用Collections.sort(),以字母顺序重新排列这些形状在ArrayList根据自己的char陈述?

预期的结果在这个ArrayList排序后应ShapeA,ShapeB,ShapeC,ShapeD,ShapeE.

或者有没有办法达到这个目的没有Collections.sort()

java

1
推荐指数
1
解决办法
59
查看次数