|
A good portion is hard to define
It should find "significantly" more equivalences than merely comparing whether two expressions are equal.
The class of expressions is not constrained in any way. I suppose I could first detect whether two expressions are both polynomials and then use a special comparison, but there are plenty of other types of expression so in order to find a "good portion" of equivalences I'd need something for them too.
|
|
|
|
|
Well, I suppose that you know that for polynomials of degree n, you need to check for equality at (n+1) points. If all are equal, the polynomials are the same.
Anyway, detecting polynomials is NOT easy. They can be computed in many ways, with for loops, while loops and other kinds of computations. It's not always visible by analyzing an expression that it is a polynomial.
Alex.
|
|
|
|
|
I could detect Some polynomials and match them that way I suppose.
That may be more effort than it's worth.. well I guess I'll try it and see how much it helps.
|
|
|
|
|
This is an excellent question - the bad news is, the answer is rather complicated. You would need to implement a unification algorithm[^] to do it correctly.
Things would not be as bad if you considered Prolog[^] as the language for your implementation, but something tells me that that would be out of the question
On the other hand, you can always embed Prolog to get unification for free.
But no matter how you look at it, the learning curve is going to be steep.
Good luck!
|
|
|
|
|
That page only seems to discuss logic formula's (unless I'm missing something?), does it also work for other formula's?
|
|
|
|
|
Absolutely. Formally, you can represent A+B as add(A,B), and define an additional rule that add(A,B) :== add(B,A). In fact, since you are interested only in a yes/no answer (as opposed to variable assignments produced by unification), you don't even need to implement a complete unification: a simpler recursive matching algorithm would do. The only challenge in its implementation is matching ((A+B)+C) trees to (A+(B+C)). You can deal with it by flattening the list of operands, and trying all possible orderings on one of the sides. Don't forget to memoize[^] your matches, both positive and negative. Otherwise, your search will be too slow.
|
|
|
|
|
java or C# , which better?
|
|
|
|
|
I would personally prefer C#.
|
|
|
|
|
As far as algorithms go, they are equal.
"You get that on the big jobs."
|
|
|
|
|
Actually, I wouldn't say that.
What is the algorithm for 64bit unsigned division in Java?
|
|
|
|
|
For a Java-programmer, Java is better. For a C# programmer, C# is better. Try to find where they differ, as that decides which of the two is best for the given circumstance.
I are Troll
|
|
|
|
|
COBOL
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
|
Even better - I once spent 6 months doing MUMPS. DOn't think I've recovered.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
Strange, I had Mumps when I was a boy and recovered after a couple of weeks.
I must get a clever new signature for 2011.
|
|
|
|
|
Look at the IDE which is available for the language. As both with Java and C# you can create nice programs, the IDE is important. And I prefer Visual Studio.
|
|
|
|
|
Neither: they are just different. Some problems may be solved easier in one language, but that does not make it better than the other. Every language has its fans, detractors and bigots. I would just use the language that you feel most comfortable with, whatever it may be.
I must get a clever new signature for 2011.
|
|
|
|
|
None of them, and both of them. A better question would be: which language is better for doing -whatever-?
|
|
|
|
|
C# is better, in my biased opinion. It started out as what looked like a Microsoft attempt to copy Java, but it's evolved into much more than that.
The later versions of C# have eliminated a lot of the bloat of previous languages, allowing succinct expression of programming ideas in code. This leads to greater clarity, which makes code more reliable and maintainable.
|
|
|
|
|
without context, without goals, this is a stupid question.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
After reading the book Pro C # and. Net 4
I discovered the enormous benefits offered by C # compared with Java
There are many differences: LINQ , WPF , WCF
Today, I like C#
|
|
|
|
|
yeah I agree... C# has alot more to offer than Java.
"Program testing can be used to show the presence of bugs, but never to show their absence."
<< please vote!! >>
|
|
|
|
|
Well I've googled it and came across a wiki page of the differences...
All and all the conclution that I could make out was that C# had most of the features that java had and much more.
"Program testing can be used to show the presence of bugs, but never to show their absence."
<< please vote!! >>
|
|
|
|
|
hello
i have a file with only entry of 0..9 (numbers only) without any other thing even space , what is the most efficient algorithm to compress it?
thanks in advance.
|
|
|
|
|
at the command level, use a ZIP utility, such as WinZip.
When programming an application, create a binary file. Assuming all digit values have same probability, you could:
- create a binary file with BinaryWriter class; it will be filled with ulong values;
- the first value to write would be the number of digits to be stored;
- then have a loop that reads 19 digits, turns them into a single ulong (use ulong.Parse or TryParse), and outputs that ulong in binary;
- when reaching the end of the input data, which probably did not have a length evenly divisible by 19, just imagine the few missing digits are all zero, and generate the last ulong as you did all the others.
That is it; you have turned N characters (probably bytes in an ASCII text file) into a sequence of N/19*8 bytes, giving a compression factor of 2.37
You could do better if something was known about the distribution of the digits; otherwise that is about the best you could get.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|