Heroes of Might and Magic Community
visiting hero! Register | Today's Posts | Games | Search! | FAQ/Rules | AvatarList | MemberList | Profile

<a href="http://www.game-advertising-online.com/" target=_blank>Game Advertising Online</a><br> banner requires iframes

LOGIN:     Username:     Password:         [ Register ]
HOMM1: info forum | HOMM2: info forum | HOMM3: info forum | HOMM4: info forum | HOMM5: info forum | MMH6: wiki forum | MMH7: wiki forum
Heroes Community > Library of Enlightenment > Thread: On the internals of offered skills when leveling-up a hero.
Thread: On the internals of offered skills when leveling-up a hero. [ This thread is 16 pages long: 1 2 3 (4) 5 6 7 8 9 10 11 12 13 14 15 16 ]
LegendMaker
LegendMaker


Promising
Famous Hero
The Metal Specialist
posted June 30, 2006 09:06 AM
Edited by LegendMaker at 09:08, 30 Jun 2006.

Some Thoughts

1) Dear Fellow Testers

I lack the time and energy to run any tests these days. Must admit I used the "Other" button on Today's Posts page more often than not lately ; mainly because reading threads like this one typically brings back my "I wanna KNOW" obsession. And it's frustrating when I know i can't afford to follow it right now.

That said, I'm glad you guys are still searching. I hope you'll find eventually. If you still haven't when / if I can get back to testings, I'll join in.

2) I've Had A Dream...

Some of you have mentionned my unfinished projects (that can be found in the Heroes Stats and Skills Chances thread as Bin said). There's still much work ahead to get satisfying results with that method. But I'm still SURE there'll be something coming that way eventually. The temporary results I've found back then are really encouraging.
Quote:
I think Legend's "automated tests" only consist of letting the computer do the choosing. I.e. letting the computer do the level-up, reloading the game as a hot-seat game where you take control of all sides and then looking at how the computer chose.

This was not was I was thinking of. I was wondering if there is any way to automate the process to save time and be able to do large samples.
Yes, at some point I was using the method Eco described above. But it's NOT the end of it. My goal was / is to fully determinate the AIP (AI Player)'s preferences. These are DOUBTLESS a constant. I mean : when the AIP levels up, there is absolutely NOTHING random in the choice it makes. There's a fixed hierarchy of skills to pick for the AIP. So, once this hierarchy will be fully known, my plan was / is to exploit that to do LOADS of super fast testings thanks to that knowledge.

By this I mean loading the save on hotseat mode once the AIP has FULLY leveled up, and check which skills it has and in which order to determine which skill tree it encountered. For instance, if it doesn't have the skill that is the number one priority in its hierarchy, you can be 100% SURE it wasn't offered that skill. And so on.

I've identified a rough draft of this hierarchy. Need many more tests to be certain of the whole of it. One hint : Offense has rank number 9, meaning there are only 8 skills that the AIP will take over Offense. Another hint : the same hierarchy is used by the AIP whatever the skill levels are. It will dismiss any new skill that has a lower ranking than Offense if it's offered the opportunity to upgrade Offense instead.

The only drawback I've encountered so far (ie before I put the project on hold as explained above) was Necromancy skill. It's a tricky one when it comes to ranking, since normally the only hero class likely to get it offered already has it. I've tested it with Empty Heroes (all slots empty at level 1) and I got mixed results. This forced me to the admittance of the possibility that AIP skills hierarchy MIGHT be SLIGHTLY different depending on the Hero Class (or at least for both Necro classes).

Keep up the great work, fellows
____________
LM

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Ecoris
Ecoris


Promising
Supreme Hero
posted June 30, 2006 09:42 AM

I'm wondering how much information you could retrieve this way even if you knew the exact AI skill hierarchy in all details.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
LegendMaker
LegendMaker


Promising
Famous Hero
The Metal Specialist
posted June 30, 2006 01:45 PM
Edited by LegendMaker at 14:14, 30 Jun 2006.

Basically, it would imply a different skill selection policy, based on AIP's preferences. What matters the most for regular testings (ie without programming) is to have a constant policy to ensure the results accuracy, and to develop the fastest possible method, imho. With this method, each test would take a few seconds only (as opposed to the many tests manually done in the past, that took at the very least a minute or two each). So, piling up loads of results pretty fast wouldn't be a problem.

My hope / bet is that the thorough observation of these results would lead to the identification of many loops and patterns (using some automated script based on the AIP preferences if need be, though I would need a helping hand for that, since I can't write programs to save my life).

You can summarize it this way : regular testings, only with a distinctive policy (as opposed to ANSA, preferred skill etc) and where the actual tester isn't a person but the AIP. Maybe it won't replace the mathematic theories of Dimis, but it could at least help a great deal verifying them.

You can read more about this on this page.
____________
LM

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
dimis
dimis


Responsible
Supreme Hero
Digitally signed by FoG
posted June 30, 2006 03:36 PM
Edited by angelito at 12:48, 11 Nov 2009.

Lots of ideas, but little testing so far ...

I think we have lots of ideas gathered so far, which makes it very interesting. On the other hand, it would be nice if we also had some actual data to try backup/refute some of them. I 've read all of the ideas up to now, but some of them not in great detail, since I want some actual testing.

Striving in that direction, I started testing a specific hero we all love on ANSA policy so that we get actual data from the game itself. The results that I have observed so far are really interesting to my opinion. Once more they seem (from a first glance at least!) to backup Xarfax's "stripe-theory", which I must admit the first time I heard of, I laughed... Anyway, I think we are going to have lots and very interesting comments that will lead us to the right direction (yes, I am still optimistic).

Unfortunatelly, all my data are in tables right now (you'll get the idea soon) and for that reason it will take me a day or two to write them down clearly and analyze them as much as we can.

On all my tests up to now, I quit the game and restart from scratch. I always pick gold for me and my opponent on a custom-made map for that purpose. All tests are done on 130% (Rook) difficulty. Hero: Crag-Hack, starting from level 1 with his default parameters (primary skills and Adv. Offense).

Here is a page you can use while testing. Do NOT simply tick the offered skills. Write also the number in which they appear!
Here is the corresponding source for the above page.

Till tomorrow,
have fun and be surprized with what you get (in case you can't wait for my results a day or two...)!
____________
The empty set

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Binabik
Binabik


Responsible
Legendary Hero
posted June 30, 2006 04:20 PM

I haven't done any recent testing either. All the tests I've been talking about were a couple months ago. I was doing LOTS of testing for a while, both before and after the Not in Manual thread. So I got pretty burned out. I think the only testing I would be doing in the near future would be fairly small tests looking at specific things.

Legend, I'm open minded about your method and still need to think it through more, but I'm skeptical about it. The AI already has set priorities with the skills table. Are you saying it has it's own priorities beyond that? In other words, the skill table is used to determine which skills are offered, then the AI has another set of priorities to pick which skill it takes?

How do you discover what the AI priorities are without knowing what the second choice was?

One thing about skills testing, is that the most time consuming part is recording the data. When testing manually, using a method like always upgrade, or always new skill, basically just means always click left or always click right. If you're not documenting, you don't even have to look. For a single hero, this goes pretty quickly. It's writing it all down that takes the time. Even if letting the AI level up automatically is a valid method, it doesn't help with the most time consuming part.

One reason why I've been talking about the (symbolic??) sequence and a rules based method of creating the sequence, is because discovering the rules doesn't require massive statistical testing. It still requires testing, but probably not nearly as much. Another major advantage to rules based is that it MIGHT actually be something usable in gameplay.

A question for the programmers. Does the following seem reasonable from the programming point of view? We've been assuming all along that the skill trees are generated using the random generator. By that I mean skills are randomly chosen one at a time based on the odds chart. What if the random generator isn't even used for creating a sequence? What if it's strictly rules based using some kind of density mapping algorithm? I've thought about it and I don't see any way around using some type of random factor. But the random factor doesn't have to be for actually creating the sequence. Or maybe only for a starting point in the algorithm rather than used for individual skill selection. Is that reasonable from the programmers point of view?

Logically, density mapping seems reasonable to me. Either density mapping of individual skills, or skill groups. I'm sure I've leveled up in games tens of thousands of times. Has anyone ever seen a skill tree that was really bad? I've seen some that SEEMED pretty bad at the time, but that's because I want all the good ones. I don't remember ever seeing one where every skill was bad. I don't even think I've seen one where all the skills were either medium or bad. A REALLY bad skill set means I have maybe 1-2 good skills, 4-5 medium skills and 1-2 bad skills.....and that would be rare.

Has anyone ever seen a skill set where you don't get ANY good skills? I don't think I've ever seen that. If the skill set was really random based on the odds table, we WOULD see bad skill sets, but don't. My conclusion is that it is NOT random selection of skills using the odds chart.

The alternatives I see are either rules based density mapping, or using skill groups where a certain number of skills from each group are offered....or a combination of both.

Does this make sense to anyone else, or am I blinded because I'm too focused on one thing? I see that happen all the time in engineering. You get so focused on one thing that you miss the obvious. Anyway, the question is, should we be putting our efforts into massive statistical testing, or into smaller statistical tests to find some type of rules based skill selection?

____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
LegendMaker
LegendMaker


Promising
Famous Hero
The Metal Specialist
posted June 30, 2006 06:37 PM
Edited by LegendMaker at 09:51, 01 Jul 2006.

Quote:
Legend, I'm open minded about your method and still need to think it through more, but I'm skeptical about it. The AI already has set priorities with the skills table. Are you saying it has it's own priorities beyond that? In other words, the skill table is used to determine which skills are offered, then the AI has another set of priorities to pick which skill it takes?
Most  definitely, YES The two things are completely separated. The AIP (AI PLAYER) has its own, fixed POLICY in the form of precise, constant rankings. Given the same choice in an infinite number of different situations, the AIP WILL pick the SAME skill 100% of the time. I'm absolutely positive on that fact. So it IS an actual and constant POLICY, that has the particular advantage that we have an automated virtual tester ready to follow it for us.
Quote:
How do you discover what the AI priorities are without knowing what the second choice was?
OFF COURSE I KNOW it ! You must not confuse the two stages of my project : final stage (once the hierarchy will be fully known for sure) will be ultra quick and handy ; but the initial stage (trying to find out the exact hierarchy of the AIPP (AI PLAYER POLICY)) takes many manual and boring testings ! Which I have done only a small part yet (two mere hundred tests).

My method for the first stage :

I use a map I crafted especially for this purpose, with 3 players, one of which is my AIPP test-soldier. This one is deliberately isolated on a narrow corner with one pile of ressources near him as "bait" (he wouldn't move at all otherwise, for some reason) and an event placed so that it HAS to walk on it to get his candy. Of course I'm red to prevent my test-soldier to move before I can save.

I start the game in solo mode. I save as for instance TEST A. I then press end turn, and I save as TEST B. Back to main menu.

I load TEST B in hotseat mode. This is where the third player comes in handy, since I can launch the save as is this way. When I'm playing the test_soldier's turn, I write down what skill it picked.

I load TEST A in hotseat mode. At the test-soldier's turn, I walk on the event and note which other skill was offered.

I end up with tables like this :



Then I slowly draw conclusions. This far, I only determined for sure Offense's rank as 9. I know which 8 skills have a higher rank, and which ones have a lower rank. I also gathered bits and pieces, but it's far from finished.
_________________________________________

BAD SKILL SETS Yes, Sir

Also talking from my gaming experience over the years, I can tell you this. By level 3, I usually know wether I'm in a ****y skill tree, an almost perfect one, or somewhere between the two.

I leveled up Galthran alone thousands of times, for instance. When I get say, Offense > Logistics > Earth on the 3 first levels up, 99% of the time I'll manage to get the PERFECT set of skills in that particular game. On the other hand, once in awhile the 3 firsts skills offered will be say, Scholar > Eagle Eye > Estates. SERIOUSLY, it happens. And when it does, 99% of the time, I'll be lucky if get a few DECENT skills in that particular game.

One thing I observed countless times as well is picking one lousy skill tends to attract further lousy skills.

My many testings based on Jeddite also kinda evidenced the fact that magic heroes typically are cursed with LOUSY skill trees (at least Warlocks, but warlocks being one of the less useless magic classes, it seems this shortcut makes sense).

As an example, feel free to consider the particular Skill Tree I tediously evidenced in my Jeddite Sucks / Legendary Genealogy Hangover post (this is the COMPLETE list of Skills that were POSSIBLE to get up to Level 6) :


____________
LM

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Binabik
Binabik


Responsible
Legendary Hero
posted July 01, 2006 07:30 PM

I'm not ignoring you Legend, just have stuff to do.

BTW, I can level up 64 heroes manually in 17 minutes. The AI did 56 heroes in 7-8 seconds.
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
LegendMaker
LegendMaker


Promising
Famous Hero
The Metal Specialist
posted July 01, 2006 08:04 PM
Edited by LegendMaker at 10:44, 02 Jul 2006.

Quote:
BTW, I can level up 64 heroes manually in 17 minutes. The AI did 56 heroes in 7-8 seconds.
Glad to see you're beginning to see my point.
____________
LM

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
dimis
dimis


Responsible
Supreme Hero
Digitally signed by FoG
posted July 02, 2006 01:55 PM

Legend I am not ignoring you as well. I just had some severe Input/Output problems with my pc (don't know if I am ok yet ... ), which has resulted in delaying my work. Just hold on a bit. We'll talk soon.
____________
The empty set

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
LegendMaker
LegendMaker


Promising
Famous Hero
The Metal Specialist
posted July 02, 2006 02:39 PM

Quote:
Just hold on a bit. We'll talk soon.
Sure, no prob !
____________
LM

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Binabik
Binabik


Responsible
Legendary Hero
posted July 03, 2006 05:25 AM

Careful Legend, it sounds like you're implying we actually agree on something.

Quote:
On the other hand, once in awhile the 3 firsts skills offered will be say, Scholar > Eagle Eye > Estates. SERIOUSLY, it happens. And when it does, 99% of the time, I'll be lucky if get a few DECENT skills in that particular game.
Have I just been incredibly lucky in my skill offerings? I would call getting three bad skills in a row uncommon. But to get an entire tree of **** skills and medium skills....I don't don't remember ever seeing that. As I said, even with the worst skill trees, I will always get at least 1-2 of the top skills.

I have a couple small tests running. Don't know how much it's going to tell us though.

BTW, I've done some minor research and I think it MIGHT be possible to use ERM scripting from WOG to output test data to a file. It has a log function that can be output. But it sounds like it might only be usable at startup....it's a little confusing about that part. IF it's possible, that would be a MAJOR help running all kinds of tests. Trouble is, I'm far from being able to use ERM. We'd also have to check to see if the WOG hard coding changes the skill selection process, but I don't think it does.

Another thing you CAN do with ERM is prevent skills from appearing, but I don't know if you can change the priority. Besides there's easier ways to do both of those, but we're not supposed to talk about that in public. But we could use ERM scripts as a code word for "the other thing".
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
dimis
dimis


Responsible
Supreme Hero
Digitally signed by FoG
posted July 07, 2006 07:06 AM bonus applied.
Edited by angelito at 12:48, 11 Nov 2009.

Crag-Hack on ANSA

Here




Edit by angelito
I have to raise my "imaginary" hat dimis. What an awesome work u made here. Red star well earned
____________
The empty set

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Xarfax111
Xarfax111


Bad-mannered
Supreme Hero
The last hero standing
posted July 07, 2006 08:08 AM

[quoteEdit by angelito
I have to raise my "imaginary" hat dimis. What an awesome work u made here. Red star well earned


Yes perfect work!
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
tigris
tigris


Supreme Hero
Supreme Noobolator
posted July 07, 2006 09:43 AM

not sure i got it all right, but indeed very nice work Dimis....H3 testing lives on
____________

 Send Instant Message | Send E-Mail | View Profile | PP | Quote Reply | Link
LegendMaker
LegendMaker


Promising
Famous Hero
The Metal Specialist
posted July 07, 2006 11:55 AM

Impressive, Dim !
____________
LM

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Binabik
Binabik


Responsible
Legendary Hero
posted July 07, 2006 04:01 PM

Good job Dimis. Haven't read the whole thing yet though, but I'll get to it.
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
dimis
dimis


Responsible
Supreme Hero
Digitally signed by FoG
posted July 07, 2006 09:14 PM
Edited by dimis at 21:36, 07 Jul 2006.

Revision - Part 1.

@ Ecoris:
Quote:
The mentioned loop-structure reminds me of recursively defined integer sequences with an upper limit. Such sequences can be represented as finite graphs with a very restricted structure (but I can write a lot more about such graphs if they become important).

I think it would benefit us all if you could give a brief description on these along with a (some?) simple example(s), at least for starters.


@ Binabik:
Quote:
A question for the programmers. Does the following seem reasonable from the programming point of view? We've been assuming all along that the skill trees are generated using the random generator. By that I mean skills are randomly chosen one at a time based on the odds chart. What if the random generator isn't even used for creating a sequence? What if it's strictly rules based using some kind of density mapping algorithm? I've thought about it and I don't see any way around using some type of random factor. But the random factor doesn't have to be for actually creating the sequence. Or maybe only for a starting point in the algorithm rather than used for individual skill selection. Is that reasonable from the programmers point of view?
To be honest I don't like any idea that does not use a random generator (apart from exceptions) while someone is playing the game. Yet there are irrefutable evidences that pre-built sequences do exist one way or another, since we encounter them in practice. Now, I don't understand what you really want to say when you are wondering whether or not a random generator is not even used when creating a sequence. If you mean that the generator is not used in the meantime from pressing the start button and actually the map is presented to you, I believe that it is not so likely. The reason is that programmers tend not to re-invent the wheel; meaning that they tend to use stuff (other programs) that make their lives easier. This also speeds-up the process of generating modules that were asked. Back on topic, the game itself has to decide somehow what pre-made sequence will offer to your hero. So, if you are asking if it is reasonable not to use the random generator so that a sequence is generated in the above mentioned time-interval, then, with all the indications that exist so far, I think it is very reasonable. But as you have guessed, in order to present you one sequence as you play (assume there is only one big sequence for each hero-class) it has to make a decision on where to start at the beginning of the game. So, how is it supposed to take that decision? I think there are only 2-3 ways.
First one: Use a system call on random generator and ask for an appropriate number. Somehow manipulate that number to decide where to start.
Second one: Use a system call to get current_time and use this as a seed for a program that 'mimics' the work of the random generator; or in other words, write a random generator on your own and avoid system calls on 'default' random generator. But this is against the 'do not re-invent the wheel' principle...
Third one: A mixture of the above.
My intuition guides me on the first option.

Regarding the density mapping algorithm, I don't know if I understand correctly what you are trying to say. If your are asking if it is possible to generate skill-sequences without the use of a prebuilt random generator, the answer is yes, BUT you have to mimic the generator if you want to create good sequences. In other words, you have to create another generator. But this is again against the 'do not re-invent the wheel' principle. However, I don't think that the heart of the problem lies here. Random Generators simply return a number when they are asked. It is just a matter of how you are going to handle the number so that you make up what you want.

Quote:
Anyway, the question is, should we be putting our efforts into massive statistical testing, or into smaller statistical tests to find some type of rules based skill selection?

Favoring the latter for starters. For that reason I am thinking of making a platform so that we generate easier a database through actual level-ups, since most of the testing-time is consumed on hand-writing and later typing ... I would appreciate your ideas on what to store on various records, so that we don't have to re-design the base as we proceed on various tests.
____________
The empty set

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
dimis
dimis


Responsible
Supreme Hero
Digitally signed by FoG
posted July 07, 2006 09:16 PM
Edited by dimis at 21:34, 07 Jul 2006.

Revision - Part Legendary

@ LegendMaker
First of all I like all your ideas on testing and i think it will be very interesting to know the exact ordering of skill preferences for the AI, which you have solved in theory and only needs mere testing (and indications that indeed AIP's policy is deterministic).
The problem starts later on. Suppose we know that ordering. The only problem I think we can solve is the probability to face an AIP hero with a specific set of skills in a game. Of course this is an interesting problem, but is it really interesting in your gaming?
One more drawback I find in this process is that although your AIP testers level-up fast, at many points of the leveling-up-process we have to face many skills as candidates being rejected on that leveling up. Now, the boomerang starts spinning backwards, since this will have an impact on our testing amount because the level of uncertainty has increased a lot! Many assumptions, means many repetitions so that you narrow uncertainty levels. And this might imply in the end spending more time on testing than would actually be necessary to reach the same conclusions.
I don't know if I am missing something in your thoughts, but the above were holding me down on AIP's testing. All in all, I believe more in thinking and trying to verify / refute with little testing, rather than trying to explain something with "brute force" which might be pretty accurate for the whole picture, yet still lacking on the details.

I would find it a great revolution though if we could somehow relate results based on AIP's policy (since this is what is going to be computed) with other deterministic policies - even with the simplest form so that the user is required to order the skills in his preference. Unfortunately, I have no idea so far in this direction.


Hope I Legendary cover you!
- dimis -
____________
The empty set

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
LegendMaker
LegendMaker


Promising
Famous Hero
The Metal Specialist
posted July 09, 2006 08:18 PM
Edited by LegendMaker at 20:22, 09 Jul 2006.

AIPP power ! (__^)

Quote:
@ LegendMaker
First of all I like all your ideas on testing and i think it will be very interesting to know the exact ordering of skill preferences for the AI, which you have solved in theory and only needs mere testing (and indications that indeed AIP's policy is deterministic).
Thanx for taking my work seriously, Dim ! Sooner or later, I'll get back to this project for sure. I WANT to KNOW ! hehe (pretty much the definition of a tester lol).
Quote:
The problem starts later on. Suppose we know that ordering. The only problem I think we can solve is the probability to face an AIP hero with a specific set of skills in a game. Of course this is an interesting problem, but is it really interesting in your gaming?
For online players, not at all. For them "single players" (aka compspankers), it'll surely make their "exploits" even easier to achieve. Imagine Tactics has a very low rank in AIPP. Then the noobs will know it's very likely they'll have an edge if they pick Tactics. And so on. That said, it's definitely not my goal to make it even easier to spank the comp ! LMAO
Quote:

I don't know if I am missing something in your thoughts, but the above were holding me down on AIP's testing.
Thing is, observing a large amount of results based on the same, constant policy is likely to evidence global tendencies or perhaps even patterns (skill groups etc). Even if we can't manage to identify the whole of the Skill Tree for each test, I think it'll be possible to draw many potentially useful conclusions from the thorough observation of the global results.
Quote:
All in all, I believe more in thinking and trying to verify / refute with little testing, rather than trying to explain something with "brute force" which might be pretty accurate for the whole picture, yet still lacking on the details.
It's meant like that. I believe in using several methods to cross the results and conclusions. It'd be possible for instance to use AIPP testings to verify or refute specific hypothesis drawn from your ANSA theories. Or wouldn't it ?
Quote:
I would find it a great revolution though if we could somehow relate results based on AIP's policy (since this is what is going to be computed) with other deterministic policies - even with the simplest form so that the user is required to order the skills in his preference. Unfortunately, I have no idea so far in this direction.
Well, I have a few already. And I'm pretty confident more and more precise applications will appear as the AIPP becomes available.
Quote:
Hope I Legendary cover you!
- dimis -
You sure did, dude ! Thx for that
____________
LM

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
dimis
dimis


Responsible
Supreme Hero
Digitally signed by FoG
posted July 10, 2006 07:35 PM
Edited by angelito at 12:50, 11 Nov 2009.

Setting up a mini lab

I think that a reference on some generic tools is missing in this thread.

Compiler(s)
All programs in this thread are up to now written in C or C++. In order to compile the various programs, you can download for free any of the compilers found here.
I 'll come back here with recommendations or basic usage info on a later edit of this post. However, if I had to recommend one of them I would say go for Microsoft Visual C++ 2005 Express, since my memories from MS Visual Studio 6 are by far the best I ever had with an IDE like this. Other smaller in size choices that I 've tested so far from this list are DJGPP and LCC (this one I think for C only). Of course MinGW is an all time classic while Borland's compiler should not be left out from the recommendations. It's your choice.


Plotting
Sometimes, numbers seem not to tell the whole truth and in fact plotting them provides more info or just helps intuition. Anyway, a good free plotting tool is GNUPlot. WinXP users should download and decompress gp400win32.zip found here.
The homepage of GNUPlot is here.
A brief tutorial can be found here (or for a very quick intro read below).


Normal Distribution
This is a simple script (source code) in C that generates the (discrete) distribution of an event that has probability to occur p after N tries. In order to get the expected results one should give at command line:
Quote:
> bell p N

where p the desired probability (for instance, for a fair coin p = 0.5) and N the desired number of tries (e.g. if you want to throw a coin 100 times, then N = 100).
After the above execution 2 text files are generated on the same directory:
* distribution.txt which creates the distribution for the required test,
* deviate.txt which contains in each line the probability a test of N-tries has so that it deviates at least J from mean (expected) of the above distribution.
Example:
Suppose we have a fair coin that with probability 0.5 results to "Heads" on each toss and we want to see what we should expect after 47  throws. Then, we simply give on command line:
Quote:
> bell 0.5 47
As a result on command line you view:
Quote:
Actual Mean : 23.500000000
Integer Mean: 23
Now, copy-paste (for simplicity) files 'distribution.txt' and 'deviation.txt' on the directory where you put GNUPlot. Start gnuplot and type the following:
Quote:
gnuplot> set grid
(this is for finer output). And now give:
Quote:
gnuplot> plot 'distribution.txt' w boxes
or
Quote:
gnuplot> plot 'deviation.txt' w boxes

The last command should give you an image like the following:

where you can see that the probability someone makes an experiment of 47 tosses of a fair coin (p = 0.5) and observe at least 23 + 4 = 27 times (or at most 23 - 4 = 19) "Heads " is about 0.31 (31%). For finer results, you can always consult directly the text files.
I've not uploaded an executable yet. Perhaps you want to try to compile it yourself with one of the above-mentioned compilers.


Investigating Files
In order to check the various files that appear in our Heroes folders we need something better than the plain type command provided in DOS shell. For that purpose we need a hex editor of some kind. I've not checked the following up to now mainly because I am about to format my pc , therefore I don't have a specific recommendation; yet I found some pretty interesting editors for Win on web:
Hexplorer
HxD
XVI32
Also, in introduction to hex editing can be found here.
____________
The empty set

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
[ This thread is 16 pages long: 1 2 3 (4) 5 6 7 8 9 10 11 12 13 14 15 16 ] < Prev Thread . . . Next Thread >
Post New Poll Post New Topic Post New Reply

Page compiled in 0.3468 seconds