プログラミングのお題スレ Part11
レス数が950を超えています。1000を超えると書き込みができなくなります。
>>849
数式というか文字が何を表しているのか分からない。最初の { の直前の _ は何を意味するんだ?
更に { } で括った部分と ( ) で括った部分の違いは?
まあわかったとしても解く気は起きないかも知れないので面倒なら解説しなくても良い。 >>849じゃないけど
_はΣの下
^はΣの上
テキスト限定でのよくある表記 >>852
そういう意味だとすると>>849はこうかな。
Kotlin
https://paiza.io/projects/3ObT5j3XNNkuKqDXdk6E7g
しかし、本当にこれで全てなのかは不明。
Double 型で計算できる所まで計算して結果が整数の時の n を出してるだけなので。 >>849
(1 + 2 ^ (2n + 1)) / (2n + 1) ^ 2
に変形できる
答えは多分n=1だけだと思う
python3で時間いっぱいまで総当たり
https://ideone.com/GGijCL >>849は数学オリンピックのマスターデーモンだな
答えはn=0, 1のみ >>857
あれ?そうなの?
じゃあプログラム何か間違ってんのかなあ? >>860
double型の精度の問題
計算結果は指数関数が支配しているからnが大きくなると有効桁数が足りなくなる >>861
なるほど。とすると32以上はもうダメな値ってことだな。
かといってBigDecimalとか使って延々と計算しても意味ないな。
数学的に答え出てるし。 質問スレからパクってきた配列の易しい問題
質問者は他レス見るにプログラミング自体経験なさそうだが
893 デフォルトの名無しさん (アウアウカー Sa8f-aTuM [182.250.241.36])[sage] 2018/09/08(土) 21:43:04.65 ID:6/Xg/XCUa
どこで質問するべき内容なのか迷っていたのですが調べているとプログラミング関係のようなのでここで質問させていただきます
例えば
1〜50までの数字の中で数字を10個ランダムで選ぶ乱数ツールは検索するとすぐにでてきます
しかし、自分が求めているものは2つあり
@
1〜50までの数字の中で2.16.22.23.42.50を除いて10個ランダムで選ぶことができるもの
A
1.2.5.6.16.18.20.21.23.28.30.33.39.4047.49.50の選択した数字中から10個ランダムで選ぶことができるもの
@とAで挙げた数字は適当ですが場合によっては@で除外した数字やAの選択した数字は変えたいです
このような場合自分でプログラミングしないといけないのでしょうか? >>864 Squeak/Pharo Smalltalk
"@"
((1 to: 50) copyWithoutAll: #(2 16 22 23 42.50)) shuffle first: 10.
"A"
#(1 2 5 6 16 18 20 21 23 28 30 33 39 40 47 49 50) shuffle first: 10. >>864 Ruby
([*1..50] - [2, 16, 22, 23, 42, 50]).sample(10)
[1, 2, 5, 6, 16, 18, 20, 21, 23, 28, 30, 33, 39, 40, 47, 49, 50].sample(10)
というか1~44までの数字の中で数字を10個ランダムで選ぶ乱数ツール使えばいいだけなのに質問者が謎 ロト6を当てたい一般人だろ
そんくらいは察してやれよ イ '、
/ ハ ',
i ハ ノ | i、 |
r‐-、 ,...,, | リ从-ノ ノリノノ-)リ、 l
:i! i! |: : i!| | リ ‐=・-; -・=‐ Y l イェ〜イ〜プログラミング好きなオタクみってるう?なんJ民デース!
! i!. | ;| . .i从 | ` ̄,:  ̄´ |从!
i! ヽ | | i リ,i ゚人,,__,,人:. | リ}
ゝ `-! :|! . ハ: i. , __ij..__ 、: 'iノ´
r'"~`ヾ、 i! 彡、 `Zエlフ'´ /ミ
,.ゝ、 r'""`ヽ、i! 彡イ\ ` ̄´ / ト ミ
!、 `ヽ、ー、 ヽ _/ ∧ > ―< ∧ \
| \ i:" ) ─ ' ¨: : : : | \ / |: : : \ なんj書き込んだキッズ
今度から一人で解決しようね🤗 >>871
>>873
実はこいつがなんJでスレ建てたんやで
>>868
は被害者や ここになんjに助けを求めたガイジはいませんかー?🙋
負け犬は何処かな🤔 なんJにスレ立ててまでするチンパンジーが見れると聞いて来ました 恥ずかしがらずに出てこいよ😘
ガイジくん😁
それとも顔真っ赤で出てこれないかな?🤔 意味わからないんだがw
ハンJでしょうもないプログラミングの質問した人がいたってことか? また日本語怪しいじゃん君なんJでもまともに喋れなかったよね? >>871が建てたのはこれかw
http://tomcat.2ch.s c/test/read.cgi/livejupiter/1536469396/ >>900でなんjをハンjと打ち間違える時点で通報騒動知ってるやつやん
>>872で自分に都合の悪いレスつくと本人認定するような奴だしなんでもかんでも人のせいにしてきたんだろうな あ、これ俺に成りすまして他板でクソスレ立てて人をこっちに呼び込んでんのね
今理解したわ
このスレの住人なら>>870-871程度のことで他の板にスレ立てるわけないってわかってもらえると思うけど
荒れると嫌なんでしばらくROMりますわ >>907
今理解したわとか嘘だろ
>>903で>>871が建てたと認定してる時点でお前はとっくにわかってただろ 単発ばっかだし質問を小馬鹿にされた質問者が自演で荒らしてんだろ
いちいち反応すんなkz >>909
kzとかいつの時代やねん
お前はミスターアンモナイトかwwwww a-zからなる単語のペアが与えられるのでそれぞれの元を辞書順にソートした上で同値類を求めなさい
なお同一のペアが2度以上入力されることはなく、また出力時の各行は順不同とする
例
-*- input -*-
goose pigeon
cat dog
eel goldfish
goose duck
horse dog
cod eel
dove pigeon
dog rhino
goldfish squid
goose lark
-*- output -*-
dove duck goose lark pigeon
cat dog horse rhino
cod eel goldfish squid >>912
入力のペア"A B"は A = B を表しているものとして等しいもの同士をグループにまとめて出力してねという問題
正確には「同値類に分割せよ」か「商集合を出力せよ」と言うべきだったか
例えば S = {A, B, C, D, E, F, G} に対して
A = B, C = A, D = F, E = G ……(☆) が成り立っているとすると
S の全ての要素は A = B = C と D = F と E = G っていう同じもの同士に分類できるよね
で (☆) の下で A の S における同値類とは {A, B, C} のことであり、
(☆) の下での S の商集合とは {{A, B, C}, {D, F}, {E, G}} のことを言うよ
問題を解く上で数学的な要素は無いから数学の言葉を使わないで出題すべきだった >>911 Squeak Smalltalk
| input groups |
input := 'goose pigeon
cat dog
eel goldfish
goose duck
horse dog
cod eel
dove pigeon
dog rhino
goldfish squid
goose lark'.
groups := OrderedCollection new.
input linesDo: [:line |
| pair |
pair := line subStrings.
(groups detect: [:group | group includesAnyOf: pair] ifNone: [groups add: Set new])
addAll: pair
].
(groups collect: [:each | each asSortedCollection joinSeparatedBy: ' ']) asStringWithCr
"=> 'dove duck goose lark pigeon
cat dog horse rhino
cod eel goldfish squid' " >>913
それは良いとしても>>911の問題における同値類とはなんなのか?
例として出されているのは入力が動物の名前のようで、出力は重複をなくした上で大まかな種類ごとに分類されているようではある。
しかしこのそれぞれの分類は一体いかなる基準によって同じと判別したのか?
もしこれが単語の意味、およびそれの分類(動物なら四つ足だとか哺乳類だとか)によって分けなければならないとすると、単語の意味やその分類がプログラムの側でわかっていなければならない。
しかも入力にはどんな単語が来るかわからないというのであれば辞書並みの単語数に関してそれを保持していなければまともに分類できない。 >>914
え?それでいいの?ペアになってるなつが同じ種類ってこと? >>915-916
>入力のペア"A B"は A = B を表している なるほど。また最初の問題が不備で無限の回答が出るか一つも回答が出ないパターンだったと。 見た感じ問題に不備はない
まだ何か勘違いしてるのでは >>911 Squeak Smalltalk (>>914 は入力順等によっては機能しないので差し替え)
| fn input |
fn := [:str |
| groups |
groups := OrderedCollection new.
str linesDo: [:line |
| pair found |
pair := line subStrings asSet.
found := (groups select: [:group | group includesAnyOf: pair])
ifEmpty: [{groups add: Set new}].
groups removeAll: found; add: (found inject: pair into: #,)
].
(groups collect: [:group | group asSortedCollection joinSeparatedBy: ' ']) asStringWithCr
].
input := 'goose pigeon
以下略'.
fn value: input.
"=> 'cat dog horse rhino
cod eel goldfish squid
dove duck goose lark pigeon' "
fn value: input, String cr, 'squid lark'.
"=> 'cat dog horse rhino
cod dove duck eel goldfish goose lark pigeon squid' " >>917
「それぞれの元を辞書順にソートした上で」
これは間違いってことね。 cat dog horse rhinoとかってアルファベット順に出力するよう要請してるのだから少なくともそのフレーズに間違いはないよ >>911 「cat cat」とか重複するペアとか任意のペアが来てもオッケーなバージョン
def qs(er)
h = Hash.new Float::INFINITY
erc = 0
er.each do |r|
min = r.map{|e| h[e]}.min
ern = min == Float::INFINITY ? erc += 1 : min
r.each{|e| h[e] = ern}
end
h.group_by(&:last).values.map{|s| s.map(&:first).sort}
end
er = $<.readlines.map &:split
puts qs(er).map{|a| a * ' '} * $/
#=>
dove duck goose lark pigeon
cat dog horse rhino
cod eel goldfish squid >>923
その実装だと仮に squid lark のペアが末尾に追加されたとき
すでにある goldfish squid がキャンセルされちゃうけど?
https://ideone.com/sbA9P5 >>926
よーわからんがペアの両方が既知の場合のマージ処理が抜けてない?
A B
C D
A C
の場合とか >>911の例をマージが必要になる順とかにしといてくれてれば… >>911 perl
%h;
while(<>){
chomp;
($f, $s) = split/ /;#first, second
undef $keyf;
undef $keys;
for $k (keys %h){
$keyf = $k if grep /$f/, @{$h{$k}};
$keys = $k if grep /$s/, @{$h{$k}};
}
if(!defined $keyf and !defined $keys){
push @{$h{$.}}, $f;
push @{$h{$.}}, $s;
}else{
push @{$h{$keys}}, $f unless defined $keyf;
push @{$h{$keyf}}, $s unless defined $keys;
}
}
map{print join " ", (sort{$a cmp $b}@{$h{$_}}), "\n"}keys %h; >>927
両方が既に入ってるなら何もする必要ないと思うのだが。 >>911 >>932
%h;
while(<>){
chomp;
($f, $s) = split / /;#first, second
undef $keyf;
undef $keys;
for $k (keys %h){
$keyf = $k if grep /$f/, @{$h{$k}};
$keys = $k if grep /$s/, @{$h{$k}};
}
if(!defined $keyf and !defined $keys){
push @{$h{$.}}, $f;
push @{$h{$.}}, $s;
}elsif( (defined $keyf and defined $keys) and !($f eq $s) ){#merge
push @{$h{$keys}}, @{$h{$keyf}};
delete $h{$keyf};
}else{
push @{$h{$keys}}, $f unless defined $keyf;
push @{$h{$keyf}}, $s unless defined $keys;
}
}
map{print join " ", (sort{$a cmp $b} @{$h{$_}}), "\n"} sort{$a <=> $b} keys %h; >>932
あー。なるほど。そういうことか。
また考えよう。 >>935
差し支えなければ修正前のコードも別URLで再掲載してもらえますか?
あるいは公開バージョンの履歴や差分を参照する機能がpaoza.ioにあったら教えてください
くしくもマージを考慮「しない版」と「する版」が出揃ったのでどういう修正で対処したか調べると
それぞれの言語の(あるいはアルゴリズムの)特徴が際立って面白いのではないかなぁとふと思ったので >>936
すまん。前の版はもうない。paiza.ioはそういう機能はない。
思い出して時間があったらなんとかする。 >>937
あーいやそこまでしなくても結構です。ありがとうございます! 結構みんな人の書いたコード読んでるんだな
いい意味でびっくり レス数が950を超えています。1000を超えると書き込みができなくなります。