{"id":278,"date":"2017-03-14T18:49:09","date_gmt":"2017-03-14T18:49:09","guid":{"rendered":"http:\/\/ifdesignelseart.com\/?p=278"},"modified":"2017-03-24T12:13:36","modified_gmt":"2017-03-24T12:13:36","slug":"ordonner-les-elements-dun-tableau-au-hasard","status":"publish","type":"post","link":"https:\/\/ifdesignelseart.com\/?p=278","title":{"rendered":"Ordonner les \u00e9l\u00e9ments d&rsquo;un tableau au hasard"},"content":{"rendered":"<p>Il est souvent int\u00e9ressant de d\u00e9terminer al\u00e9atoirement l&rsquo;ordre des \u00e9l\u00e9ments d&rsquo;un tableau.<br \/>\nLa fonction qui suit permet tr\u00e8s simplement d&rsquo;obtenir ce r\u00e9sultat : on lui soumet un tableau, elle parcourt ses \u00e9l\u00e9ments un \u00e0 un puis ajoute ces derniers \u00e0 un nouveau tableau, \u00e0 une position au hasard. Le type de tableau doit \u00eatre indiqu\u00e9, il faut donc remplacer le mot <code>type<\/code> par <code>String<\/code>, <code>int<\/code>, <code>float<\/code>, etc., selon le besoin :<\/p>\n<pre class=\"brush:java\">type[] shuffle(type[] origine){\r\n  type[] resultat = new type[0];\r\n  for(type s:origine){\r\n     int pos = floor(random(resultat.length+1));\r\n     resultat = (type[]) splice(resultat, s, pos);\r\n  }\r\n  return resultat;\r\n} \r\n<\/pre>\n<p>Dans l&rsquo;exemple qui suit, le type de tableau choisi est <code>String[]<\/code> (cha\u00eene de caract\u00e8re).<br \/>\nNous cr\u00e9ons un tableau contenant les valeurs \u00ab\u00a01\u00a0\u00bb, \u00ab\u00a02\u00a0\u00bb, \u00ab\u00a03\u00a0\u00bb, \u00ab\u00a04\u00a0\u00bb, \u00ab\u00a05\u00a0\u00bb, puis, \u00e0 dix reprises, nous m\u00e9langeons ce tableau.<\/p>\n<pre class=\"brush:java\">void setup(){\r\n  size(1024,768);\r\n  String[] s = {\"A\", \"B\", \"C\", \"D\", \"E\"};\r\n  for(int a=0;a&lt;10;a++){\r\n    s = shuffle(s); println(s); \r\n  }\r\n}\r\n  \r\nString[] shuffle(String[] origine){\r\n  String[] resultat = new String[0];\r\n  for(String s:origine){\r\n     int pos = floor(random(resultat.length+1));\r\n     resultat = (String[]) splice(resultat, s, pos);\r\n  }\r\n  return resultat;\r\n}<\/pre>\n<p>Le r\u00e9sulstat sera (par exemple) :<br \/>\n<code><br \/>\nD B E C A<br \/>\nA E B C D<br \/>\nB D E C A<br \/>\nA D C E B<br \/>\nB D C E A<br \/>\nA C D E B<br \/>\nD C E B A<br \/>\nA E C B D<br \/>\nE D C B A<br \/>\nD A C B E<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il est souvent int\u00e9ressant de d\u00e9terminer al\u00e9atoirement l&rsquo;ordre des \u00e9l\u00e9ments d&rsquo;un tableau. La fonction qui suit permet tr\u00e8s simplement d&rsquo;obtenir ce r\u00e9sultat : on lui soumet un tableau, elle parcourt ses \u00e9l\u00e9ments un \u00e0 un puis ajoute ces derniers \u00e0 un nouveau tableau, \u00e0 une position au hasard. Le type de tableau doit \u00eatre indiqu\u00e9, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-278","post","type-post","status-publish","format-standard","hentry","category-tips"],"_links":{"self":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=278"}],"version-history":[{"count":6,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/278\/revisions"}],"predecessor-version":[{"id":286,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/278\/revisions\/286"}],"wp:attachment":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}