Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #121199
| Path | csiph.com!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
| Newsgroups | comp.lang.c++ |
| Subject | Re: Is this program OOP? |
| Date | Thu, 12 Dec 2024 08:00:01 -0800 |
| Organization | A noiseless patient Spider |
| Lines | 136 |
| Message-ID | <86zfl0hoxq.fsf@linuxsc.com> (permalink) |
| References | <63cd41709a703e4ac6d76427d53fe06d7ee8b8b1.camel@gmail.com> <86plm0iwtj.fsf@linuxsc.com> <035b9e2186f9dc6467806e27a76d98525c104e54.camel@gmail.com> <86h67chxn8.fsf@linuxsc.com> <03fcd46b8d44390c78ca1719e2311b528570d276.camel@gmail.com> <vj9oql$114ip$1@dont-email.me> <fb4cdf9c1c99986b84c6f598858efe1a9473cd26.camel@gmail.com> |
| MIME-Version | 1.0 |
| Content-Type | text/plain; charset=us-ascii |
| Injection-Date | Thu, 12 Dec 2024 17:00:08 +0100 (CET) |
| Injection-Info | dont-email.me; posting-host="4d4e784de64121797bdb6fbf35a5252c"; logging-data="2291145"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18IJJiwkCmTauP+/3PEvI9BRtj1cc9c5qA=" |
| User-Agent | Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) |
| Cancel-Lock | sha1:J4kC+7+nQB203X9wXcDmeFmRFIM= sha1:QE27RpQbJZBYIcY2KZAGXIv1OBo= |
| Xref | csiph.com comp.lang.c++:121199 |
Show key headers only | View raw
wij <wyniijj5@gmail.com> writes:
> On Tue, 2024-12-10 at 17:04 +0100, David Brown wrote:
>
>> On 10/12/2024 10:23, wij wrote:
>>
>>> On Mon, 2024-12-09 at 22:15 -0800, Tim Rentsch wrote:
>>>
>>>> wij <wyniijj5@gmail.com> writes:
>>>>
>>>>> On Mon, 2024-12-09 at 09:35 -0800, Tim Rentsch wrote:
>>>>>
>>>>>> wij <wyniijj5@gmail.com> writes:
>>>>>>
>>>>>>> Because I said: C++ is the best language to model general
>>>>>>> problems. So it is.
>>>>>>>
>>>>>>> Almost all are logical propositions. Except those few
>>>>>>> keywords, such programwon't be recognized as a C++ program,
>>>>>>> instead of some kind of declarative language.
>>>>>>>
>>>>>>> Zebra puzzle is an interesting programing exercise because it
>>>>>>> is not too easy and also not too difficult.
>>>>>>>
>>>>>>> ------------
>>>>>>> /* Copyright is licensed by GNU LGPL, see file COPYING. by
>>>>>>> I.J.Wang 2023
>>>>>>>
>>>>>>> Example of solving the zebra puzzle by using propositional logic.
>>>>>>> Zebra Puzzle https://en.wikipedia.org/wiki/Zebra_Puzzle
>>>>>>>
>>>>>>> [...]
>>>>>>> */
>>>>>>> #include <Wy.stdio.h>
>>>>>>> #include <Sc/PropExpr.h>
>>>>>>>
>>>>>>> using namespace Wy;
>>>>>>> using namespace Sc;
>>>>>>>
>>>>>>> [...]
>>>>>>
>>>>>> You're asking a question that cannot be answered because much
>>>>>> or most of the program is in the two include files, which are
>>>>>> not shown.
>>>>>>
>>>>>> As a general rule, when posting code there should be enough
>>>>>> posted so that readers can at least compile it. In cases like
>>>>>> the program asked about here, what is posted should be enough
>>>>>> to both compile the program and run the generated executable.
>>>>>
>>>>> I thought nobody will be interested with the implement, and what
>>>>> is shown should be enough for the moment.
>>>>
>>>> The point is that what was posted is not enough to answer the
>>>> question of the Subject: line.
>>>>
>>>>> The Zebra Puzzle program has two version, a_puzzle_21.cpp (has
>>>>> shown) takes too long to complete. a_puzzle_2.cpp (736 lines,
>>>>> too long to post, I thought) is the realistic one written in way
>>>>> I feel just solving the prolem is enough.
>>>>
>>>> I wrote a program in prolog to solve this puzzle. The entire
>>>> program is 60 lines long, including 13 blank lines. It finds the
>>>> solution in 0.03 seconds. The program doesn't do anything fancy;
>>>> it pretty much just gives the listed conditions in the form of
>>>> prolog rules, plus 20 lines to establish the structure of the
>>>> information that is being sought.
>>>
>>> Very dubious, show us what you say is true.
>>
>> Prolog is a language that is ideally suited to such problems.
>> Basically, you give the language a bunch of objects and facts and
>> relations about those objects, then you ask it questions about
>> them. It's at least 35 years since I tried Prolog one afternoon,
>> and that's exactly the kind of task I played with (though a bit
>> smaller).
>
> I know a bit of prolog,lisp (in DOS era). Strongly suspicious what
> Tim says.
>
>> This is not a big problem in any language. It's 5 characteristics
>> for each of 5 houses - that's 3125 possibilities. Make a big array
>> of booleans, initialised to true. Run through the array and kill
>> any combination that is contrary to one of the facts. It might
>> have been a worthy benchmark in 1962 but it should not be
>> challenging to solve with modern machines. (Of course it can still
>> inspire interesting solutions and ways to express code in different
>> languages.)
>
> Not that simple, try it to know (your eye may fool you, just like
> with libwy).
>
> a_puzzle_2.cpp (736 lines) was a random try in normal C++
> programming style. I did not try to optimize it. It took 3m22s.
> a_puzzle_21.cpp has 178 lines, about 40 lines of comments, so
> 178-40=138 lines. So, I have reason to doubt 60 lines of prolog
> can do the job. And most importantly, the number of 0.03 seconds
> is too difficult to explain. Prolog is not really a declarative
> language, you need to provide 'algorithm' to 'compute' the answer.
> So, there is reason why 'prolog' program can run faster. But,
> unless there is some built-in mechanism in modernprolog to solve
> Zebra-puzzle-like problem, 60 lines of codes is dubious to me and
> even so, 0.03 seconds remains highly dubious.
I'm wondering what it is you are dubious about. Are you dubious
(a) that I know how to use the 'wc' program to see how many
lines there are in a file?
(b) that I know how to use awk, and pipe the results into wc,
to see how many blank lines there are in a file?
(c) that I am capable of writing a prolog program that can be
accepted and run by the swipl prolog interpreter?
(d) that I know how to run a prolog program contained in a file,
and look at the output it produces?
(e) that I am capable of checking the output against the problem
specification, to be sure the purported solution satisifies
the conditions of the problem?
(f) that I know how to use 'time' in a linux/unix shell, to see
how long it took to run a program?
(g) that I know how to interpret the output of 'time', and map
it onto a time as measured by a regular time-keeping device
such as a stopwatch?
Or is that you just think I'm a liar?
Incidentally I cleaned up the program a bit, and now it is only 50
lines long, including 13 blank lines. It doesn't run any faster
than it did before; still taking about 0.03 seconds of user time,
and about 0.04 seconds real time (that includes the time taken by a
short shell script wrapper to prettify the output).
Back to comp.lang.c++ | Previous | Next — Previous in thread | Find similar | Unroll thread
Is this program OOP? wij <wyniijj5@gmail.com> - 2024-12-09 20:08 +0800
Re: Is this program OOP? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-09 09:35 -0800
Re: Is this program OOP? wij <wyniijj5@gmail.com> - 2024-12-10 06:35 +0800
Re: Is this program OOP? Ross Finlayson <ross.a.finlayson@gmail.com> - 2024-12-09 17:26 -0800
Re: Is this program OOP? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-09 22:15 -0800
Re: Is this program OOP? wij <wyniijj5@gmail.com> - 2024-12-10 17:23 +0800
Re: Is this program OOP? David Brown <david.brown@hesbynett.no> - 2024-12-10 17:04 +0100
Re: Is this program OOP? Muttley@DastardlyHQ.org - 2024-12-10 16:35 +0000
Re: Is this program OOP? David Brown <david.brown@hesbynett.no> - 2024-12-11 08:59 +0100
Re: Is this program OOP? Muttley@DastardlyHQ.org - 2024-12-11 08:40 +0000
Re: Is this program OOP? Ross Finlayson <ross.a.finlayson@gmail.com> - 2024-12-11 09:41 -0800
Re: Is this program OOP? Muttley@DastardlyHQ.org - 2024-12-12 08:32 +0000
Re: Is this program OOP? Ross Finlayson <ross.a.finlayson@gmail.com> - 2024-12-12 10:43 -0800
Re: Is this program OOP? Ross Finlayson <ross.a.finlayson@gmail.com> - 2024-12-12 17:28 -0800
Re: Is this program OOP? Paavo Helde <eesnimi@osa.pri.ee> - 2024-12-12 09:59 +0200
Re: Is this program OOP? Muttley@DastardlyHQ.org - 2024-12-12 08:37 +0000
Re: Is this program OOP? wij <wyniijj5@gmail.com> - 2024-12-11 01:02 +0800
Re: Is this program OOP? David Brown <david.brown@hesbynett.no> - 2024-12-11 12:42 +0100
Re: Is this program OOP? wij <wyniijj5@gmail.com> - 2024-12-12 13:26 +0800
Re: Is this program OOP? David Brown <david.brown@hesbynett.no> - 2024-12-12 08:59 +0100
Re: Is this program OOP? wij <wyniijj5@gmail.com> - 2024-12-14 16:22 +0800
Re: Is this program OOP? David Brown <david.brown@hesbynett.no> - 2024-12-15 10:45 +0100
Re: Is this program OOP? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-12 08:00 -0800
csiph-web