小编use*_*608的帖子

没有if和else语句的Prolog

我目前正在尝试学习一些基本的序言.在我学习的过程中,我想远离if else语句来真正理解语言.我这样做有困难.我有一个看起来像这样的简单函数:

if a > b then 1
else if
   a == b then c
else
    -1;;
Run Code Online (Sandbox Code Playgroud)

这只是一个非常简单的逻辑,我想转换成prolog.

所以在这里我非常困惑.我想首先检查一个> b,如果是这样输出1.我只是这样做:

sample(A,B,C,O):-
   A > B, 1,
   A < B, -1,
   0.
Run Code Online (Sandbox Code Playgroud)

这就是我提出的.o作为输出,但我不明白如何使输出1.有什么想法可以帮我更好地理解这个吗?

在做了一些之后我想出了这个,但它似乎不正确:

Greaterthan(A,B,1.0).
Lessthan(A,B,-1.0).
Equal(A,B,C).

Sample(A,B,C,What):-
    Greaterthan(A,B,1.0),
    Lessthan(A,B,-1.0),
    Equal(A,B,C).
Run Code Online (Sandbox Code Playgroud)

我走向正确的轨道吗?

logic prolog

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

在prolog中将两个列表相乘

我目前正在与prolog合作,并希望以证书方式将两个列表相乘.例如:

[1,2,3] and [4,5,6] are my two lists.
Run Code Online (Sandbox Code Playgroud)

我想要执行以下操作:

(1*4)+(2*5)+(3*6) = 32
Run Code Online (Sandbox Code Playgroud)

这样每个列表的第一个元素相互相乘,然后加上第二个元素相乘等.

这有可能进入Prolog吗?

我知道在其他语言中你可以做一个递归函数,带有列表的头部和尾部(其余的条目).这允许简单的乘法,但我不认为这是可能的prolog?

list prolog

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

C中的Char*功能

我目前正在尝试使用随机字符串生成器来生成字符串.它看起来像这样:

char *randstring(int length) {

    static char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.-#'?!";        
    char *randomString = NULL;
    int n = 0;
    if (length) {
        randomString = malloc(sizeof(char) * (length +1));

        if (randomString) {            
            for (n = 0;n < length;n++) {            
                int key = rand() % (int)(sizeof(charset) -1);
                randomString[n] = charset[key];
            }

            randomString[length] = '\0';
        }
    }
    return randomString;
}
Run Code Online (Sandbox Code Playgroud)

我想这样称呼它:

srand(time(NULL));
int r = rand()%1000;
char *string[1000];
&string = randomstring(r);
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我收到以下错误:

error: invalid lvalue in assignment. 
Run Code Online (Sandbox Code Playgroud)

我看过网上但我无法弄清楚为什么这不起作用.有什么建议?我假设它与指针有关.

c

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

Echo json_encode无法处理某些实例

我目前正在使用php回应我的网页的json响应,并在某些情况下遇到问题.我无法弄清楚是什么导致了这一点.我使用的sql语句如下所示:

"SELECT * 
        FROM table
        WHERE id = $id
        LIMIT 20 OFFSET $offset"
Run Code Online (Sandbox Code Playgroud)

唯一改变的是$offset用户切换页面的时间.我有8页数据,第7页和第8页都没有返回数据,而其他所有数据都没有.当我将此sql语句复制到我的数据库中进行测试时,它会正确检索数据.

这里我是如何回应json的:

while ($row = mysqli_fetch_array($fetch, MYSQLI_ASSOC)) {
    $row_array['id'] = $row['id'];
    $row_array['title'] = $row['title'];
    $row_array['description'] = $row['description'];
    array_push($return_arr,$row_array); 
    //echo json_encode($return_arr);  <-- this returns JSON
}

echo json_encode($return_arr);
Run Code Online (Sandbox Code Playgroud)

在除第7页和第8页之外的所有页面上,它返回正确的JSON,但由于某种原因,在这两个页面上,echo不执行任何操作.如果我将json放在我注释掉的循环中,它将为第7页和第8页返回正确的json,这是奇怪的.我在验证器中检查了json,它是有效的json.有没有办法检查错误或调试此错误?

php json

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

7使用VHDL显示段

我目前正在使用vhdl并且遇到7段显示问题.我在网上找到了这个代码,但我很难理解它的确切含义.有些人可以通过以下代码帮助我了解正在发生的事情:

ARCHITECTURE Structure OF multi IS
 SIGNAL C : STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
 LEDR <= SW;
 C(2 DOWNTO 0) <= SW(2 DOWNTO 0);

 HEX0(0) <= NOT( (NOT(C(2)) AND NOT(C(1)) AND C(0)) OR 
 (NOT(C(2)) AND C(1) AND C(0)) ); 
 HEX0(1) <= NOT( (NOT(C(2)) AND NOT(C(1)) AND NOT(C(0))) OR
 (NOT(C(2)) AND C(1) AND C(0)) ); 
 HEX0(2) <= NOT( (NOT(C(2)) AND NOT(C(1)) AND NOT(C(0))) OR 
 (NOT(C(2)) AND C(1) AND C(0)) ); 
 HEX0(3) <= NOT( (NOT(C(2)) AND NOT(C(1)) AND C(0)) OR 
 (NOT(C(2)) AND C(1) …
Run Code Online (Sandbox Code Playgroud)

logic vhdl

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

发送电子邮件到Perl给地址中有撇号的人

我目前正在尝试将Perl中的电子邮件写入其中包含撇号并且无法弄清楚如何发送它的用户.这是该行的样子:

$to = "o'connell\@website.com";
Run Code Online (Sandbox Code Playgroud)

这是我用来发送电子邮件的行:

system("echo $message | mailx -s $subject $to ");
Run Code Online (Sandbox Code Playgroud)

这是一个电子邮件的示例o'connell@website.com.由于撇号,它不会发送它.我尝试过以下内容并没有奏效.我mailx用来发送电子邮件

$to = "o'connell\@website.com";
$to = "o''connell\@website.com";
$to = "o"'"connell\@website.com";
Run Code Online (Sandbox Code Playgroud)

这些都没有奏效.我可以发送电子邮件给那些在他们的电子邮件中没有它的人.有什么建议?

email shell perl

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

在表中使用.closest来隐藏行

我目前正在开发一个表,可以扩展单击行的详细信息.单击一行后,我希望隐藏<tr>在其下方显示.我得到了正确的工作,但当我再次尝试隐藏它时,下面会出现一个我不想发生的白框.这是我的例子的小提琴:https://jsfiddle.net/pt0skyyb/

HTML:

<table class="table">
    <tr>
        <th>Details</th>
        <th>First</th>
        <th>Second</th>
    </tr>
    <tr>
        <td>+</td>
        <td>First</td>
        <td>Second</td>
    </tr>
    <tr class="child">
        <td colspan="3">
            <table class="child-table">
                <tbody>
                    <tr>
                        <th>First</th>
                        <th>Second</th>
                        <th>Third</th>
                    </tr>
                    <tr>
                        <td>1</td>
                        <td>2</td>
                        <td>3</td>
                    </tr>
                </tbody>
            </table>
        </td>
    </tr>

    <tr>
        <td>+</td>
        <td>Third</td>
        <td>Fourth</td>
    </tr>
    <tr class="child">
        <td colspan="3">
            <table class="child-table">
                <tbody>
                    <tr>
                        <th>First</th>
                        <th>Second</th>
                        <th>Third</th>
                    </tr>
                    <tr>
                        <td>1</td>
                        <td>2</td>
                        <td>3</td>
                    </tr>
                </tbody>
            </table>
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

JS:

$(function() {
    $("td[colspan=3]").find("table").hide();

    $("table").click(function(event) {
        event.stopPropagation();
        var $target = $(event.target);
        var $child …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

在构造函数中输入数组 - Perl

我目前正在Perl中创建一个如下所示的类:

sub new{
   $class = shift;
   $self = {
     #Member Variables
     server => shift,
     type => shift,
     domains => shift
   };
   bless $self, $class;
   return $self;
}
Run Code Online (Sandbox Code Playgroud)

我希望域是一个包含多个变量的数组.使用shift时,如何区分数组和正常变量?我试图像这样输入数组:

 my $var = new class("server",1,(1,2,3));
 my $var = new class("server",1,[1,2,3]);
Run Code Online (Sandbox Code Playgroud)

当尝试迭代数组时,这些都不起作用:

 for $i ($self->{domains}){
     print "$i\n";
 }
Run Code Online (Sandbox Code Playgroud)

arrays perl constructor

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

硬币找零递归方法

我正在尝试使用递归方法来解决硬币找零问题。问题是这样的:

系统会为您提供不同面额的硬币和总金额。编写一个函数来计算组成该数量的组合的数量。

系统会为您提供一定数量的硬币。

这是我到目前为止的内容:

private static int[] coins = {1,2,5};

public static void main(String[] args) {
    System.out.println(count(13));
}

public static int count(int n)
{
    // If n is 0 then there is 1 solution
    if (n == 0)
        return 1;

    // If n is less than 0 then no solution exists
    if (n < 0)
        return 0;

    return count(n - coins[0]) + count(n - coins[1]) + count(n - coins[2]);
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我什么也无法找到正确的组合。我认为问题在于退货,但我不知道为什么。在这里,我从金额中减去硬币,然后每次将它们加在一起。当它为0时,返回1。

java recursion

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

标签 统计

logic ×2

perl ×2

prolog ×2

arrays ×1

c ×1

constructor ×1

email ×1

html ×1

java ×1

javascript ×1

jquery ×1

json ×1

list ×1

php ×1

recursion ×1

shell ×1

vhdl ×1