[過去ログ] プログラミングのお題スレ Part15 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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
君は、実は自分で思っているほど日本語が得意ではないということにまだ気づいていない。
154: 2019/08/18(日)02:25 ID:zcvAoSag(1) AAS
そう来ると思っていました。
155(1): 2019/08/18(日)16:17 ID:YNXq+wty(1/4) AAS
>>137
外部リンク:ideone.com
C++。多分できた。
O(1)かも。
156: 2019/08/18(日)16:41 ID:YNXq+wty(2/4) AAS
一番だよ〜。ほめてほめて〜〜!!
157: 2019/08/18(日)17:02 ID:MNRPGL9Z(1) AAS
乙。
158: 2019/08/18(日)17:05 ID:Onid3Fuw(2/2) AAS
O(1)だよ
159: 2019/08/18(日)17:21 ID:YNXq+wty(3/4) AAS
やっほーい。
160(2): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/18(日)17:59 ID:f2ZPM7Xh(2/5) AAS
スタート地点に壁を作ってるみたい。アルゴリズムの詰めが甘いようだ。
161: 2019/08/18(日)18:37 ID:YNXq+wty(4/4) AAS
>>160
表示の問題です。では済まないかい?
場所は保持してるよ?
162(1): 2019/08/18(日)18:38 ID:Y3okjmnX(1/2) AAS
>>137 Java
外部リンク:ideone.com
163: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/18(日)19:10 ID:f2ZPM7Xh(3/5) AAS
>>162
正解。
164(2): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/18(日)19:33 ID:f2ZPM7Xh(4/5) AAS
お題: 壁で囲まれた何もない有限の部屋(面積5m^3前後)の中に、四方向に距離センサーが付いた、丸い形のお掃除ロボット(直径20cm)がある。
各距離センサーは、ロボットからその方向にある障害物までの距離を常に教えてくれる。
ロボットはその場で右または左に5度単位で自転するか、もしくは前方向に5cm単位で前進できる。
部屋全体のおおよその形がわかるまで、ロボットを動かしなさい。
例) 正方形の部屋
例) 正三角形の部屋
例) 凹の形の部屋
165: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/18(日)19:46 ID:f2ZPM7Xh(5/5) AAS
直径20cmが入り込めない隙間は無視、もしくは壁と見なす。
スクリーンショットか動画を作れたら、30点加点する。
166(1): 2019/08/18(日)19:59 ID:Y3okjmnX(2/2) AAS
面積なのに^3とはこれ如何に
167: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/18(日)20:17 ID:OH7aQxbJ(1) AAS
>>164 >>166
訂正。m^2です。
参考資料:直線と線分の当たり判定
外部リンク:spphire9.wordpress.com直線と線分の当たり判定/
168: 2019/08/19(月)11:34 ID:icNxZHqv(1/2) AAS
>>164
部屋の壁の構成が凹を基本としたヒルベルト曲線だったら「おおよその形」はそのロボットのAIは何と答えればいいの?
画像リンク[png]:cdn-ak.f.st-hatena.com
169: 2019/08/19(月)11:46 ID:icNxZHqv(2/2) AAS
もしくは、「壁」とは何か
170: 2019/08/19(月)12:00 ID:78Wz1qhX(1/4) AAS
>>160
一晩かんがえてみたんだけどね、ゆる〜くね。
スタートに壁作るなとは書いてないよね??
171(1): 2019/08/19(月)12:36 ID:ChF0jSyn(1/2) AAS
4個目のスタート地点の壁を許しても、3個目の答えが間違えてるやん?
[-1,1]の壁を1回透過しないとゴールにたどり着けないやん?
まあ [*いしのなかにいる*] は許されないと思うけどw
172: 2019/08/19(月)12:50 ID:78Wz1qhX(2/4) AAS
>>171
あぁ、なるほど、先において起動させる前提なのか。
オレ、動的にターン制で考えてたわ。
173(1): 2019/08/19(月)13:04 ID:ChF0jSyn(2/2) AAS
動的ターン制って考えは思いつかんかった
その考えなら>>155でも問題ないな
174: 2019/08/19(月)13:05 ID:78Wz1qhX(3/4) AAS
握手(非強制)
175: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/19(月)13:45 ID:5pda5jNo(1/3) AAS
部屋の形を表すビットマップ画像、もしくは一個以上の多角形でいいよ。
176: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/19(月)13:49 ID:5pda5jNo(2/3) AAS
誤差は気にしない、気にしない。
177: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/08/19(月)13:53 ID:5pda5jNo(3/3) AAS
>>173
壁をいつ置くかの記述がなかった、設問の不備ということで、正解、にしときます。すみません。
178: 2019/08/19(月)21:12 ID:78Wz1qhX(4/4) AAS
及第点!
179: 2019/08/19(月)21:48 ID:KFTDhNgP(1) AAS
コテのくせに偉そうだな
180: 2019/08/20(火)03:10 ID:p19J/GFP(1) AAS
アスペばっかやんけこのスレ
181: 2019/08/23(金)16:30 ID:GCcQKmFF(1) AAS
>>32
perl5
外部リンク:ideone.com
ずいぶん前のお題だが面白い回答ができたので再提出
再帰する正規表現に perl-code 内蔵の正規表現
たぶんウルトラレア
182(1): 2019/08/27(火)08:48 ID://c3Bn/y(1/2) AAS
>>4 Java
外部リンク:ideone.com
>>5-6
> T = std::max(T,UI(mt));
> if (T >= C) { Re++; }
保持してる最大値でもう一回振るかどうか決めちゃってないかい?
183: 2019/08/27(火)20:29 ID:ZWZUVJ+Q(1/6) AAS
>>182
振ったダイスが閾値超えてたら次の回を一回プラスしてる。
閾値C以上ならという判断。
184: 2019/08/27(火)20:38 ID:ZWZUVJ+Q(2/6) AAS
あ、勘違いしてた。ちょっと待ってて。
185: 2019/08/27(火)20:41 ID:ZWZUVJ+Q(3/6) AAS
>>4
外部リンク:ideone.com
C++。フォークして修正してみた。これでいいかなぁ。
186(1): 2019/08/27(火)21:01 ID://c3Bn/y(2/2) AAS
俺のとあってるし多分いいんじゃね?わからんが
でも>>5-6の時点で出題者からの突っ込みがないのが気になる
出題者出てきてー
187: 2019/08/27(火)21:06 ID:ZWZUVJ+Q(4/6) AAS
外部リンク:ideone.com
しつこいけど、変数名のかぶりが気持ち悪かったので書き直した。
それと、手元でデバッグ軽くやっておいた。
188: 2019/08/27(火)21:10 ID:ZWZUVJ+Q(5/6) AAS
>>186
そりゃよかった。
出題者に宿題解かされたかな??
189(2): 2019/08/27(火)22:42 ID:ZWZUVJ+Q(6/6) AAS
お題:値が変更不可能でインデックスだけ参照できるシャッフルされた配列を何らかの方法でソートする。その際配列や値のコピーは取れない。
C++でいう、constの配列をなんとか整列してみましょう。
自分の答え。:外部リンク:ideone.com
190(1): 2019/08/28(水)00:04 ID:4LHTj8UL(1) AAS
>>189 Perl5
use List::Util shuffle;
@a = shuffle 1..10;
@ix = 0..$#a;
print "@a\n";
@iy = sort{$a[$a] <=> $a[$b]} @ix;
print "@a[@iy]\n";
実行例
~ $ perl 15_189.pl
5 2 4 8 3 10 6 9 1 7
省1
191(3): 2019/08/28(水)00:57 ID:iZEqAFR9(1/11) AAS
激お題:自動プログラミングプログラムを作るか日本語で説明せよ。方法は各自の言語にゆだねる。
外部リンク:ideone.com
自分は上記のようなものを作った。
4kb位のプログラムができるのに多分数年かかる。
コンパイラの通ったかというのを取れれば文章的に正しいやつは何かを残していく。
でも、コンパイラに投げる動作はわからないので入れてない。
192: 2019/08/28(水)01:00 ID:iZEqAFR9(2/11) AAS
>>190
perlわからないけど、参加してくれてありがとう。
コードが短くて羨ましい。
193(1): 2019/08/28(水)01:14 ID:mmOF8lug(1) AAS
>>191 ナンジャそれは、お題でもなんでもない。 まず日本語の勉強をして出直してこい。
お題も人に解る様に出せないような人間はプログラマの素質はない。
194(1): 2019/08/28(水)01:51 ID:iZEqAFR9(3/11) AAS
>>193
どこが解りにくかったですか?
テストコードは、言語で使える英数記号類を全探索するモノです。
195(1): 2019/08/28(水)12:29 ID:gV1iThk/(1/3) AAS
>>194
>>191全体
196: 2019/08/28(水)14:09 ID:iZEqAFR9(4/11) AAS
>>195
お題と余談が書いてあるだけだぞ。
とりあえず、刮目して自動プログラミングプログラムを作ってください。
作れなさそうなら、概要を日本語で説明してください。
197: 2019/08/28(水)14:20 ID:iHRPACN2(1) AAS
まず自動プログラミングプログラムってなんだよ
お前の造語なんか知らんわ
198: 2019/08/28(水)14:40 ID:9ymulh1y(1) AAS
ドメイン特化言語作れってことか?
199(1): 2019/08/28(水)14:40 ID:gV1iThk/(2/3) AAS
>>189
Kotlin
外部リンク:paiza.io
こんなので良いのかな?
厳密に言ったら最後の出力文字列を作る時の map で値が取り出されて新たなリスト作るからコピーされちゃってんだけどね。
200(2): 2019/08/28(水)14:47 ID:iZEqAFR9(5/11) AAS
「自動プログラミング」「プログラム」ですが何か。
DSLじゃないわ。
上下前次1-新書関写板覧索設栞歴
あと 802 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.040s