[過去ログ] プログラミングのお題スレ Part15 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
54(1): 2019/08/03(土)10:23 ID:t/Tc4Qxr(1) AAS
外部リンク:ideone.com
from itertools import permutations
#string = "123"
string = "5672391"
n = int(string)
print filter(lambda m: m>n, map(lambda x: int("".join(x)), list(permutations(string, len(string)))))
55: 2019/08/03(土)10:27 ID:9AEx1UEu(1) AAS
なんて早いんだ
56(2): 2019/08/03(土)11:19 ID:4CYzcJxv(1) AAS
「大きくできなければ元の数字をそのまま出力せよ」という条件が
ことごとく無視されててワロタ
あと、「133」みたいに同じ数字が複数含まれる場合はどうなるべきなんだろう
57(1): 2019/08/03(土)11:39 ID:xpWLAw2C(1/4) AAS
AA省
58(1): 2019/08/03(土)11:43 ID:xpWLAw2C(2/4) AAS
>>57 ごめんなさい
print "$n " if $n > $v;
↓
print "$n " if $n >= $v;
じゃないと「大きくできなければ元の数字をそのまま出力せよ」を満たさなかった…orz
59: 2019/08/03(土)11:49 ID:xpWLAw2C(3/4) AAS
>>58 そうすると逆に
「元の数「より大きくなる」ように再構築せよ」
については、元の数値が余計に出力されるな…ゴメンねもう一工夫要るわ
それにiteratorである必要ないわ
60(1): 2019/08/03(土)12:09 ID:xpWLAw2C(4/4) AAS
>>48 Perl5、iteratorじゃなくpermutationを列挙する方法で書いてみた。これなら題意に合うはず。
sub permu {
my ($l, $p, @r) = @_;
defined $p ? map {[$p, @$_]} permu([], @$l, @r) : ([])
,
@r ? permu([@$l, $p], @r) : ()
}
#$v = '123';
#$v = '321';
$v = '5672391';
省6
61: 2019/08/03(土)16:01 ID:XF8eWPn5(1) AAS
>>48 Squeak/Pharo Smalltalk
| fn res |
fn := [:input |
(Array streamContents: [:ss |
input permutationsDo: [:perm | perm > input ifTrue: [ss nextPut: perm copy]]]
) ifEmpty: [input]
].
fn value: '123'. "=> #('132' '213' '231' '321' '312') "
fn value: '921'. "=> '921' "
{#ms -> [res := fn value: '5672391'] timeToRun. #size -> res size}. "=> {#ms->6 . #size->2438} "
62(1): 2019/08/03(土)19:53 ID:0ts56itm(2/2) AAS
>>48だけど、>>56の要件を見落としていたので入れてみたよ。
外部リンク:ideone.com
C++。
63(2): 2019/08/04(日)03:52 ID:vnZdN6SP(1/2) AAS
>>56で指摘したのに誰も反応してくれないので自分で書く
>>54は、「133」と入れると[313,331,313,331]みたいに結果がダブる
64(2): 2019/08/04(日)04:17 ID:vnZdN6SP(2/2) AAS
>>62
C++のnext_permutationは、辞書順で次に来る順列が返るので、
最初の並びにnext_permutationを繰り返し適用すれば題意を満たす数列が得られる。
あと、自前で桁分割するより他言語のように文字列を使った方が楽だと思う。
65: 2019/08/04(日)08:30 ID:FnmDNXLj(1) AAS
>>48
@Mathematica
rebuildLargerN[n_]:=n//
IntegerDigits//
Permutations//
Map[FromDigits,#]&//
Select[#,#>n&]&//
If[#!={},#,{n}]&;
In[1] := rebuildLargerN[123]
Out[1] = {132, 213, 231, 312, 321}
省2
66: 2019/08/04(日)11:42 ID:1+0Vj0jh(1) AAS
>>63
オレのPerl5の>>60も桁に重複があると出力はダブるよ。
ダブった出力で良いかあるいは1つに削減して出力するか
仕様は不定なので、ダブる可能性があってもそのまま出した。
ダブらせず1つだけ出力すにはsortしてuniqすればいいんだけど。
@b = grep {$_ > $v} map{join '', @$_} permu [], @a;
↓
%h = map{$_ => 1} sort grep {$_ > $v} map{join '', @$_} permu [], @a;
@b = keys %h;
67: 2019/08/04(日)13:27 ID:FYuOH6vI(1/2) AAS
外部リンク:ideone.com
C++.
>>63のダブって表示はならないですね。
文字列だと、自分はいいけど、数字に限定するのが面倒なので、大きな数で処理してます。
文字を許容するんであればお題で書いておけばそのようになるんじゃないですかね??
68: 2019/08/04(日)13:29 ID:FYuOH6vI(2/2) AAS
あ、そうだった。文字列だと自分より大きいを表現するのがめんどくさいのでした。
69: 2019/08/05(月)21:32 ID:OFOHGnJp(1) AAS
>>48
外部リンク:ideone.com
C++。暇だったので、文字列版作った。
でかい数のデバッグが大変だから手抜きだ。
ご査収ください。。。
70(1): 2019/08/05(月)22:51 ID:AzW+f4x5(1) AAS
>>48 C++
外部リンク:ideone.com
>>64で説明したかった内容をコードにしてみた
なお、pythonとc++のpermutationは、同じ値が含まれる時の動作が異なる
外部リンク:stackoverflow.com
71: 2019/08/06(火)14:56 ID:1YPxJa8a(1/4) AAS
お題@閑話休題。
外部リンク:ja.wikipedia.org素数判定法
AKSの実装。Prime is in P.
自分は挫折しました。数学解らない。
残骸:外部リンク:ideone.com
72: 2019/08/06(火)14:57 ID:1YPxJa8a(2/4) AAS
>>70
そういえば、ソートする必要ないね。
書いてるときは保証できなかったから思いつきもしなかった。
73(7): 2019/08/06(火)18:46 ID:/2t+ALeN(1) AAS
お題: スターリンソートを実装せよ
74: 2019/08/06(火)19:06 ID:Uq1zh0Vl(1) AAS
>>73
seq 300|sort -R | perl -ne ' if ($. == 1){print ; $hold = $_} elsif ($_ > $hold) { print ; $hold = $_}'
140
145
231
246
248
270
272
281
省3
75: 2019/08/06(火)20:18 ID:1YPxJa8a(3/4) AAS
>>73
要素粛清しながら見た目がそろっているというギャグかいな。
76: 2019/08/06(火)20:54 ID:1YPxJa8a(4/4) AAS
外部リンク:ideone.com
C++。よく生き残った我が精鋭たちよ。
ところで・・・。
77: 2019/08/07(水)15:33 ID:ts1kCtnm(1) AAS
>>73 Squeak/Pharo Smalltalk
| fn |
fn := [:array |
| memo |
memo := array first.
array reject: [:x | x < memo flag: (memo := x max: memo)]
].
fn value: (1 to: 300) asArray shuffled. "=> #(65 116 195 235 276 280 293 299 300) "
78: 2019/08/08(木)00:35 ID:X/CTiqlR(1) AAS
>>73
しばらくお題がないとおちつかないな
seq 300|sort -R | perl -ne ' if ($. == 1 or $_ > $hold) { print ; $hold = $_}'
79: 2019/08/08(木)10:41 ID:Q6oNbeov(1) AAS
>>73
ss = -> a {a.reduce([]){|r, e| r.first.nil? ? [e] : r.last < e ? r + [e] : r}}
p ss[[3,1,4,1,5,9,26,53,58,97,93,238]] # =>
[3, 4, 5, 9, 26, 53, 58, 97, 238]
80(1): 2019/08/09(金)00:37 ID:F1quTbHl(1/3) AAS
>>73 Perl5
use List::Util 'max';
@a = qw{3 1 4 1 5 9 26 53 58 97 93 238};
@b = grep {$n < $_ and $n = max($n, $_)} @a;
print "@b\n";
実行結果
~ $ perl 15_73.pl
3 4 5 9 26 53 58 97 238
81: 蟻人間 ◆T6xkBnTXz7B0 2019/08/09(金)00:53 ID:ZZ2ybqZz(1) AAS
お題: 太陽系の各天体の位置を物理シミュレーションし、64日後の地球の位置を求めよ。
82: 蟻人間 ◆T6xkBnTXz7B0 2019/08/09(金)01:17 ID:JH0KcGUq(1) AAS
俺たちって計算能力でコペルニクスを超えられると思う? NASAのデータがあるから昔よりも楽だと思うけど。
83(1): 2019/08/09(金)01:27 ID:F1quTbHl(2/3) AAS
>>73 Perl5、 >>80 よりこっちの方が若干スマート
$n = -inf;
@a = qw{0 3 1 4 1 5 9 26 53 58 97 93 238};
@b = grep {$n < $_ and ($n = $_), 1} @a;
print "@b\n";
実行結果
~ $ perl 15_73.pl
0 3 4 5 9 26 53 58 97 238
84: 2019/08/09(金)04:16 ID:eE0IZ4mx(1) AAS
>>83
ちょっとおもしろい
85: 2019/08/09(金)08:43 ID:Pwzp9noT(1) AAS
>64
地球の位置といってもいろいろあります。
地球の赤道を天球上に投影した、「赤経、赤緯」、太陽の天球上の
通り道を天球上に投影した「黄経、黄緯」がありますし、それも、地球の中心を
原点とした、「地心赤経、赤緯」、「地心黄経、黄緯」および、観測地点を原点とした
「地表赤経、赤緯」、「地表黄経、黄緯」もありますので、どれにするかによって
計算式が違ってきます。
なお、JPLでは、太陽と月、および冥王星までの精密位置計算用のプログラムを
発表しています。
期間がながいものは、−4000(B.C.4001)〜4000(A.D.)まで、計算できるものが
省2
86: 2019/08/09(金)12:56 ID:1/DU+veY(1) AAS
Perlって読みにくいんだな
{とか@とか$とか使いまくる言語ってマジ苦手
87: 2019/08/09(金)13:03 ID:OfLBByV9(1) AAS
RubyとPHPにケンカ売ってんの?
88: 2019/08/09(金)13:05 ID:weGJYw8v(1) AAS
grep 内のboolian から最後の , 1 を取り除いたら
最初の0を拾わない
何というカオス
89: 2019/08/09(金)13:27 ID:F1quTbHl(3/3) AAS
@b = grep {$n < $_ and {$n = $_}} @a;
こうやりゃいいんだよ
90(1): 2019/08/09(金)13:51 ID:3hMObOjl(1) AAS
この方がいいだろ
@b = grep {$n < $_ and ($n = $_, 1)} @a;
91(14): 2019/08/10(土)22:54 ID:wV6Kn1Zu(1) AAS
お題:
与えられた数列の要素の中で他と被っていない最小のものを求めよ
被っていない要素が存在しないときは-1を出力すること
例:
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
92(1): 2019/08/11(日)00:46 ID:In4DYV8Y(1/2) AAS
>>91 Perl5
use feature say;
use List::Util min;
for ([1,1,1,1,2,2,2,3,3,4], [1,2,3,4,5,5,4,3,2,1], [3,1,4,1,5,9,2,6,5,3,5]) {
my %h;
$h{$_}++ for @$_;
@s = grep{1 == $h{$_}} keys %h;
$" = ',';
say "@$_ -> ", @s ? min @s : -1;
}
省5
93: 2019/08/11(日)01:44 ID:GTeyRs5o(1/2) AAS
>>91
perl5
外部リンク:ideone.com
94: 2019/08/11(日)06:08 ID:0wbGlMwh(1/2) AAS
>>91 Ruby
f = -> a {a.sort.group_by{|e| a.count(e)}[1]&.min || -1}
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
].each{|a| puts '%p => %s' % [a, f[a]]} # =>
[1, 1, 1, 1, 2, 2, 2, 3, 3, 4] => 4
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1] => -1
[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] => 2
95: 2019/08/11(日)06:11 ID:0wbGlMwh(2/2) AAS
typo
f = -> a {a.uniq.group_by{|e| a.count(e)}[1]&.min || -1}
96: 2019/08/11(日)12:01 ID:tGfhCIDM(1) AAS
>>91 ruby
[ [1,1,1,1,2,2,2,3,3,4], [1,2,3,4,5,5,4,3,2,1], [3,1,4,1,5,9,2,6,5,3,5] ].each{|ar|
print ar.join(','), " -> "
while (m = ar.min) && ar.count( m ) != 1
ar.delete( m )
end
puts m || -1
}
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
省1
97(1): 2019/08/11(日)13:17 ID:In4DYV8Y(2/2) AAS
>>91 Perl5 >>92 よりもう少しシンプルに
use List::Util min;
for ('1,1,1,1,2,2,2,3,3,4', '1,2,3,4,5,5,4,3,2,1', '3,1,4,1,5,9,2,6,5,3,5') {
my %h;
$h{$_}++ for split ',';
$s = min grep{1 == $h{$_}} keys %h;
$s //= -1;
print "$_ -> $s\n";
}
実行結果
省4
98: 蟻人間 ◆T6xkBnTXz7B0 2019/08/11(日)13:23 ID:NLZMdOh3(1/4) AAS
お題: 数独を素早く解くプログラム(ソルバー)。
99: 2019/08/11(日)16:53 ID:RYQKURZ1(1) AAS
昔々Cで数独解くやつ普通に作ったことあるけど普通に作っても人間の感覚では一瞬にして答えが出ちゃうんだよな。ほとんどEnterキー押したらすぐ出る感じ。
そしてこれといって他にアルゴリズムは思い浮かばない。(誰もが思い付くであろう再起でマスに入れられる数を順番に入れてく方式ね)。
これ以上に「素早く」やる方法なんてあるんだろうか?
100: 2019/08/11(日)16:59 ID:z7uw92+V(1/6) AAS
>>91
外部リンク:ideone.com
C++。一応例題は解けたが妖しい処理になった。
101: 2019/08/11(日)17:06 ID:z7uw92+V(2/6) AAS
>>91
外部リンク:ideone.com
C++。これでどうじゃ。
バケットソートでいいじゃないか。プンプン。
102: 2019/08/11(日)17:17 ID:z7uw92+V(3/6) AAS
#include <map>
template<class Container>
std::int64_t MakeHoge(const Container& D) {
std::map < Container::value_type, std::uint64_t> M;
for (auto& o : D) {
M[o]++;
}
for (auto& o : M) {
if (o.second == 1) {
return o.first;
省5
103: 2019/08/11(日)17:20 ID:z7uw92+V(4/6) AAS
#include <map>
template<class Container>
std::intmax_t MakeHoge3(const Container& D) {
std::map < Container::value_type, std::uintmax_t> M;
for (auto& o : D) {
M[o]++;
}
for (auto& o : M) {
if (o.second == 1) {
return o.first;
省5
104: 2019/08/11(日)17:25 ID:z7uw92+V(5/6) AAS
どうでもいいのですけど、MITライセンス。知ってますね。
105: 蟻人間 ◆T6xkBnTXz7B0 2019/08/11(日)17:33 ID:NLZMdOh3(2/4) AAS
名無しにライセンス
106: 2019/08/11(日)17:43 ID:z7uw92+V(6/6) AAS
外部リンク:ideone.com
C++。大オチ。
駄文書きすぎた。
107: 2019/08/11(日)18:40 ID:2JPwQqrg(1) AAS
prologのコード見せてよ
108(1): 蟻人間 ◆T6xkBnTXz7B0 2019/08/11(日)18:56 ID:NLZMdOh3(3/4) AAS
お題: 論文「数独パズルの難易度判定」(大阪工業大学)を読んで、数独の難易度を判定するプログラムを作れ。
109: ◆QZaw55cn4c 2019/08/11(日)19:37 ID:EWNjTlvC(1) AAS
>>108
吸う毒難易度判定
初期値の与えられているマスが22以下:難問
22以上:簡単
110: 蟻人間 ◆T6xkBnTXz7B0 2019/08/11(日)19:48 ID:NLZMdOh3(4/4) AAS
論文無視かよ
111: 2019/08/11(日)19:52 ID:GTeyRs5o(2/2) AAS
お題出す前にその論文を簡約してよ
112: 2019/08/12(月)00:58 ID:DPPVhuFK(1) AAS
>>91 Pharo/Squeak Smalltalk
| fn |
fn := [:arr | (arr asBag sortedElements detect: [:kv | kv value = 1] ifNone: [-1 -> 0]) key].
fn value: #(1 1 1 1 2 2 2 3 3 4). "=> 4 "
fn value: #(1 2 3 4 5 5 4 3 2 1). "=> -1 "
fn value: #(3 1 4 1 5 9 2 6 5 3 5). "=> 2 "
113: 2019/08/12(月)05:25 ID:+GFDKMmL(1) AAS
>>91
Kotlin
外部リンク:paiza.io
114: 2019/08/12(月)21:41 ID:qMi+e5AX(1) AAS
>>91 Perl5 >>97 もう少しスマートに
for ('1,1,1,1,2,2,2,3,3,4', '1,2,3,4,5,5,4,3,2,1', '3,1,4,1,5,9,2,6,5,3,5') {
my %h;
$h{$_}++ for eval;
($s) = sort grep{1 == $h{$_}} keys %h;
$s //= -1;
print "$_ -> $s\n";
}
実行結果
~ $ perl 15_91_3.pl
省3
115(2): 2019/08/13(火)07:30 ID:kJJDzO2R(1) AAS
>>91
Ruby で
# 数字の配列の配列。改行は削除
nums = <<"EOT".lines( chomp: true ).map{ |str| str.split( "," ).map( &:to_i ) }
1,1,1,1,2,2,2,3,3,4
1,2,3,4,5,5,4,3,2,1
3,1,4,1,5,9,2,6,5,3,5
EOT
results = nums.each_with_object( [ ] ) do |ary, results|
uniq_ary = ary.uniq # 重複排除
省10
116(1): 2019/08/14(水)01:39 ID:G04CimIq(1) AAS
>>91
VB
外部リンク:paiza.io
117: 2019/08/14(水)01:45 ID:spdKRMJM(1) AAS
>>116
うわぁ…山中俊次かよ
118(1): 115 2019/08/14(水)03:01 ID:ms62dfnn(1) AAS
>>91
Ruby で、>>115 を修正した
# 数字の配列の配列。改行は削除
nums = <<"EOT".lines( chomp: true ).map{ |str| str.split( "," ).map( &:to_i ) }
1,1,1,1,2,2,2,3,3,4
1,2,3,4,5,5,4,3,2,1
3,1,4,1,5,9,2,6,5,3,5
EOT
def resolve( ary )
# 数字の出現回数を数える。Hash の初期値は、0
省9
119: 115 2019/08/15(木)05:28 ID:5MxOdPEK(1) AAS
>>118
の、resolve 関数を修正
# キーでソートして、最小の数字を返す
>number = Hash[ hash_2.sort ].keys.first
pair = Hash[ hash_2.sort ].first # [ key, value ]
keys を使うと、ハッシュのキー配列が作られるため、処理が多くなるので、修正します
def resolve( ary )
# 各数字の出現回数を数える。Hash の初期値は、0
hash = ary.each_with_object( Hash.new( 0 ) ) {
|num, hash| hash[ num ] += 1 }
省10
120(12): 2019/08/16(金)00:38 ID:eRShYMGh(1/2) AAS
お題: 任意の2桁の自然数の各桁を、1桁になるまで掛け算する回数の最大回数とその数を示せ
15なら1x5=5と1回
93なら9x3=27, 2x7=14, 1x4=3と3回
121: 2019/08/16(金)01:31 ID:eRShYMGh(2/2) AAS
>>120
最後1x4=3じゃなくて1x4=4だった
122: 2019/08/16(金)04:22 ID:JO1Ik9g1(1) AAS
>>120
common lisp
外部リンク:pastebin.com
出力
15=>(5 1)
93=>(4 3)
66=>(8 3)
51=>(5 1)
52=>(0 2)
61=>(6 1)
省1
123: [sagee] 2019/08/16(金)04:32 ID:4vR5Al7i(1/2) AAS
>>120 Ruby 1桁以上に拡張してみた
def colmul( val )
n = 0
while val >= 10
ans = 1
begin
val, c = val.divmod( 10 )
ans *= c
n += 1
end while val >= 10
省12
124: 2019/08/16(金)07:11 ID:idyJWhoT(1) AAS
>>120 Squeak Smalltalk (Pharo では若干の修正が必要)
| fn ans |
fn := [:n |
| count digits |
count := 0.
[(digits := n asString asArray collect: #digitValue) size > 1]
whileTrue: [n := digits reduce: #*. count := count + 1].
count
].
ans := Set with: nil->0.
省12
125(1): 2019/08/16(金)09:55 ID:w6EX52R7(1) AAS
AA省
126: 2019/08/16(金)10:19 ID:s+gRsoB0(1) AAS
>>120 Ruby
f = -> n {[(1..).find{10 > n = n.divmod(10).reduce(:*)}, n]}
(10..99).group_by{|i| f[i]}.max.tap{|m| m.last.each{|v| puts '%dは%d回で%dになる.' % [v, *m.first]}}
# => 77は4回で8になる.
127: 2019/08/16(金)11:35 ID:Y33v+D/I(1) AAS
>>120 Perl5
use List::Util reduce;
for (qw{15 93 123 277777788888899}) {
($n, $i) = ($_, 0);
while (1 < length $n) {
$n = reduce {$a * $b} split '', $n;
$i++;
}
print "$_ -> $i回で $nになる\n";
}
省6
128: 2019/08/16(金)11:40 ID:FoYt1ZXR(1) AAS
実用上、意味のないことは寝言という。
129: 2019/08/16(金)11:52 ID:38QTrPdc(1) AAS
グッスリお休み。
130: 2019/08/16(金)17:08 ID:/mNc+3sP(1) AAS
>>120
外部リンク:ideone.com
C++. 暇だったので基数いじれるようにした。
ただし、デバッグはしてない。
131: 2019/08/16(金)19:41 ID:4vR5Al7i(2/2) AAS
2x7x7x7x7x7x7x8x8x8x8x8x8x9x9=4996238671872
この段階で、掛け算14回じゃなくて1回になるの?
132: 2019/08/16(金)21:11 ID:UOmTAtC9(1) AAS
元のお題は2桁の自然数なのでそれよりも桁が多いならその場合のルールも決めないとダメだろうな。
133: 2019/08/16(金)22:49 ID:WXGx/ZZ4(1) AAS
> 2x7x7x7x7x7x7x8x8x8x8x8x8x9x9=4996238671872
を1回としても14回としても解き方はたいして変わらんからどっちでもいいと思う
とりあえず回答例見たら1回としてるみたいだから1回の方でいいんじゃね
134: 2019/08/17(土)05:49 ID:He41kTu9(1/2) AAS
>>120
common lisp
外部リンク:pastebin.com
任意の自然数に拡張した
split-num を実装してて思った
perl の数字と文字を自由に行き来できる cool型マジcool
135: 2019/08/17(土)05:57 ID:He41kTu9(2/2) AAS
15=>(5 1)
93=>(4 3)
198=>(4 3)
468=>(8 3)
738=>(6 4)
793=>(4 4)
1748=>(6 3)
136: 2019/08/17(土)15:01 ID:m7Zf+/1R(1) AAS
>>120 Perl5
use feature current_sub;
use List::Util reduce;
for (qw{15 93 123 277777788888899}) {
$i = 0;
$n = sub {
return shift if 1 == @_;
$i++, __SUB__->(split'', reduce {$a * $b } @_);
}->(split'');
print "$_ -> $i回で $nになる\n";
省7
137(3): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/17(土)15:58 ID:hkO+8710(1/4) AAS
お題: オカダンゴムシには進行中に壁にぶつかると左へ、次は右へ(あるいは右へ、次は左へ)と交互に曲がっていく習性がある。この行動は「交替性転向反応」といい、左右に交互に曲がる事で天敵から逃げられる確率を高めているといわれている(ウィキペディアより引用)。
何もない整数平面上にスタート地点(S)とゴール地点(G)が与えられる。仮想ダンゴムシ(@)の周辺に壁(#)をいくつか作って、スタート地点からゴール地点まで誘導せよ。
ただし、ダンゴムシは最初は右向きを向いていて、最初にぶつかったら左に曲がるものとする。
90度曲がって目の前にすぐに壁がある場合は同じ方へもう90度曲がるものとする。壁はいくつ作ってもよい。
例) S=(0, 0), G=(5, 2)
→#={(6, 0)}.
例) S=(1, 2), G=(-1, 1)
→#={(2, 2), (1, 3), (0, 2), (1, 0)}.
138: 2019/08/17(土)16:18 ID:RHoMoFJP(1/4) AAS
>>137
ダンゴムシは初手でどこに向いてるの?北?Y+?X+?
139: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/17(土)16:19 ID:hkO+8710(2/4) AAS
ヒント: 最初、スタートとゴールを囲むように壁を仮設する。ぶつからない壁は要らない。
140: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/17(土)16:20 ID:hkO+8710(3/4) AAS
ダンゴムシはx軸方向です。y軸は数学と同じ上向きを仮定してます。
141: 2019/08/17(土)17:21 ID:RHoMoFJP(2/4) AAS
Y+がビジュアライズして上になるかはビジュアライザーの挙動次第なのでいいのだけど。
最初はX+向いてるのね。承知。
142(1): 2019/08/17(土)17:25 ID:RHoMoFJP(3/4) AAS
あ、もう一つあるんだ。
最初にダンゴムシが壁にぶつかったときは右と左どっち優先?
////
#
@#
////
の時。
方向がX+の時に左へターンしたら無限ループする。
逆に、方向がY+の時右にターンしたら無限ループする。
どや?
143: 2019/08/17(土)17:28 ID:uIV5R7Aj(1) AAS
> ただし、ダンゴムシは最初は右向きを向いていて、最初にぶつかったら左に曲がるものとする。
144: 2019/08/17(土)17:29 ID:wzQeNn8E(1) AAS
>>142
>90度曲がって目の前にすぐに壁がある場合は同じ方へもう90度曲がるものとする。
145: 2019/08/17(土)17:29 ID:RHoMoFJP(4/4) AAS
すみません。見落としていました。
大変申し訳ありません。
146: 2019/08/17(土)19:06 ID:c+Xct49t(1) AAS
クソコテの相手すんなよ
147: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/17(土)20:39 ID:hkO+8710(4/4) AAS
世界はクソにあふれている! 何てこった! この状況を! この状況を変えるためには、クソをせずに生きれる仕組みを! 皆様と一緒にクソをせずに生きれる仕組みを、実現して! 行きましょう!
148: 2019/08/17(土)23:18 ID:+079Z1et(1) AAS
そこでファナモの出番なわけですよ
149: 2019/08/17(土)23:52 ID:9or86GZG(1) AAS
それよりも交替性転換反応とやらが本当に生存確率を高めるのか
右にばかり曲がりたがる逃亡犯と左にしか曲がれない共産党員を例に
シミュレーションを繰り返すプログラムを書いて?(゚∀゚)
150: 2019/08/18(日)00:30 ID:Onid3Fuw(1/2) AAS
FPSのレレレ撃ちでしょ
ゲームで実験結果がでているからYoutubeにGo
151(2): 2019/08/18(日)01:00 ID:C9/yeHaG(1) AAS
あなた達は、実は自分で思っているほど
ソフトウエアの開発が得意ではないということに
まだ気がついてすら至っていない
152: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/18(日)01:50 ID:f2ZPM7Xh(1/5) AAS
>>151
そうだよね。ソフトクリーム作るのって大変だね。ちなみに英語ではジェラートだからね。
153: 2019/08/18(日)02:07 ID:4oEGaRbg(1) AAS
>>151
君は、実は自分で思っているほど日本語が得意ではないということにまだ気づいていない。
上下前次1-新書関写板覧索設栞歴
あと 849 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s