小编Am_*_*ful的帖子

如何在NetBeans中"重置为DEFAULT"文本编辑器的颜色?

我想看看Netbeans看起来像Photoshop CS6,Visual studio类型.所以

  1. 安装了一个黑暗的主题和
  2. 我改变了一些选项和代码元素颜色让我满意.

我忘记了我所做的改变

  1. 我尝试了所有的颜色组合,它变​​得更糟
  2. 即使重新安装也没有帮助我

我经常搜索以使其默认

我的问题(图片)是 这个:

netbeans

7
推荐指数
2
解决办法
3万
查看次数

左递归解析

描述:

在阅读C book中的Compiler Design时,我遇到了以下规则来描述无上下文语法:

识别一个或多个语句列表的语法,每个语句都是一个后跟分号的算术表达式.语句由一系列以分号分隔的表达式组成,每个表达式包含一系列由星号(用于乘法)或加号(用于加法)分隔的数字.

这是语法:

1. statements ::= expression;
2.                | expression; statements
3. expression ::= expression + term
4.                | term
5. term       ::= term * factor
6.                | factor
7. factor     ::= number
8.                | (expression)
Run Code Online (Sandbox Code Playgroud)

该书指出这种递归语法存在一个主要问题.几个产品的右侧出现在生产3的左侧(并且此属性称为左递归),并且某些解析器(如递归下降解析器)无法处理左递归生成.他们只是永远地循环.

您可以通过考虑解析器在替换具有多个右侧的非终端时如何决定应用特定生产来理解该问题.简单的情况在制作7和8中很明显.解析器可以通过查看下一个输入符号来选择在扩展因子时应用哪个制作.如果此符号是数字,则编译器应用Production 7并用数字替换该因子.如果下一个输入符号是一个左括号,则解析器将使用Production 8.但是,Productions 5和6之间的选择无法以这种方式解决.在生产6的情况下,术语的右侧以一个因子开始,该因子以数字或左括号开始.因此,解析器希望在替换术语时应用Production 6,并且下一个输入符号是数字或左括号.生产5-另一个右侧 - 以一个术语开始,该术语可以以一个因子开始,该因子可以以数字或左括号开头,这些是用于选择生产6的相同符号.


题:

书中的第二句话让我彻底迷失了.所以通过使用一些语句的例子(例如)5 + (7*4) + 14:

  1. 因素和期限之间有什么区别?使用相同的例子
  2. 为什么递归下降解析器不能处理左递归生成?(解释第二句).

compiler-construction recursion parsing recursive-descent left-recursion

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

如何在 ash shell 中保持程序在后台运行

我需要通过 SSH 连接到嵌入式设备,启动后台程序,然后断开连接并保持后台进程运行。问题是嵌入式设备正在使用 ash shell(不是 bash 或其他任何东西),所以 nohup 和 screen 不可用。我还没有找到任何方法来断开 ash 中的进程。有没有办法在灰烬中做到这一点?

linux ssh shell embedded-linux ash

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

是否有任何好的算法来检测停止向服务器发送心跳的客户端?

假设数百万客户端在固定时间间隔内向一台服务器发送心跳,因此服务器判断客户端停止发送心跳的时间大于间隔时间.如果服务器只维护一个映射并继续迭代每个客户端以检查客户端是否超时,那将产生O(n)复杂性,这对数百万客户来说是可怕的.是否存在一些算法来制作O(log(n))复杂度,就像一些堆或二叉树来解决这样的问题?谢谢.

algorithm optimization client data-structures server

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

找到由给定数字整除的两位数组成的最小数字

我在接受采访时被问到以下问题,我不知道该怎么做

编写程序以找到可由0和9形成的最小数字,该数字可被给定数字整除.
例如,如果给定的数字是3输出应该是9,如果给定数字是2输出是90,如果给定数字是10输出是90

我在网上找到了这个解决方案,但我还没有理解这一点: -

public class Smallest0And9DivisibleNumber {
    public static int find(int divisible) {
        int bin = 1;
        while (true) {
            int res = translate(bin);
            if (res % divisible == 0) {
                return res;
            }
            bin += 1;
        }
    }

    private static int translate(int bin) {
        int result = 0;
        for (int i = Integer.toBinaryString(bin).length(); i > 0; i--) {
            result *= result != 0 ? 10 : 0;
            int mask = 1 <<  (i - 1);
            result += …
Run Code Online (Sandbox Code Playgroud)

java algorithm math division

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

java.net.SocketException:不是多播地址

我正在使用MulticastSocket,当我尝试加入一个组时,当我在"localhost"ip上运行组时,它永远不会工作.但是,我发现这篇文章http://lycog.com/programming/multicast-programming-java/表明范围应该在224.0.0.1和239.255.255.254之间.当我从该IP中创建一个InetAddress并加入该组时,它就可以工作了.请解释为什么这是必要的.

例:

InetAddress group = InetAddress.getByName("localhost");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);
Run Code Online (Sandbox Code Playgroud)

//抛出

Unable to connect to host:localhost on port:8888
java.net.SocketException: Not a multicast address
Run Code Online (Sandbox Code Playgroud)

有效的示例:

InetAddress group = InetAddress.getByName("224.0.0.1");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);
Run Code Online (Sandbox Code Playgroud)

java networking network-programming datagram multicastsocket

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

Cassandra运算的时间复杂度(Big O)是多少?

假设只有一个节点具有R行。基本Cassandra操作的理论时间复杂度是多少?

更具体地说,我想知道:

  1. key = item。我认为O(log(R))是这样吗?
  2. key > item,即切片。C *是否将获取所有R行以判断是否满足条件,结果是O(R)?那有序行呢?
  3. key > 10 AND key < 12。C *是否会首先选择所有匹配项key > 10,然后使用进行过滤key < 12?还是C *将它们组合成一个条件进行查询?

complexity-theory big-o key time-complexity cassandra

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

为什么我们有两个版本的Java?

为什么我们有两个版本的Java?

  1. 来自Oracle的jdk和来自OpenJDK的jdk.
  2. 为什么OpenJDK仅适用于Linux?
  3. 在维基百科上,我发现Java是开源的.但是,我发现Oracles JDK中的版权信息说一切都受到限制???

java

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

LAN 上的点对点发现

所以,正如标题可能暗示我在我的 Java 项目中遇到了一些麻烦。我想做的是这样的:

  • 我有两台运行应用程序 X 的计算机
  • 还有另外三台计算机运行应用程序 Y

我需要做的是在 X 和 Y 之间建立连接。 例如,有人使用运行 X 的计算机,在发现过程后,他们将返回运行 Y 应用程序的计算机列表及其 IP,反之亦然。

我已经使用 UDP 广播完成了此操作,但有时会失败。电脑通过WiFi连接,所以基本上是通过路由器。在很多情况下,任何 X 计算机都可以通过我的 UDP 发现方法看到 Y 计算机,但有时不能,除非我手动指向 IP,有时甚至不会。

这是用于发现侦听特定端口的服务器的代码:

public static ArrayList<InetAddress> searchComputer() {
    ArrayList<InetAddress> targets = new ArrayList<InetAddress>();
    try {
        c = new DatagramSocket();
        c.setBroadcast(true);

        byte[] sendData = "DISCOVER_PC_SERVER_REQUEST".getBytes();
        try {
            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, InetAddress.getByName("255.255.255.255"), 2005);
            c.send(sendPacket);
        } catch (Exception e) {}
        Enumeration interfaces = NetworkInterface.getNetworkInterfaces();

        while (interfaces.hasMoreElements()) {
            NetworkInterface networkInterface = (NetworkInterface) interfaces.nextElement();

            if …
Run Code Online (Sandbox Code Playgroud)

java networking lan udp network-programming

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

在 makefile 中运行脚本

我想在像这样的 makefile 中运行脚本

    all: a b
    a:
        cd ~/trials; \
        . ./sx.sh
    b:
        echo $(bn)
Run Code Online (Sandbox Code Playgroud)

sx.sh 这样做

    export bn=1
Run Code Online (Sandbox Code Playgroud)

发出 make 命令时,我在终端中看不到该变量。我的目标是在针对这些脚本特定设置编译我的项目之前运行脚本。

shell scripting makefile

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