Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 5 years ago.
Improve this question
How do I get from premise ~~(AvB) to ~~(BvA).
Been working on it for a long time but I haven't found the solution yet. Appreciate the help!
Let <-> denote equivalence. We have,
~~(A v B) <-> A v B ; law of double negation
A v B <-> B v A ; because v is commutative
B v A <-> ~~(B v A) ; again, double negation
Thus
~~(A v B) <-> ~~(B v A)
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
Can Someone help me with the code for "finding if a no is armstrong no or not using prolog programming"?
I can't seem to find a solution anywhere.
Narcissistic numbers have different aliases such as Armstrong number, pluperfect digital invariant (PPDI) or plus perfect number.
numberToDigitsR(N,_,[]):-
N < 0, !.
numberToDigitsR(N,B,[N]):-
N < B, !.
numberToDigitsR(N,B,[Mod|R]):-
Mod is N mod B,
Div is N div B,
numberToDigitsR(Div,B,R).
powerList([],_,0).
powerList([H|T],E,Sum):-
powerList(T,E,TT),
Sum is (H**E)+TT.
narcissist(N,B):-
B>1,
numberToDigitsR(N,B,D),
length(D,E),
powerList(D,E,N).
tests:
?- narcissist(54748,10).
true.
?- narcissist(54748,9).
false.
?- narcissist(62,4).
true.
?- member(B,[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]), narcissist(54748,B).
B = 10 ;
false.
Thanks David for linking the wiki site.
The program first creates a list of the "digits" for a given number N and a given base B. Then it calculates the number of digits E and calculates the sum of each digit to the power of E. If the output equals the number N then this is a narcissistic number. If the base B is not known before, simply state the domain as shown in the last example.
Please note that this algorithm does not work for B=1.
Also note that the number N is given with decimal format. So if you look up numbers from this website, please convert the numbers to base 10 first.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
What does "In these situations the thread of the NFA's existence corresponding to those states simply dies" mean in my textbook?
Consider the nondeterministic finite automaton with states A, B, C, D, input alphabet {0}, and the transition function given by
canGoFrom(A, 0) = {B, C}
canGoFrom(B, 0) = {}
canGoFrom(C, 0) = {D}
canGoFrom(D, 0) = {}
That is, it looks somewhat like this:
A
/ \
B C
\
D
with all edges pointing downwards and having label 0. Suppose that D is the accepting state.
Suppose that you now want to check whether input string 00 is accepted by the automaton.
You start with a single thread, the reading head pointing to first 0, and in start state A. When you read the first zero, the NFA has two transitions it can make, and it must make all possible transitions at once, so the thread of NFA's existence splits into two threads: one is now in state B, the other is in state C.
Now the automaton has to consume the second zero. Because the second thread of existence canGoFrom(C, 0) = {D}, it happily transitions from C to the accepting state D, without splitting any further. However, the first thread of existence canGoFrom(B, 0) = {}, that is, it has nowhere to go. In this situation, the first thread of NFA's existence simply dies. It no longer contributes anything to the decision whether the input is accepted or not.
If all threads of existence die, then the input is not accepted.
Here, the second thread of existence reached the accepting state D, so the input is accepted.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
Prolog how to add numbers in a list in a loop?
I have the loop and I would need to add the numbers into a list and render it in the end.
Prolog is a logical language and not a imperative one. You may need to formulate the problem a bit differently. By formulating what you want and not how you want it.
This is a recursive version:
the list of numbers between A and B is empty if A >= B or else
the list of numbers between A ans B is A and the list of numbers between A+1 and B
This is a version with some of prologs features.
find all numbers X between A and B
These two versions can be transferred into prolog quite directly. There is no 'loop' because prolog is not about commands (do this! do that! put that value there! increase!) but about formulating the problem.
I don't know what you mean by rendering, but you can create a list of number easily via recursion, since prolog doesn't have loops:
range_list(M,M,[M]).
range_list(M,N,[M|R]) :-
M < N ,
M1 is M+1 ,
range_list(M1,N,R)
.
range_list(M,N,[M|R]) :-
M > N ,
M1 is M-1 ,
range_list(M1,N,R)
.
You could also use built-in predicates to get what you want:
range_list(From,To,Result) :-
findall(X,between(From,To,X),Result)
.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
I have an algorithm that has the following cost:
C(Alg) <= t * Z
I've found on the web an exercise that state the following :
if t>=x, I can say that C(Alg) <= x * Z <= t * Z
but it looks strange.. do you agree?
This is in general not true. Think about the case where $Z$ is negative, then this does not hold true:
$$\text{if} x \leq Z, \text{then} xZ \leq tZ$$
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 9 years ago.
Improve this question
Conditional proposition 1: If it is sunny, then I'll go.
Conditional proposition 2: I will go unless it is not sunny.
Let's decompose them as simple propositions.
A: It is sunny.
B: I will go.
Thus re-write the previous 2 conditional propositions:
1: If A, then B
2: B, unless not A
In my opinion, the truth table for each of them are:
1:
A--------B--------Proposition 1
T--------T-------------T
T--------F-------------F
F--------T-------------T
F--------F-------------T
2:
A--------B--------Proposition 2
T--------T-------------T
T--------F-------------F
F--------T-------------F <---- here is the difference.
F--------F-------------T
So I think these 2 statements are not equivalent, but the famous Discrete Mathematics and its Applications by Kenneth H. Rosen indicates that they are equivalent.
Could someone shed some light on this?
Another post is made here:
https://math.stackexchange.com/questions/129691/are-these-two-statements-equivalent
I think the issue is the word "unless." Unless is really describing when something is not true.
Conditional proposition 1: If it is sunny, then I'll go.
Conditional proposition 2: I will go unless it is not sunny. I.E. If it is not sunny, I will not go.
1: If A, then B
2: If Not B, then Not A
A ⇒ B is the same as ¬B ⇒ ¬A. I can't remember the exact name of the law, but it's easy to derive. Use the implication law to convert it to ¬A ∨ B and B ∨ ¬A and the commutative law will change B ∨ ¬A to ¬A ∨ B