このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1267796762/925
#  【課題提示用テンプレ】 
#  【 課題 】要素型がint型である配列を作り、全要素を1〜10の乱数で埋め尽くす(1以上10以下の値を代入) 
#        するプログラムを作成せよ。要素数はキーボードから読み込むこと。 
#        ただし、異なる要素を持つことないようにすること。要素数は10以下であるとする。 
#        例えば、{1,3,5,6,1,2}とならないようにする。(1がかぶっている為NG) 
#         
#   
#  【 形態 】1. Javaアプリケーション(main()で開始) 
#  【 期限 】スレが埋まるまでお願いします 
#  【 補足 】ちなみに明解java入門編の演習6-11です。6-12もできなかったorz 
#  ../test/read.cgi/tech/1267796762/925 
#   
#  補足です  
#   
#  実行例は 
#   
#  要素数:7  // ←入力 
#   
#  a[0]= 7 
#  a[1]= 6 
#  a[2]= 2 
#  a[3]= 10 
#  a[4]= 1 
#  a[5]= 3 
#  a[6]= 9 
#  a[7]= 5 
#   
#  //    ↑ 
#  //同じ値を持つことのない1〜10までの乱数。 

'入力された要素数のならびを作り、全要素を1〜10の乱数で異なった値を持つ乱数で埋める。要素数はキーボードから入力するものとする'(ならび) :-
        範囲指定付き整数入力(要素数,'要素数を入力してください : ',1,10,_要素数),
        length(_ならび,_要素数),
        全要素を1〜10の乱数で異なった値を持つ乱数で埋める([1,2,3,4,5,6,7,8,9,10],_ならび).

全要素を1〜10の乱数で異なった値を持つ乱数で埋める(_,[]) :- !.
全要素を1〜10の乱数で異なった値を持つ乱数で埋める(_候補ならび,[A|R]) :-
        length(_候補ならび,Len),
        Nth_0 is ramdom mod Len,
        length(L0,Nth_0),
        append(L0,[A|L1],_候補ならび),
        append(L0,L1,_候補ならび_1),
        全要素を1〜10の乱数で異なった値を持つ乱数で埋める(_候補ならび_1,R).