[過去ログ] プログラミングのお題スレ Part15 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(5): 2019/07/28(日)19:39 ID:832c/ukY(1) AAS
プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
外部リンク:ideone.com
省11
2(1): 2019/07/28(日)21:03 ID:KnbJf+WN(1) AAS
宿題、チューリングの泥沼、条件不足等回避のため
出題者は自分で回答可能か確認してからお題を出すこと
3(3): 2019/07/28(日)21:08 ID:OTB4c+BP(1) AAS
※QZは書き込み禁止
4(4): 2019/07/28(日)21:32 ID:MO+jaDzY(1) AAS
お題
とあるゲームでは、10面ダイスによってスコアを次のように定める
1. x個のダイスを全部振る
2. 振ったダイスのうち、最大の出目をスコアとする
3. 出目がc以上のダイスが存在するなら、その全てのダイスを使って同じ試行を行い、スコアに加算する
例えばc=7の時、2個のダイスの結果が(10,7)→(8,3)→(2)ならスコアは10+8+2=20となる
最初に振るダイスの個数Nとc(≧2)が分かっている時、スコアの期待値を求めよ
5(3): 2019/07/29(月)11:14 ID:3vvajVS9(1/4) AAS
>>4
外部リンク:ideone.com
C++,モンテカルロしてみた。
値がちょっと怖い値になったので、バグ報告歓迎。
6(3): 2019/07/29(月)11:34 ID:3vvajVS9(2/4) AAS
外部リンク:ideone.com
>>5が不安だったので、出力変えてみたけど、最大値で500近くになるんだな。
何かビビった。
7: 2019/07/29(月)11:49 ID:3vvajVS9(3/4) AAS
サイコロの偏りをもっと明確にしたいなら、乱数エンジンを複数持つか、ランダムデバイスそのもので実行する。
ランダムデバイスは遅いことになってるのでMTに投げるんだけど。
8: 2019/07/29(月)11:55 ID:3vvajVS9(4/4) AAS
一様乱数のサイコロは、現実では職人が作ったサイコロですなあ。
9(1): 蟻人間 ◆T6xkBnTXz7B0 2019/07/30(火)00:00 ID:NJpsA13e(1) AAS
お題: 炭素原子C, 酸素原子O, 水素原子Hという三種類の原子をそれぞれいくつか組み合わせて、非イオンの分子を作る。C, O, Hの結合の手の本数は、それぞれ四本、二本、一本である。
ゼロ以上の整数p,q,rが与えられ、Cがp個、Oがq個、Hがr個あると仮定するとき、原子を余らせず、また、結合の手を余らせずに一つの連結された分子を作りたい。
C, O, Hをこの順でp+q+r個、並べたリストLについて、m番目の原子L[m]とn番目の原子L[n]の結合の個数をA[m,n]と書くとき、A[m,n]によってなる行列Aを一つ求めなさい。不可能な場合は「None.」と表示しなさい。
例)
(p, q, r)=(0, 2, 0) → A=((0, 2), (2, 0)).
(p, q, r)=(1, 2, 0) → A=((0, 2, 2), (2, 0, 0), (2, 0, 0)).
(p, q, r)=(0, 1, 2) → A=((0, 1, 1), (1, 0, 0), (1, 0, 0)).
10: 2019/07/30(火)03:21 ID:NEOgIkE0(1) AAS
問題がわかりづらい。
11: 2019/07/30(火)06:42 ID:x+cPGemS(1) AAS
出題者は自分で解けることを確認してからお題にしてるのかね?
自明でない不可能な場合の例とか出してこないし怪しいもんだ
12: 2019/07/30(火)10:22 ID:xUDKdiN7(1) AAS
慣れない言語の勉強に使うのに丁度いいね
出題者が答えも貼っといてくれるとありがたい(´・ω・`)
13(1): 2019/07/30(火)16:13 ID:YUdTZrG6(1) AAS
良いプログラムは良い数式がないと作れないのでこのスレは過疎化する。
14(2): 2019/07/30(火)16:39 ID:qFxGgTrm(1) AAS
久々にこの板きたけど、宿題スレってなくなったんだね
15: 蟻人間 ◆T6xkBnTXz7B0 2019/07/30(火)16:51 ID:gia580F5(1) AAS
解空間は、サイズ(p+q+r)×(p+q+r)の整数行列の集合になる。
結合の手の個数は有限だから、解行列の成分は上限がある。
よって行列の各成分についてしらみつぶし探索が可能。
自分自身とは結合しないので、A[k,k]=0(つまり、行列の対角成分はゼロ)。
ある行の和は、行番号に対応する原子の結合の手の個数になる。
ある列の和は、列番号に対応する原子の結合の手の個数になる。
連結条件のチェックが必要。
16: 2019/07/30(火)17:04 ID:RYwsY7rK(1) AAS
お題: xのn次式を簡潔に表現できる関数を書け(rationalじゃなくてもOK)
a+bx+cx^2+dx^3+...
を
f x a b c d ...
のように表現する
(可変引数を処理する)
例えば
(defun f (x &rest as) (reduce #'+ (loop for a in as for i from 0 collect (* a (expt x i)))))
(loop for x from -5 to 5 do (print (f x 0 -1 0 1/3)))
-110/3
省10
17: 2019/07/30(火)17:10 ID:CNgKzCU7(1) AAS
>>14
基地外粘着uyによって潰された
18: 2019/07/30(火)19:44 ID:RfvVlMN8(1) AAS
>>13
良い数式が立てられないのでモンテカルロに酔っているオレ・・・。
19: ◆QZaw55cn4c 2019/07/30(火)20:12 ID:3dZzemsO(1/2) AAS
>>9
複雑すぎます
非環状アルカン(CnH2n+2)の構造異性体を列挙せよ、という簡略化したお題を提案します
20(1): ◆QZaw55cn4c 2019/07/30(火)20:13 ID:3dZzemsO(2/2) AAS
>>14
存在することはするのですが、誰も近寄らなくなりました、キチガイが一匹しつこく居候しているので
21(1): 2019/07/30(火)21:52 ID:WkS1m6T1(1) AAS
>>20
つ 鏡
22: 2019/07/30(火)23:15 ID:1jiiGCYP(1) AAS
>>21
草生える
23(5): 2019/07/30(火)23:24 ID:2GPXM96o(1) AAS
お題: 1 + 1 を計算させて 3 と出力させなさい
24: 2019/07/30(火)23:34 ID:77FpHlNC(1) AAS
>>23 Perl5
$a = 1 + 1;
print ~$a%10;
実行結果
$ perl 15_23.pl
3
※64bit整数版で実行してね
25: 2019/07/31(水)00:12 ID:w173sz60(1/6) AAS
>>23
perl5
print ("1", "+", "1")
1+1
print $_ =()= ("1", "+", "1")
3
26: 2019/07/31(水)04:39 ID:BcGPMjSP(1/2) AAS
>>23
perl
1+1;
print "3\n"
27: 2019/07/31(水)05:06 ID:B/3ESziM(1) AAS
>>23 ruby
class Fixnum
alias :add :+
def +(val)
if self == 1 && val == 1
puts 3
2
else
self.add(val)
end
省6
28: 2019/07/31(水)09:55 ID:w173sz60(2/6) AAS
>>23
perl5
print qw(1 + 1)
1+1
print eval q(1 + 1)
2
print $_ =()= qw(1 + 1)
3
29(1): 2019/07/31(水)14:18 ID:6BPSvdm1(1/2) AAS
お題、東大入試
a^2 - a が、10,000 で割り切れるような奇数a を求めよ。
ただし、3 <= a <= 9,999
ヒント
a^2 - a = a(a - 1) で、aは奇数、a-1 は偶数。
10,000 = 10^4 = 2^4 * 5^4
答え、625
東京大【整数マスターに俺はなる!#31】
動画リンク[YouTube]
30: 2019/07/31(水)14:46 ID:w173sz60(3/6) AAS
>>29
common lisp
(loop for n from 3 to 10000 when (and (equal (mod n 2) 1) (equal 0 (mod (- (expt n 2) n) 10000))) collect n)
(625)
31: 2019/07/31(水)15:57 ID:oxQy3lj+(1) AAS
・女体限定で、3次元の写真から3Dポリゴンモデルデータを自動作成
・そのデータから胴体部の着衣部分を、裸モデルに修正
・水着でついた脇乳の段差も修正
・元写真の地肌色を使い、女体テンプレのテクスチャを作成
・完成したモデルから胴体部だけ精密レンダリング
・元の写真に貼り付けて完成
32(4): 2019/07/31(水)17:25 ID:6BPSvdm1(2/2) AAS
プログラミングのお題スレ Part14
2chスレ:tech
漏れは、前スレの981 ではないですが、この問題の応用で、
括弧のネストの深さの最大値を求めよ
括弧の対応が取れていない場合は、-1 を出力せよ。
2種類の括弧が順序通りに、閉じていないものも、-1 です
ヒント : stack を使うと良いかも
省5
33: 2019/07/31(水)20:22 ID:AESVjm16(1) AAS
自分でスタックするか再起にして自動で積ませるか、といったところか。
34: 2019/07/31(水)21:44 ID:CaRsLsI2(1) AAS
>>32 Java
外部リンク:ideone.com
35: 2019/07/31(水)22:14 ID:w173sz60(4/6) AAS
>>32
perl5
外部リンク:ideone.com
36: 2019/07/31(水)22:19 ID:w173sz60(5/6) AAS
ideone バグっているのか?
STDIN の1行目空だと
ちゃんと標準入力としてプログラムに伝わっているけど
リンク先の stdin 枠の中だと省略されているように見える
stdout の 0 はその空を受け取ったもの
37(1): 2019/07/31(水)22:42 ID:w173sz60(6/6) AAS
twitterやっていたようなので
そこにバグフィックス要請とテストケース画像貼っておいた
たぶんそのうち直るでしょう
38(1): 2019/07/31(水)23:32 ID:M5c7ILzZ(1) AAS
問題
n桁のヒットアンドブローのソルバーを作る。
39: 2019/07/31(水)23:34 ID:BcGPMjSP(2/2) AAS
君の言っていることの意味がよくわからない。
40: 2019/08/01(木)00:15 ID:i4UPQl8k(1) AAS
>>37
GJ
41: 2019/08/01(木)15:40 ID:eeSbVWum(1) AAS
>>38
大分前に作ったけど、コード紛失した。
アルゴリズムも忘れた。
ガーン。
42(1): 2019/08/01(木)15:47 ID:/tDwAGeP(1) AAS
年収n円の人が生活費と交遊費2種類だけで1年間の収入のすべてを消費するとして
税率がt1からt2に上がった時
税抜き価格ベースでの生活費が変動しないものと考えると
税抜き価格ベースでの交遊費の減少額はいくらになるか?
(端数は切り上げとする)
ex)
年収n=5,000,000
税率t1=8%
税率t2=10%
税抜き価格ベースでの生活費a
省5
43: 2019/08/01(木)16:10 ID:WaJjQk0q(1/2) AAS
>>42
wolfram
Simplify[ x-y, {5000000 == (a+x)*1.08,5000000 == (a+y)*1.1} ]
84175.1
44: 2019/08/01(木)16:16 ID:WaJjQk0q(2/2) AAS
切り上げか
Ceiling[ Simplify[ x-y, {5000000 ==(a+x)*1.08 == (a+y)*1.1} ] ]
84176
45(1): 2019/08/01(木)16:17 ID:9Ke7npq5(1/2) AAS
何も考えずにceiling(n/1.08-n/1.1)でいいんとちゃうけ?
46: 2019/08/01(木)19:07 ID:CMxA9z9p(1) AAS
>>32 Ruby
f = -> str {s = +str.delete(?\ ); (0..).each{|i| s.gsub!(/{}|\(\)/, '') || (break s.size.zero? ? i : -1)}}
['', '( )', '{ ( { ( ) } ( ) ) } ( )', '} {', '( { ) }'].each{|e| puts '%p => %d' % [e, f[e]]}
# =>
"" => 0
"( )" => 1
"{ ( { ( ) } ( ) ) } ( )" => 4
"} {" => -1
"( { ) }" => -1
47: 2019/08/01(木)21:02 ID:9Ke7npq5(2/2) AAS
>>45
ちょっと考えたらceiling(n/59.4)だったw
48(8): 2019/08/02(金)20:14 ID:fXsI78QL(1) AAS
お題: 数字が与えられるので、その数字を元の数より大きくなるように再構築せよ
大きくできなければ元の数字をそのまま出力せよ
例:
in < 123
out > 231, 213, 321, 312
in < 921
out > 921
49(1): 2019/08/02(金)20:54 ID:Awh9QXRy(1) AAS
123を入力したときに132が出力されないのはなぜ?
50: 2019/08/02(金)21:09 ID:ec2C26mu(1) AAS
パーミュテーション作って終わりじゃあないのコレ
51: 2019/08/02(金)21:52 ID:TUgs2HTj(1) AAS
>>49
ミスだよぉ!
52: 2019/08/02(金)22:45 ID:T1FFAKuC(1) AAS
そんなんばっかだなお前
53: 2019/08/03(土)01:06 ID:0ts56itm(1/2) AAS
>>48
外部リンク:ideone.com
C++。ご期待通り(?)にパーミテーション回してみたよ。
重いお。
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++。一応例題は解けたが妖しい処理になった。
上下前次1-新書関写板覧索設栞歴
あと 902 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s