[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/06 02:40 / Filesize : 313 KB / Number-of Response : 1026
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングのお題スレ Part11



1 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 20:45:14.49 ID:ZY7R7Sru.net]
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part10
https://mevius.5ch.net/test/read.cgi/tech/1514772904/

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
codepad.org/
compileonline.com/
rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

712 名前:デフォルトの名無しさん [2018/08/02(木) 01:04:29.34 ID:vClc7nAi.net]
あれ?\n が抜けた。
これね。

awk '{printf "%.3f℃\n", $1 / 1000}' /sys/class/thermal/thermal_zone0/temp

713 名前:デフォルトの名無しさん mailto:sage [2018/08/02(木) 02:37:36.98 ID:aTwsiZBG.net]
>>680 C
https://ideone.com/Xpz0s9

714 名前:デフォルトの名無しさん mailto:sage [2018/08/02(木) 19:31:00.50 ID:zwgkA1lD.net]
8888

715 名前:デフォルトの名無しさん [2018/08/10(金) 02:32:41.77 ID:3Gbr2Rmh.net]
鈴木貫太郎
灘中 中学入試問題シリーズ 整数問題
https://youtu.be/98U2qVDQltc

6桁の整数、5AB,C15 が999 の倍数である時、ABC を求めよ

答え
A=8, B=4, C=4

716 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 02:38:30.89 ID:4W08/YUW.net]
数学板でやれ

717 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 04:25:49.65 ID:MBG3l1c9.net]
>>697 C
https://ideone.com/fQBfz1

718 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 04:27:27.01 ID:MBG3l1c9.net]
お題:与えられた正の整数nを2進数〜16進数に変換して表示する。
11進数以降の10以上を表す文字はABCDEFを使用。
(10=A, 11=B, 12=C, 13=D, 14=E, 15=F)
例:12進数の11 ---> B

出力例:
n=123456
base(2) ---> 11110001001000000
base(3) ---> 20021100110
base(4) ---> 132021000
base(5) ---> 12422311
base(6) ---> 2351320
base(7) ---> 1022634
base(8) ---> 361100
base(9) ---> 207313
base(10) ---> 123456
base(11) ---> 84833
base(12) ---> 5B540
base(13) ---> 44268
base(14) ---> 32DC4
base(15) ---> 268A6
base(16) ---> 1E240

719 名前: mailto:sage [2018/08/10(金) 07:06:46.57 ID:H9lF8aPc.net]
>>700
mevius.2ch.net/test/read.cgi/tech/1480579110/909
https://mevius.5ch.net/test/read.cgi/tech/1434079972/29

720 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 10:02:14.32 ID:GIxLf6/p.net]
>>697
500015 + <ABC00> = 0 mod 999
<=> 4151 + <ABC> = 0 mod 999
<=> 4151 + <ABC> = 999*5
<=> <ABC> = 844

>>700 Ruby
#!ruby -p
b, n = $_.scan(/\d+/).map &:to_i
puts n.to_s(b).upcase
#=>
12進数の11
B
2進数の123456
11110001001000000
3進数の123456
20021100110
16進数の123456
1E240



721 名前:デフォルトの名無しさん [2018/08/10(金) 10:56:59.12 ID:EBuB6o8O.net]
>>697
何も考えてないPerlのワンライナー

perl -e 'for(0..999){$n=sprintf"5%03d15",$_;if($n%999==0){print"$n\n"}}'
584415

722 名前:デフォルトの名無しさん [2018/08/10(金) 11:16:24.27 ID:EBuB6o8O.net]
>>700
Linux等で動くGNUのbcコマンド
プログラムをファイルに入れておいてbcの引数で指定し、変換させたい数値は標準入力から読ませる。

ibase = 10
n = read()
for (i = 2; i <= 16; i++) {
obase = 10
print "base(", i, ") --> "
obase = i
print n, "\n"
}

723 名前:デフォルトの名無しさん [2018/08/10(金) 11:38:51.00 ID:EBuB6o8O.net]
>>700
Kotlin
https://paiza.io/projects/DLXMRKXWtRvwOyxd6wDtRw

724 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 14:15:41.82 ID:xmypHVHY.net]
>>700
C
https://ideone.com/5bUk4j

725 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 14:48:17.70 ID:MBG3l1c9.net]
>>701
既出でしたか 失礼しました
では追加でもう1つ

お題:
時間を表わす文字列(hh:mm:ss形式の8文字)の秒数を求める
最上位の時間だけは99時間を超えた場合拡張される
例:123時間45分6秒 ---> 123:45:06

出力例:
01:23:45 = 5025 sec
333:33:33 = 1200813 sec

出題者の回答例:C言語 https://ideone.com/pnrcQ6

726 名前:デフォルトの名無しさん [2018/08/10(金) 17:50:01.60 ID:q2LOavXt.net]
>>700
C言語 (再帰処理)
https://paiza.io/projects/-8zTD_hGtIvLskFVO3sCZw

727 名前:デフォルトの名無しさん [2018/08/10(金) 17:57:07.00 ID:q2LOavXt.net]
>>707
Perl

https://paiza.io/projects/g2tBzJeNk0M_FJZMylBjuA

ワンライナーにもできるが、今回はこれで。

728 名前:デフォルトの名無しさん [2018/08/10(金) 18:25:42.14 ID:q2LOavXt.net]
>>707
bash

https://paiza.io/projects/_3ZfQe1fXiGUBKS_z3JrJg

729 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 18:30:15.99 ID:GIxLf6/p.net]
>>707 Ruby ゴルフ気分で
#!ruby -palF:
$_='%d sec'%(0..2).map{|i|$F[~i].to_i*60**i}.sum

# input
01:23:45
333:33:33

# output
5025 sec
1200813 sec

730 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 18:40:53.56 ID:splKqZqj.net]
>>707
bash (かぶった)
https://paiza.io/projects/ESODDaszatdKxnhAzHsFWA



731 名前:709 [2018/08/10(金) 19:22:50.97 ID:q2LOavXt.net]
>>712
あ、そうか。その方が簡単だな。

732 名前: mailto:sage [2018/08/10(金) 23:01:27.70 ID:H9lF8aPc.net]
お題:10兆までの素数のリストを作ってみませんか?
https://tech.nikkeibp.co.jp/it/article/Watcher/20100519/348242/

条件:既存のライブラリ、モジュール、外部コマンド等を利用するのは不可
すべて自分で記述すること
int64_t, uint64_t の使用は許可する

733 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 00:01:26.30 ID:DgZEeL87.net]
Ruby では百万までで、処理に数秒掛かって、78,498個の素数があった

class PrimeNumber # 素数
def initialize (to = 20)
@to = to
@prime_numbers = []
end

def add_table (n)
limit = Math.sqrt(n).ceil

@prime_numbers.each do |prime_num|
# 割り切れたら、素数ではない
return if n % prime_num == 0
# sqrt より大きいなら、確かめずとも素数である
break if limit < prime_num
end
@prime_numbers.push n # 割り切れない
end

def print
(2..@to).each do |n|
add_table n
end
puts @prime_numbers.length
end
end

734 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 02:38:16.74 ID:7kLiHGgf.net]
>>714
perl

一応これで理屈の上ではできるとは思うんだが、477577まで行ったところでアホらしくなって止めたw

#!/usr/bin/perl

use strict;
use warnings;

my @pn = (2);

my $n = 1;

print "$n: $pn[0]\n";

$n++;

LOOP:
for (my $i = 3; $i <= 10000000000000; $i += 2) {
 for (@pn) {
  next LOOP unless ($i % $_);
 }
 push(@pn, $i);
 print "$n: $i\n";
 $n++;
}

735 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 03:54:44.08 ID:QfTJwHhj.net]
>>714 Ruby
10兆なら改良されたAtkinの篩を使ってガシガシやるしかないだろう
citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.192.4926&rep=rep1&type=pdf

sup = 10**7
primes = [2, 3]
5.step(sup, 6){|i|
2.times{
primes << i if primes.none?{|pr| break true if pr*pr > i; i % pr == 0}
i += 2
}
}
primes.pop if primes[-1] > sup
p primes.size #=> 664579

736 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 07:04:06.66 ID:N9ICkOCi.net]
>>714
昔やった
アセンブラ & AVX & マルチスレッド
探してみる

737 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 07:37:04.51 ID:N9ICkOCi.net]
みつかりました
そんなに昔じゃなかった
2年半前
41兆くらいまで求めてます

マルチスレッドではありませんでした
処理内容はよく覚えていません

素数表作成
ビットパターン作成
ふるい

のようなコメントがあります

105単位でなにかやってます

738 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 09:37:18.90 ID:y6G1YdWM.net]
だんだん思い出してきました
6n+1, 6n+5 に対応するビット列を保持
小さな素数の倍数はマスクを作ってAVX命令でANDしていって
大きな素数の倍数はp(210n+48個の値) にしぼって
ビット命令でひたすらふるう感じ

キャッシュサイズを考えて小さなバッファでやってます

739 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 16:27:34.72 ID:VD7zYIqC.net]
いいからコード貼れや

740 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 13:15:41.49 ID:DNU8qmV7.net]
お題:
ロト6で申込数字のいずれかが必ず5等以上に当選する
最小の申込数字の組み合わせを作ってください

ロト6は01〜43の数字から異なる数字6個を順番不問で選び
申込数字6個のうち3個以上が本数字と一致すれば5等以上に当選となります



741 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 14:21:49.33 ID:ZHEExUj+.net]
>>722
・5等の当選条件を満たしている
・5等以上のいずれかの当選条件を満たしている
この2つは同値なの?

742 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 14:57:56.60 ID:1gNSypiF.net]
>>723
それを聞いてどうするの?

743 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 15:09:35.79 ID:ZHEExUj+.net]
>>724
1〜5等に該当するならば必ず当選番号と同じ数字が少なくとも3つ入っているということがはっきりしない限り解けないでしょ

744 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 15:11:11.96 ID:ZHEExUj+.net]
ごめん
申込数字6個のうち3個以上が本数字と一致すれば5等以上に当選となります

申込数字6個のうち3個以上が本数字と一致すれば5等に当選となります
と読み間違えてたわ

745 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 15:14:32.85 ID:1gNSypiF.net]
>>723>>725の質問内容が違う件

746 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 15:17:25.19 ID:ZHEExUj+.net]
>>727
同値だよ

747 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 15:22:10.21 ID:O4fOyJLk.net]
15万個くらいの数字を吐き出して終わり?

748 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 15:26:16.88 ID:1gNSypiF.net]
>>728
>>723>>722とは無関係だが
>>725は(>>722の解釈次第では)無関係ではない

749 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 15:29:22.68 ID:1gNSypiF.net]
>>725
3個以上一致 <===> 5等以上に当選
3個以上一致 ====> 5等以上に当選
のどちらかをたずねたのかと思った

750 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 15:39:13.61 ID:ZHEExUj+.net]
>>731
そもそもこっちが>>723>>725で「申込数字6個のうち3個ちょうど本数字と一致すれば5等に当選」って誤解してたのが始まりなんだ
わけわかんないこと言ってごめんね



751 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 17:47:14.42 ID:9O3GHV+n.net]
>>707 Squeak Smalltalk

('01:23:45' subStrings: ':') reversed polynomialEval: 60 "=> 5025 "
('333:33:33' subStrings: ':') reversed polynomialEval: 60 "=> 1200813 "


Pharo Smalltalk

(('01:23:45' substrings: ':') collect: #asInteger) reversed polynomialEval: 60 "=> 5025 "
(('333:33:33' substrings: ':') collect: #asInteger) reversed polynomialEval: 60 "=> 1200813 "

752 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 18:43:07.08 ID:9O3GHV+n.net]
>>714 Squeak/Pharo Smalltalk で 100億まで

| count |
count := 0.
Integer primesUpTo: 1e10 do: [:prime | count := count + 1].
count '=> 455052511 '

組み込みだけど、書くとしても同じアルゴリズムで書くと思うので…

https://ideone.com/zKMZYx

753 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 21:48:09.01 ID:cX8lnXZC.net]
>>722 C++
https://ideone.com/gCsPec

コンビネーション使う方法と、確率DPの二通りでやってみた。

(ちなみに5個当り222本は 6本が2等で、216本が3等)

※確率、期待値系は苦手だ

754 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 21:51:28.06 ID:AkqOEQdA.net]
お題:ローカルホストの一覧を出力しなさい

755 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 23:20:11.13 ID:YPN3vVTA.net]
>>735
>>722って、
・抽選される6個の数字が43C6通りのどの組み合わせでも5等以上が当たるようにくじを買う。
・くじの購入数はできるだけ少なくなるようにする。
ってことじゃないのん?

756 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 23:45:52.09 ID:3JJNsMDc.net]
それ以外にどんな解釈が?

757 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 00:22:36.49 ID:yY3qu6sZ.net]
>>737
完全に恥ずかしい誤読しました。

758 名前:デフォルトの名無しさん [2018/08/13(月) 04:38:57.55 ID:z6+TJcGX.net]
>>736
いいのかこんなんで?

cd /etc
grep localhost hosts

759 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 09:43:58.01 ID:ux+ef9t8.net]
>> 699 Ruby
実数、逆関数
https://ideone.com/lflSc0

760 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 15:57:52.91 ID:LVcLEl+f.net]
>>736
訂正
お題:LANに繋がっているホストの一覧を出力しなさい



761 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 16:34:44.91 ID:z6+TJcGX.net]
>>742
Linux 等の UNIX 系OSで

ping -b ブロードキャストアドレス

とやると同じセグメントに繋がっているやつは ICMP ECHO を返して来て IP アドレスが分かるかも知れない。
但しファイヤーウォールの設定で返さないかも知れない。また他のセグメントにはパケット送らないのでわからない。

762 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 16:35:44.08 ID:z6+TJcGX.net]
あ、ごめん。これは IPv4 限定の話かも知れない。

763 名前:デフォルトの名無しさん mailto:sage [2018/08/17(金) 15:41:32.33 ID:N93NyTwd.net]
身長と体重がいくつか与えられるのでBMIを求めなさい
なお身長と体重は1以上1000未満の整数とする
出力精度は小数第三位を四捨五入
各言語で一番短くかけた人が勝ち

例 ruby
while gets

end

# input
150 50
160 55
180 120

# output

764 名前:デフォルトの名無しさん mailto:sage [2018/08/17(金) 15:47:03.36 ID:N93NyTwd.net]
ミスった。

単位は身長cm, 体重kg

例 ruby
while gets
 h, w = $_.split.map &:to_i
 puts '%.2f' % (1e4 * w / h**2)
end

# input
150 50
160 55
180 120
150 225

# output
22.22
21.48
37.04
100.00

765 名前:デフォルトの名無しさん mailto:sage [2018/08/17(金) 17:20:36.25 ID:6wrElEJt.net]
https://ideone.com/lsWdqo

766 名前:デフォルトの名無しさん mailto:sage [2018/08/17(金) 19:23:09.62 ID:N93NyTwd.net]
>>747
67Bまで縮めてみた
C
https://ideone.com/ivxfS2

767 名前:デフォルトの名無しさん [2018/08/17(金) 21:08:30.56 ID:7hC1UKUq.net]
>>745
Perl
https://paiza.io/projects/4DM4_8fx_EiOXO4D3aOV4A

普通ならダブルクォーテーション使いそうな箇所で qq() 使ってクォートしている理由は今Androidのタブレット使っててうまく入力出来なかったため。

768 名前:デフォルトの名無しさん mailto:sage [2018/08/17(金) 23:22:41.44 ID:eWaVkn5S.net]
>>746
Python3で66バイト
https://ideone.com/qWiKey

769 名前:デフォルトの名無しさん [2018/08/18(土) 02:50:37.57 ID:K3y6E3T8.net]
鈴木貫太郎
灘中
https://youtu.be/BnS7vMsVV2s

6桁の整数、ABCDEF の一番上の位のAを、
一の位へ移動した数、BCDEFA が、元の数の3倍になるとき、
この条件を満たす、元の数をすべて(2つ)答えよ

ヒント。x = BCDEF とおいて考える

答え、142857, 285714

770 名前: mailto:sage [2018/08/18(土) 07:04:47.65 ID:/9y7PjMS.net]
>>751
n/7 循環列問題ですか…



771 名前:デフォルトの名無しさん mailto:sage [2018/08/18(土) 15:32:13.56 ID:h7OdrOPI.net]
>>745
Ruby 43 bytes
#!ruby -pa
$_='%.2f'%eval('1e4/'+$F*'**2*')

>>751
3 * ABCDEF = BCDEFA ∧ A != 0
<=> 42857 * A = BCDEF ∧ A != 0
<=> 42857 * A = BCDEF ∧ A = 1, 2
<=> ABCDEF = 142857, 285714

772 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 01:16:27.70 ID:tX8wxXbT.net]
>>751 C(ただの力技)
https://ideone.com/MljBH1

773 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 01:18:54.67 ID:tX8wxXbT.net]
お題:
1.BINGOカードを作る
2.BINGO抽選機を作る

ここで使われるビンゴカードは5x5のマス目に1から75までの数字が
ランダムに配置されており、数字が見つけやすいように左の列から
B列(1〜15), I列(16〜30), N列(31〜45), G列(46〜60), O列(61〜75)が
配置された一般的によく使われるタイプ。
5x5のマスの中央はFree(すでに開いた状態)。

出力例:https://ideone.com/R6eADP
(この形に従う必要はないです)

回答例(C言語):
 カード作成 https://ideone.com/aJBJ9v
 抽選機 https://ideone.com/NuIRYm

774 名前:デフォルトの名無しさん [2018/08/19(日) 03:52:23.20 ID:FQWxbBlW.net]
>>751
Kotlin
https://paiza.io/projects/BFd9v2qeKaNcdssTQuj5Jw

これも力業だな。ただループして調べているだけ。
尚、最上位桁が0の場合も含めると0も該当する値になる。

775 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 04:55:18.29 ID:FQWxbBlW.net]
>>755
Kotlin
カード作成 https://paiza.io/projects/YeZEal6Ke6l3goeaDt9JuQ
抽選機 https://paiza.io/projects/j-F4qhKHa_nNTCBEtFbk_w

776 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 02:30:06.13 ID:V9a8ZDkH.net]
>>755
Perl
カード生成 https://ideone.com/82oHLD
抽選機 https://ideone.com/ZICMOi

777 名前:UNIXプログラミング質問スレより mailto:sage [2018/08/21(火) 03:04:43.91 ID:34Jmks75.net]
お題:【構造のあるテキストの処理】各項目の内容をそれぞれソートして元のテキストに埋め込め。
====== 標準入力 ==========
* Fruit
apple
banana
orange
banana

* Animal
dog
cat
penguin

====== 標準出力 ==========
* Fruit
apple
banana
orange

* Animal
cat
dog
penguin

条件:ソートには外部コマンドを用いること。

778 名前:758 mailto:sage [2018/08/21(火) 03:11:53.68 ID:34Jmks75.net]
ソートに外部コマンドを使うのは、テキストの処理を取り替える拡張を想定しています。
例えば sort -u コマンドを tr '[a-z]' '[A-Z]' に置き換えて
* Fruit
APPLE
のようにできるようにしたい。

UNIXプログラミング質問スレにて、
このような処理はシェルスクリプトには荷が重く Powershell や Ruby が向いている、みたいなことを伺いました。
ぜひ回答を参考にしたいです。

779 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 14:35:58.26 ID:2YpoFUMY.net]
>>759 Ruby

ext_cmd = 'sort -u'

ary = $<.read.scan(/\*.*?\n(?:(?=\n)|\z)/m)
str = ary.map.with_index do |s, i|
  temp_fname = "temp#{i}"
  File.write(temp_fname, s[/\n\K.*/m])
  heading = s[/\A.*/]
  execed = `#{ext_cmd} #{temp_fname}`
  File.delete(temp_fname)
  [heading, execed] * $/
end

puts str * $/

780 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 14:40:47.02 ID:2YpoFUMY.net]
catを使うように修正
catのヒアドキュメントさえ使えれば一時ファイル作らなくて済むんだけど

ext_cmd = 'tr a-z A-Z'

ary = $<.read.scan(/\*.*?\n(?:(?=\n)|\z)/m)
str = ary.map.with_index do |s, i|
  temp_fname = "temp#{i}"
  File.write(temp_fname, s[/\n\K.*/m])
  heading = s[/\A.*/]
  execed = `cat #{temp_fname}|#{ext_cmd}`
  File.delete(temp_fname)
  [heading, execed] * $/
end

puts str * $/



781 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 01:46:46.02 ID:wb9Zg9xS.net]
>>759
Perl
https://paiza.io/projects/8vYRslCsu29ZvqFXGkZC7A

項目の区切りは連続した2つの改行になってます。

782 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 01:56:27.69 ID:PmiUKg2L.net]
>>759 zsh
setopt rcquotes; sed -n '/^*/h; /^*/!{x;p;x;p;}' | paste - - \
| awk -F' ' -v OFS=' ' '$2 { print $1,$2 } ! $2 { printf "%c",0 }' \
| xargs -0 -n 1 -I@ -- zsh -c 'echo ''@'' | tee >(read -e | cut -f 1) | sed ''$d;'' | cut -f 2 | sort -u ;echo'

null区切りでチャンク分け。構造がもっと複雑になるとこの方針では対応できない。

783 名前:デフォルトの名無しさん [2018/08/22(水) 03:09:32.13 ID:wb9Zg9xS.net]
>>759
bash
https://paiza.io/projects/Xq6KyZBO0dqynoJNUYhlEg

784 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 04:46:03.18 ID:h82tfzI1.net]
単純に、別々のファイルに、分割すれば良いのでは?

* Fruit のファイル
* Animal のファイル

各ファイルを、sort, unique する

785 名前:765 mailto:sage [2018/08/22(水) 05:05:39.72 ID:h82tfzI1.net]
一旦、別々のファイルにしたなら、PowerShell で、

cat .\test.txt | sort | gu

gu は、Get-Unique のエイリアス。
漏れのPowerShell では、uniq のエイリアスは使えない

786 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 08:57:59.02 ID:AfGRGNs6.net]
このスレでbashが多いのは何故?

787 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 09:06:48.94 ID:AfGRGNs6.net]
今見返したらそんなに多くなかった‥

788 名前:デフォルトの名無しさん [2018/08/22(水) 09:44:37.32 ID:zudhoHB+.net]
>>768
Linuxのディストリビューションでは最初からインストールされてるのがよくあってある程度有名で、sh互換でshしか知らなくても書けるからではないかな。
それとWebの実行環境があるというのも理由かも。こういう所で公開するのには都合が良い。

789 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:27:54.30 ID:AfGRGNs6.net]
>>770
そうなんですね!
みんなの回答見てると正規表現や少ないコードや難しい表現でコーディングできてて関心します‥
自分にはとても到達出来ない‥

790 名前:泣gの名無しさん mailto:sage [2018/08/22(水) 15:46:06.44 ID:PmiUKg2L.net]
>>759 zsh
setopt rcquotes; sed -E -e 's:^(\* .*):{ echo ''\1''; sort -u; echo } << *:' -e 's:^$:*:' | zsh
xargsの区切り文字の辛さからは開放されたが、echo ''\1'' がイマイチだ。

なるほど、構造のあるデータはむしろファイル階層として表現したほうが自然か…



791 名前:デフォルトの名無しさん [2018/08/22(水) 23:06:19.28 ID:YlEU3d3x.net]
>>759 Vim
$ cat odai-pt11-758.input | vim -es '+:g /\%(^\*.*\n\)\@<=/,/[ \t\n]*\%(\n\*.*\|\%$\)/ !sort | tr a-z A-Z | nl' '+%p' '+:q!' /dev/stdin
* Fruit
1 APPLE
2 BANANA
3 BANANA
4 ORANGE

* Animal
1 CAT
2 DOG
3 PENGUIN
$

792 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 23:55:42.77 ID:h82tfzI1.net]
64ビットWindows10 なら、WSL で、Ubuntu を入れると、
bash, vim, Python は最初から入っている

WindowsのExplorer では、BOMなしUTF-8 のファイルは検索できないから、
WSL でLinux側から、grep で検索している

シェルスクリプトの欠点は、パイプラインがテキスト渡しになる。
オブジェクトの型が無くなって、すべて文字列になる

一方、PowerShell ではオブジェクト渡しだから、オブジェクトの構造・型が維持できる

>>759-760
外部コマンドを切り替えるという抽象的な処理を、処理間にはさむのは難しい。
すべての処理の冒頭か最後で、一括でフィルターする方がバグらない

793 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 00:19:08.54 ID:FMBOl46f.net]
>>774
なるほど…
Powershellでの完全な回答例を見せていただけませんか?
標準入力からファイルに落として出力に吐くまで。オブジェクト渡しの雰囲気を感じたいです。

794 名前:765 mailto:sage [2018/08/23(木) 09:28:38.07 ID:qUZ5eK5Q.net]
Set-PSDebug -Strict # 変数宣言を強制する

$file = ( cat in.txt ) # 入力ファイル
$dat_basenames = @() # 拡張子なしのファイル名の配列

foreach ( $line in $file ) { # 各行
if( $line.Length -eq 0 ){ continue } # 空行は処理しない

if ( $line.Substring( 0, 1 ) -eq '*' ) { # 1文字目が、* なら
$fname = $line.Substring( 2 )
$dat_basenames += $fname # 追加
$fname += '.dat' # 拡張子つき
} else {
Add-Content $fname $line # 追記
}
}

foreach ( $dbname in $dat_basenames ) { # 各 .dat ファイル
$fname = $dbname + '.dat' # 拡張子つき
$str = "* ${dbname}`r`n"
$tmp = cat $fname | sort | gu # sort, unique
$str += ( $tmp -join "`r`n" ) # 改行区切り
echo $str
}

PowerShell で作った。
cd で、作業フォルダへ移動してから実行して

入力ファイル、in.txt から、各ファイルへ分割する。
分割後のファイル名を、Fruit.dat, Animal.dat として、各ファイルを処理した

795 名前:デフォルトの名無しさん [2018/08/24(金) 05:00:24.02 ID:QxK4Y8yu.net]
点が10個一直線に並んでおり、各点が他の点との右方向の距離をいくつか知っている時、最も左にある点を求めよ

最も左にある点が求められない時はあと何の情報があれば求められるのかを最低個数で列挙すること

例1
a,b,cの点がある。
a点はb点が30右にあることを知っている。
b点は何も知らない。
c点はb点が-40右にあることをしっている。
結果
最も左にある点はa点

例2
a,b,c,dの点がある。
a点はb点が30右にあることを知っている。
b点は何も知らない
c点はd点が20右にあることを知っている。
d点は何も知らない。
結果
求められない。必要な情報は
a点からc点までの距離

796 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 05:58:44.74 ID:rBPgXHvS.net]
>>777
実際に自分で書いてみて、求められたら解答例を提示できる?

797 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:02:12.41 ID:ZkSPfVdV.net]
「知っている」の主語が点に見えるけど
そうじゃないよね?

なんでそういう文にしたの?

798 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 10:33:50.94 ID:phPhGhWW.net]
連結リストを使って、出来上がったグラフが連結なら求められる
つまり、出来上がったグラフが二つ三つそれ以上に分かれている非連結グラフになってると、距離は分からない

……直感的には多分こうだが、何かしらの証明は必要
「連結グラフだが距離が分からない」反例があればいい

799 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 11:28:11.41 ID:qtSNV1ih.net]
>>777
点が10個あるなら例1,2両方とも判断不能。どっちもあと最低7個必要
しかも直線がRなのかR∪∞∪-∞なのかで解が変わるから提示しろ
あと出力はともかくデータの与えられ方くらい提示しろ

800 名前:765 mailto:sage [2018/08/24(金) 12:34:38.87 ID:ZgK6e0Tb.net]
text = File.read 'in.txt' # 入力ファイル

header = ""
str_hash = { }
result = [ ]

def sort_string ( head, hash, res )
res.push head
Hash[ hash.sort ].each_key { |key| res.push key } # sort
hash.clear # 空にする
end

text.each_line do |line| # 各行
line.chomp! # 末尾の改行を削除する
next if line.empty? # 空文字は処理しない

if line.start_with? '*' # 先頭文字が、* なら
sort_string( header, str_hash, result ) unless str_hash.empty? # 空でなければ
header = line
else
str_hash[ line ] = true
end
end

sort_string( header, str_hash, result )
puts result

Ruby で作った。
PowerShell よりは断然、作りやすい。
ただ、sort_string( ) を2か所で呼ぶのが、ダサイ



801 名前:デフォルトの名無しさん [2018/08/25(土) 17:43:06.40 ID:nE7N9dPk.net]
お題
将棋の初期状態の駒40枚を
利き筋に他の駒がないように配置する

802 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:05:04.08 ID:486ljwsa.net]
1000垓通り表示しろとでも?

803 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:45:34.12 ID:WT6GNhg9.net]
明記されてない条件は好きにしていいのがこのスレのルールですよ

804 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:55:52.54 ID:N/q1MSK+.net]
お題を出す前に出題者は自分の解答を(解くことが可能かの確認も兼ね)作っておくのもルールだ
適切な入出力例や問題文にあるべき条件が抜けてるっていうのはそれをやってない証拠

805 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 22:57:36.63 ID:yggGxXGy.net]
>>783
有名な作品がいくつかあるね
全て同じ方向を向いたヤツも

>>784
全ての組み合わせを数えた人がいるの?

806 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 08:39:25.15 ID:8NHhsyIb.net]
トランプの配置についてのアルゴリズムを考えてます。
トランプの横幅をX
トランプの高さをYとし
並べるトランプは偶数枚
全てのトランプを配置した時の全体を、トランプ配置と呼ぶとして
トランプ配置の横幅と縦幅の割合を、おおよそX:Yとしたい

この場合、アルゴリズムはどう考えたらいいでしょうか?

807 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:35:40.65 ID:/JFPzkHn.net]
ゴリ押しの総当たり

並べる枚数横にx縦にyが無尽蔵に大きくなれば比率に近づく
並べるトランプの上限が決まって無くて偶数枚だけが条件なら延々と並べる枚数を増やせばいい
一兆枚くらい並べれば比率はX/Yに近づく
1000000000億兆枚くらいのトランプを使えば横幅X高さYなんて充分に蟲出来るから全体の割合を調整するのは枚数が多ければ多いほどラク
10那由多ほど並べれば、本当にカードは点くらいなもので、縦横比率はx、yの枚数だけで決まる

808 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:52:42.49 ID:O9adGcKd.net]
>>788
おおよそとかいまいちよくわからん
例を示して

809 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:59:10.89 ID:O9adGcKd.net]
>>789
バカなの?
> 並べるトランプの上限が決まって無くて偶数枚だけが条件
なら、縦横2枚ずつ(計4枚)並べればいいだけ

810 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 11:08:57.34 ID:MXsSoN4T.net]
n枚をnX nYの長方形の対角線上に斜めにならべれば
X:Yになるけど

問題あってる?



811 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:16:22.70 ID:HHP/3bjy.net]
>>788
┌─┐
│ ?│
└─┘
これを偶数枚並べて縦横比同じにするなら
こうだよね

┌─┬─┐
│ ?│ ?│
├─┼─┤
│ ?│ ?│
└─┴─┘
アルゴリズムもクソもないように思うのだが?
問題の書き方間違ってない?

812 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:22:25.82 ID:6zIp6UvA.net]
さすがに、
枚数は外から与えられるのでは?

813 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:57:45.44 ID:2xrJOS4Z.net]
枚数nに対して p * q = n を満たす正の整数 p, q の内 |p - q| / |p^2 + q^2| が最小になる組み合わせを求めるだけでしょ?

814 名前: mailto:sage [2018/08/26(日) 23:44:29.53 ID:TLwXHnMN.net]
https://mevius.5ch.net/test/read.cgi/tech/1480579110/981
に引き続いて、現に困ってしまった問題を出題

windows コマンドラインの xcopy コマンドを実装せよ
コマンドラインから「xcopy パス1 パス2」 と入力すると
パス1 以下にあるファイルをすべてパス2以下にコピーするようにせよ
ディレクトリについては、再帰的にコピーせよ

・現実の xcopy コマンドには色々なオプションがあるが、それは実装しなくてもよい
・読み込み対象のファイルの属性については考慮しなくてよい、読み込めるファイルのみ所定のパスにコピーできればそれでよい
・その他、コピーに問題のある状態が発生したときには、標準エラー出力にエラー内容を表示すればそれでいい

Windows Update の度にPCが激遅になるのに堪えかねて、C ドライブを SSD に換えることにしました。OS は再度インストールしなおすつもりです。
現在の C ドライブの内容は別途コピーしておいて、困ったときには参照できるようにしたいと思いました。
ところが、「xcopy c: x:/tmp」とすると、「メモリーが足りなくなった」といって途中で止まるのです…困りました…

815 名前: mailto:sage [2018/08/26(日) 23:57:13.93 ID:TLwXHnMN.net]
>>796
条件を追加します
ハードリンクやシンボリックリンクは考えなくともよい
xcopy パス1 パス2
のパス2 がパス1 の下にある場合、実装がまずいと永遠にコピーし続ける困ったことになるが、それも考慮しなくてもよい
(今回やりたいことは、「xcopy c: x:/tmp」であるので、これが問題なく動けばそれでよい…)

816 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 00:30:49.02 ID:FMLlc3nv.net]
お金くれたら書くよ

817 名前: mailto:sage [2018/08/27(月) 00:37:15.85 ID:W4qvSHyH.net]
>>798
ビットコインではいかがでしょう?

818 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 03:58:54.01 ID:EFFRlxLO.net]
>>796
https://qiita.com/himrox/items/3dc7dec2c0e584a78e3d
xcopy メモリで検索したらこんなページ出たがこれじゃあかんと?

819 名前:デフォルトの名無しさん [2018/08/27(月) 10:42:11.16 ID:ywsjsNTA.net]
>>796
Windowsならエクスプローラ使ってただコピーするのでは何か不都合があるのか?

まあ、お題としてそういうのなしで作れというのはアリだが、なんとなくWindowsの場合はエクスプローラが使っているのと同じライブラリ関数を一回呼び出すだけで終わってしまいそうな気がしてならない。

820 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 11:41:58.10 ID:ba8BcfX3.net]
xcopy ではなく、robocopy を使えば?



821 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 21:06:25.46 ID:wliJqEsP.net]
>>793
他の人も勘違いしてるけど、横縦比をx:yにする問題だよ。おおよそらしいけど。

822 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 21:25:27.41 ID:C1HpzEi0.net]
>>803
問題を読んでみな

823 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 21:34:12.17 ID:wliJqEsP.net]
失礼しました…

824 名前:デフォルトの名無しさん [2018/08/27(月) 21:37:25.51 ID:l2rfNjjd.net]
>>803
トランプの横幅がYで高さがXでしょ?
で、偶数枚並べてX:Yにするんでしょ?
4枚でなるじゃん。およそどころかぴったりX:Yに。

825 名前:デフォルトの名無しさん [2018/08/27(月) 21:41:44.66 ID:l2rfNjjd.net]
ごめん。逆か。まあしかしわかるよね。

826 名前: mailto:sage [2018/08/28(火) 00:09:17.09 ID:mZeP8xuo.net]
>>796-797
https://mevius.5ch.net/test/read.cgi/tech/1434079972/52

>>800
有用な情報ありがとうございます
なるほど、256バイト以上のパスは受け付けない、ですか…
MSDN https://msdn.microsoft.com/ja-jp/library/cc429198.aspx
なんかをみると、「この関数の Unicode 版を呼び出し、パスの前に "\\?\" という接頭辞を追加してください。」と書いてありますね
でも、C++ でユニコードバージョンに対応させるってどうするのだろう?#define UNICODE だけではダメみたいだし…

827 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 00:22:03.08 ID:LPHHle1d.net]
>>808
https://qiita.com/jugemjugemu/items/4db1dfd3d2737d3979df
CreateFileW

828 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 00:26:01.26 ID:04IHxsB7.net]
>>808
そろそろ適切なスレに移動したら?

829 名前: mailto:sage [2018/08/28(火) 00:29:32.20 ID:mZeP8xuo.net]
>>810
>適切なスレ
って、あなたはどこを想定しているのですか?

830 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 02:44:52.27 ID:Z7hOIgIF.net]
スレタイも読めないのかこいつは・・・



831 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 10:27:46.88 ID:QGrjhPlD.net]
>>806
流石に与えられた枚数は全て使うだろ
アスペかよw

832 名前:デフォルトの名無しさん [2018/08/28(火) 16:31:53.27 ID:C1AWmFJx.net]
>>813
与えられると何処に書いてある?

833 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 18:47:35.73 ID:4ROMapnq.net]
とりあえず>>788はちゃんと問題書くか取り下げるかしろよ…

834 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 22:17:12.42 ID:QGrjhPlD.net]
>>814
近似値も想定している文意から汲めないならアスペ

835 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 22:36:38.28 ID:Gymzh0gE.net]
>>816
とりあえずお前の解釈を書いてみな

836 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 23:00:50.43 ID:QGrjhPlD.net]
>>817
ぱっと見て
カードの数nとカードの縦と横の長さx, yが与えられたときに
総てのカードを並べて作った矩形の縦と横の長さをX, Yとして
|X/Y - x/y|が最小になるような(X, Y)を求める問題かと思ったんだけど
というか>>788は言葉足らず過ぎるしアスペ云々は言い過ぎだったわすまん

837 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 23:15:02.28 ID:Gymzh0gE.net]
n枚を矩形になるように並べる
なんてことは書いてないけど

あと
『|X/Y - x/y| が最小』
は数学的センスが無い
x,yを入れ替えても値が変わらない誤差の定義にしたい

838 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 00:49:59.45 ID:e0sa1Xvi.net]
>>819
矩形じゃないと縦幅と横幅が定義できないからそ

839 名前:アはいいんでない?
>『|X/Y - x/y| が最小』は数学的センスが無い
はその通りだね
m := min{x, y}, M := max{x, y}, λ_x = X, λ_y = Y として
として |m/M - λ_m/λ_M|の最小値を求めるべきだね
[]
[ここ壊れてます]

840 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 08:01:13.69 ID:cDvJjkNL.net]
>>820 前半
どんな形に並べても縦と横の方向が決まっていれば縦幅と横幅はある

>>820 後半
さらにセンスが無い



841 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 08:06:49.08 ID:e0sa1Xvi.net]
>>821
『どんな形に並べても縦と横の方向が決まっていれば縦幅と横幅はある』
これは偽
少しは検討してから書き込んだらどうなんだ

後半が理解できないなら「テンソル」で調べてね

842 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 08:18:18.70 ID:cDvJjkNL.net]
横方向をx軸、縦方向をy軸としたx, y平面上に
トランプを並べるとする
有限サイズ(>0)のトランプを有限枚(>0)並べるので
トランプは有界で非空

xの上限 - xの下限 = 横幅
yの上限 - yの下限 = 縦幅

843 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 08:21:39.47 ID:cDvJjkNL.net]
>>820 後半
さらにセンスが無い

844 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 08:41:09.91 ID:F6DjsKzv.net]
オレオレ解釈でマウント取合いかよ w

845 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 09:24:22.25 ID:e0sa1Xvi.net]
>>823
勝手な距離空間持ち出してこないでくれませんかねぇ

846 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 12:43:01.20 ID:r/8waa6p.net]
勝手な距離空間www
後に引けなくなってさらに痛くなる

847 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 17:30:59.79 ID:e0sa1Xvi.net]
はいはい。頭いいね坊や
今度からは算数をきちんと勉強してからレスしてね

848 名前:デフォルトの名無しさん [2018/08/29(水) 19:00:11.58 ID:bZ2D0xRL.net]
>>816
お前は勝手に汲み過ぎ

849 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 19:03:26.04 ID:e0sa1Xvi.net]
>>829
はいはいよかったですねー

850 名前:デフォルトの名無しさん [2018/08/29(水) 19:10:03.95 ID:bZ2D0xRL.net]
>>830
君が元の問題を書いた人か?



851 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 19:24:13.92 ID:5cagDv75.net]
お題:標準入力から(で始まり)で終わる顔文字が与えられる。この顔文字を太らせて標準出力に出力しなさい。

852 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 19:40:07.15 ID:e0sa1Xvi.net]
>>831
ちげーよ、出題者ならまともな条件追加してるわw
自分では何も提示しないのに難癖つけてくるアホがうざったいだけ

853 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 19:41:27.76 ID:5CKWgBXh.net]
テンソル君頑張ってるね

854 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 19:53:04.28 ID:5CKWgBXh.net]
トランプを並べる問題で
非ユークリッド空間を前提にしちゃう
頭がおかしい人

855 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 20:01:44.71 ID:F6DjsKzv.net]
頓珍漢なオレオレ解釈提示してドヤってる方がウザいわ

856 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 20:11:16.34 ID:V4Xw96gq.net]
>>788

並べるのが矩形に限らないのであれば
>>792のとおり任意の枚数で可能

矩形に並べるとして
枚数が与えられないなら>>793のとおり4枚で可能

与えられるなら>>795のとおり
与えられた自然数を最も僅差の2つの自然数の積で表す問題と同値
ただこの場合、問題文の不備を不問にしても
>並べるトランプは偶数枚
って条件がなぜ必要になるのか疑問が残るが…

いずれにしても問題としては終わってるので
これ以上長引かせるのは不毛

857 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:16:45.79 ID:Nirpjn+4.net]
× 問題としては終わってる
○ 人間としては終わってる

858 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:32:57.89 ID:cDvJjkNL.net]
どこからも
矩形に隙間なく並べる
とは読めないのだけど

859 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:47:22.89 ID:AXEWk4o3.net]
書かれていない条件は勝手に解釈すればいい
その条件の問題を解くのが楽しいと感じるならその条件で回答すればいいだけ
グダグダと問題自体を統一する必要は無い

860 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:49:31.68 ID:cDvJjkNL.net]
さすがに非ユークリッド空間は無いだろ



861 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 23:06:35.04 ID:rr2ZC/zS.net]
偶数枚並べるようなゲームを想定してるんでしょ

862 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 23:10:01.39 ID:cDvJjkNL.net]
>>840
「問題を解く」という言葉がふさわしいような条件が見つからないから困っているわけで

863 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 00:01:13.99 ID:s4UfRJo7.net]
面白みが無いならスルーでいいだろ

864 名前:デフォルトの名無しさん [2018/08/30(木) 01:37:09.37 ID:qgZ9UxCP.net]
>>832
Kotlin
https://paiza.io/projects/R255MQByNDBUFUfADcsP5w

スペース入れただけなんだけど、これでいいのかな?

865 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:45:18.01 ID:PhGGZV18.net]
>>845
OKです

866 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 20:49:23.29 ID:QC9x0InA.net]
>>248
java
pastebin,com/7cnjtkNG

867 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:01:15.01 ID:QC9x0InA.net]
>>847
変数宣言を増やせばいくらでも行けるけどこれが限界かも
リフレクションはやっぱりクソだな

868 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:58:19.14 ID:UbfaileO.net]
>>248 Squeak Smalltalk, インスタンス変数で254個まで

| obj n limit |
obj := Object new assureUniClass.
n := 0.
[[obj addInstanceVarNamed: 'i', (n := n + 1) asString withValue: n] repeat] ifError: [].
limit := obj class instSize. "=> 254 "
obj instanceVariableValues asArray = (1 to: limit) asArray "=> true "

869 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 23:18:37.32 ID:hdwU5T2H.net]
自然数nに対して
3Σ_{k = 0}^{2n}(-2)^k / (2n + 1)^2
が整数となるnを総て求めよ

870 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 10:36:15.07 ID:oWRhkMQP.net]
数学厨は帰れ



871 名前:デフォルトの名無しさん [2018/09/01(土) 10:57:14.89 ID:Wx/QBEc1.net]
>>850
数式というか文字が何を表しているのか分からない。最初の { の直前の _ は何を意味するんだ?
更に { } で括った部分と ( ) で括った部分の違いは?

まあわかったとしても解く気は起きないかも知れないので面倒なら解説しなくても良い。

872 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 11:24:51.31 ID:DlN6jaxu.net]
>>850じゃないけど

_はΣの下
^はΣの上

テキスト限定でのよくある表記

873 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:14:11.54 ID:9UhZQst+.net]
数学板でお題スレ立てようかと思ったらすでに似たようなスレがあった

面白い問題おしえて〜な 27問目
https://rio2016.5ch.net/test/read.cgi/math/1532793672/

874 名前: mailto:sage [2018/09/02(日) 01:44:20.01 ID:oSO4LvdH.net]
>>796-797
>>808
https://mevius.5ch.net/test/read.cgi/tech/1434079972/53

875 名前:デフォルトの名無しさん [2018/09/02(日) 04:36:43.72 ID:4Jf6YH6e.net]
>>853
そういう意味だとすると>>850はこうかな。

Kotlin
https://paiza.io/projects/3ObT5j3XNNkuKqDXdk6E7g

しかし、本当にこれで全てなのかは不明。
Double 型で計算できる所まで計算して結果が整数の時の n を出してるだけなので。

876 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 10:05:17.48 ID:jaQJTA9z.net]
>>850
(1 + 2 ^ (2n + 1)) / (2n + 1) ^ 2
に変形できる
答えは多分n=1だけだと思う

python3で時間いっぱいまで総当たり
https://ideone.com/GGijCL

877 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 11:43:51.21 ID:/9nCrt4M.net]
>>850は数学オリンピックのマスターデーモンだな
答えはn=0, 1のみ

878 名前:デフォルトの名無しさん [2018/09/02(日) 16:00:22.41 ID:4Jf6YH6e.net]
ごめん。>>856は3倍するのを忘れていた。

879 名前:デフォルトの名無しさん [2018/09/02(日) 17:40:51.50 ID:4Jf6YH6e.net]
>>856
Forkして3倍にするの入れてみたけど大差ない・・・
https://paiza.io/projects/IZQxz8kWTqR-Fw04EN9o1w

880 名前:デフォルトの名無しさん [2018/09/02(日) 17:46:26.05 ID:4Jf6YH6e.net]
>>858
あれ?そうなの?
じゃあプログラム何か間違ってん



881 名前:のかなあ? []
[ここ壊れてます]

882 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 18:31:32.88 ID:jaQJTA9z.net]
>>861
double型の精度の問題
計算結果は指数関数が支配しているからnが大きくなると有効桁数が足りなくなる

883 名前:デフォルトの名無しさん [2018/09/02(日) 18:47:50.05 ID:4Jf6YH6e.net]
>>862
なるほど。とすると32以上はもうダメな値ってことだな。
かといってBigDecimalとか使って延々と計算しても意味ないな。
数学的に答え出てるし。

884 名前:デフォルトの名無しさん [2018/09/05(水) 09:52:56.23 ID:lHAOj/Nm.net]
プログラミングならここからだな

https://site.moshimo.com/rhino/0002.html

885 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 22:16:42.52 ID:vC/rF1cv.net]
質問スレからパクってきた配列の易しい問題

質問者は他レス見るにプログラミング自体経験なさそうだが
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の選択した数字は変えたいです

このような場合自分でプログラミングしないといけないのでしょうか?

886 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 22:39:44.98 ID:CrgXDO1K.net]
百錬の覇王と召喚少女の奴隷魔術

887 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 22:41:19.06 ID:CrgXDO1K.net]
>>866
誤爆

888 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 22:56:28.52 ID:DvgxKi+t.net]
>>865 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.

889 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 10:46:50.62 ID:yaYW83OX.net]
>>865 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個ランダムで選ぶ乱数ツール使えばいいだけなのに質問者が謎

890 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 10:51:12.28 ID:XJaXrhZ0.net]
ロト6を当てたい一般人だろ
そんくらいは察してやれよ



891 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 11:22:22.79 ID:VWkPHcyt.net]
>>869>>870
自演

892 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 11:49:05.41 ID:na1duSUN.net]
>>869
アスペ

893 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 12:05:30.79 ID:yaYW83OX.net]
お、質問者様の登場か?w

894 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 13:55:51.77 ID:na1duSUN.net]
>>873
糖質かよ

895 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:04:26.80 ID:iiqq7TK9.net]
発達障害イライラでワロタ

896 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:05:05.91 ID:juRJVYHI.net]
くこけ?😗

897 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:06:54.57 ID:MtkyzY0F.net]
とうふさんはすこか??😍

898 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:08:03.90 ID:uzOuEcd3.net]
自演死ね

899 名前:デフォルトの名無しさん [2018/09/09(日) 14:08:44.70 ID:x2owZh/r.net]
                イ             '、
                /       ハ        ',
                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:" )     ─ ' ¨: : : : | \     / |: : : \


900 名前:デフォルトの名無しさん [2018/09/09(日) 14:09:07.67 ID:0efZNutP.net]
くこは罠🙅‍♀



901 名前:ニャース [2018/09/09(日) 14:09:35.76 ID:AYD3VQs9.net]
ここでしたか

902 名前:デフォルトの名無しさん [2018/09/09(日) 14:09:50.68 ID:+yUoETM4.net]
グレイシアちゃんのふたなりチンポ

903 名前:デフォルトの名無しさん [2018/09/09(日) 14:10:48.73 ID:m5NrVMRk.net]
【怒報】ワイ 専門板にて1人からアスペやら糖質認定を受ける【援護求む】
swallow.5ch.net/test/read.cgi/livejupiter/1536469396/

904 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:11:31.78 ID:lnlyvEPx.net]
なんJから来たンゴwwwwwwww

905 名前:デフォルトの名無しさん [2018/09/09(日) 14:12:42.07 ID:V2BhMRg2.net]
なんjの絆舐めるな!

906 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:14:26.66 ID:JLLEIooV.net]
試合中やぞ

907 名前:デフォルトの名無しさん [2018/09/09(日) 14:15:18.48 ID:KoiRlOSP.net]
なんだこのスレ😨

908 名前:デフォルトの名無しさん [2018/09/09(日) 14:15:42.19 ID:1Rk7pi2L.net]
アスペの>>869が居ると聞いて

909 名前:デフォルトの名無しさん [2018/09/09(日) 14:16:23.81 ID:7fkrmWDW.net]
なんj書き込んだキッズ
今度から一人で解決しようね🤗

910 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:16:27.10 ID:KW6FAnPg.net]
>>872
>>874
実はこいつがなんJでスレ建てたんやで
>>869
は被害者や



911 名前:デフォルトの名無しさん [2018/09/09(日) 14:17:33.96 ID:xWgdA58m.net]
はい��

912 名前:デフォルトの名無しさん [2018/09/09(日) 14:18:16.63 ID:UPePJlkV.net]
ここになんjに助けを求めたガイジはいませんかー?🙋
負け犬は何処かな🤔

913 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:18:35.22 ID:mhobrALw.net]
くこけ?

914 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:19:05.04 ID:SFaJ2QTJ.net]
なんJにスレ立ててまでするチンパンジーが見れると聞いて来ました

915 名前:デフォルトの名無しさん [2018/09/09(日) 14:20:44.64 ID:UPePJlkV.net]
恥ずかしがらずに出てこいよ😘
ガイジくん😁
それとも顔真っ赤で出てこれないかな?🤔

916 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 14:24:20.57 ID:iiqq7TK9.net]
>>895
負け犬はお前定期

917 名前:デフォルトの名無しさん [2018/09/09(日) 14:26:08.47 ID:UPePJlkV.net]
>>896
キターーー😁
本物ですわ😏

918 名前:デフォルトの名無しさん [2018/09/09(日) 14:26:42.15 ID:7fkrmWDW.net]
>>896
スレ立てガイジ本人いて草

919 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 15:05:27.62 ID:iMK3cxKN.net]
図星か

920 名前:デフォルトの名無しさん [2018/09/09(日) 15:07:21.91 ID:xWgdA58m.net]
>>896
大丈夫か?��



921 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 15:57:06.11 ID:yaYW83OX.net]
意味わからないんだがw
ハンJでしょうもないプログラミングの質問した人がいたってことか?

922 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 15:58:03.09 ID:yaYW83OX.net]
ハンJじゃないなんJ

923 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:03:08.91 ID:SFaJ2QTJ.net]
また日本語怪しいじゃん君なんJでもまともに喋れなかったよね?

924 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:07:58.48 ID:yaYW83OX.net]
>>872が建てたのはこれかw
tomcat.2ch.s c/test/read.cgi/livejupiter/1536469396/

925 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:20:59.20 ID:yaYW83OX.net]
で元のレスがこれか
https://mevius.5ch.net/test/read.cgi/tech/1526606537/

926 名前:893 []
[ここ壊れてます]

927 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 17:03:05.57 ID:na1duSUN.net]
>>904
立ててないぞ
人になすりつけるな

928 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 17:12:29.21 ID:3HCWUffr.net]
>>901でなんjをハンjと打ち間違える時点で通報騒動知ってるやつやん
>>873で自分に都合の悪いレスつくと本人認定するような奴だしなんでもかんでも人のせいにしてきたんだろうな

929 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 17:20:33.91 ID:yaYW83OX.net]
あ、これ俺に成りすまして他板でクソスレ立てて人をこっちに呼び込んでんのね
今理解したわ
このスレの住人なら>>871-872程度のことで他の板にスレ立てるわけないってわかってもらえると思うけど
荒れると嫌なんでしばらくROMりますわ

930 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 17:27:07.85 ID:3HCWUffr.net]
>>908
今理解したわとか嘘だろ
>>904>>872が建てたと認定してる時点でお前はとっくにわかってただろ



931 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 17:44:29.85 ID:C8FWMbW9.net]
単発ばっかだし質問を小馬鹿にされた質問者が自演で荒らしてんだろ
いちいち反応すんなkz

932 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 21:43:55.78 ID:YbX1NAV1.net]
>>910
kzとかいつの時代やねん
お前はミスターアンモナイトかwwwww

933 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 11:59:19.26 ID:bqaIVrpu.net]
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

934 名前:デフォルトの名無しさん [2018/09/11(火) 15:17:49.53 ID:RXZvWAlK.net]
>>912
同値類とは?

935 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 17:41:21.76 ID:bqaIVrpu.net]
>>913
入力のペア"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}} のことを言うよ

問題を解く上で数学的な要素は無いから数学の言葉を使わないで出題すべきだった

936 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 18:43:20.13 ID:UwY6cfla.net]
>>912 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' "


937 名前:デフォルトの名無しさん [2018/09/11(火) 18:58:42.97 ID:RXZvWAlK.net]
>>914
それは良いとしても>>912の問題における同値類とはなんなのか?

例として出されているのは入力が動物の名前のようで、出力は重複をなくした上で大まかな種類ごとに分類されているようではある。
しかしこのそれぞれの分類は一体いかなる基準によって同じと判別したのか?

もしこれが単語の意味、およびそれの分類(動物なら四つ足だとか哺乳類だとか)によって分けなければならないとすると、単語の意味やその分類がプログラムの側でわかっていなければならない。
しかも入力にはどんな単語が来るかわからないというのであれば辞書並みの単語数に関してそれを保持していなければまともに分類できない。

938 名前:デフォルトの名無しさん [2018/09/11(火) 19:06:31.95 ID:RXZvWAlK.net]
>>915
え?それでいいの?ペアになってるなつが同じ種類ってこと?

939 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 19:55:35.45 ID:zuM/oofP.net]
>>916-917
>入力のペア"A B"は A = B を表している

940 名前:デフォルトの名無しさん [2018/09/11(火) 21:04:39.05 ID:RXZvWAlK.net]
なるほど。また最初の問題が不備で無限の回答が出るか一つも回答が出ないパターンだったと。



941 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 21:40:27.09 ID:zuM/oofP.net]
見た感じ問題に不備はない
まだ何か勘違いしてるのでは

942 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 22:23:42.34 ID:O7hfz4dz.net]
>>912 Squeak Smalltalk (>>915 は入力順等によっては機能しないので差し替え)

| 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' "


943 名前:デフォルトの名無しさん [2018/09/11(火) 22:32:02.08 ID:srQbLx59.net]
>>918
「それぞれの元を辞書順にソートした上で」
これは間違いってことね。

944 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 22:42:05.94 ID:6IJHkLyh.net]
cat dog horse rhinoとかってアルファベット順に出力するよう要請してるのだから少なくともそのフレーズに間違いはないよ

945 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 08:18:25.07 ID:FM7FP8m6.net]
>>912 「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

946 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 10:35:33.91 ID:0dikQX95.net]
>>924
その実装だと仮に squid lark のペアが末尾に追加されたとき
すでにある goldfish squid がキャンセルされちゃうけど?

https://ideone.com/sbA9P5

947 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 11:17:32.60 ID:FM7FP8m6.net]
>>925
指摘ありがと 確かにまずかった

https://ideone.com/gbKlMH

948 名前:デフォルトの名無しさん [2018/09/13(木) 02:06:53.72 ID:Pm51LGwI.net]
>>912
Kotlin
https://paiza.io/projects/QoBZQmhMgIbx2IHLgWC07A

949 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 08:17:03.84 ID:EC7Fu/Zv.net]
>>927
よーわからんがペアの両方が既知の場合のマージ処理が抜けてない?
A B
C D
A C
の場合とか

950 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 10:08:33.08 ID:HHLUVU7a.net]
>>912の例をマージが必要になる順とかにしといてくれてれば…



951 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 10:14:48.87 ID:q0HzNtar.net]
>>912 perl
%h;
while(<>){
chomp;
($f, $s) = split/

952 名前: /;#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;
[]
[ここ壊れてます]

953 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 11:37:05.45 ID:HHLUVU7a.net]
>>930
これもマージ処理>>928が抜けてない?

https://ideone.com/NAvn2f

954 名前:デフォルトの名無しさん [2018/09/13(木) 12:31:55.31 ID:cU5S5NHG.net]
>>928
両方が既に入ってるなら何もする必要ないと思うのだが。

955 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 13:14:56.32 ID:EC7Fu/Zv.net]
>>932
https://paiza.io/projects/YTmp_QaHw0hpHqxX4cBGKw
入力
A B
C D
A C

出力
A B C
C D

期待される出力
A B C D

じゃろ?

956 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 14:17:54.21 ID:q0HzNtar.net]
>>912 >>933
%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;

957 名前:デフォルトの名無しさん [2018/09/13(木) 20:39:52.56 ID:0RheZyur.net]
>>933
あー。なるほど。そういうことか。
また考えよう。

958 名前:デフォルトの名無しさん [2018/09/14(金) 03:38:24.35 ID:SYmkUqRw.net]
>>928
>>927は修正した。(URL同じ)

959 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 04:53:58.08 ID:Z6RVr7Qr.net]
>>936
差し支えなければ修正前のコードも別URLで再掲載してもらえますか?
あるいは公開バージョンの履歴や差分を参照する機能がpaoza.ioにあったら教えてください

くしくもマージを考慮「しない版」と「する版」が出揃ったのでどういう修正で対処したか調べると
それぞれの言語の(あるいはアルゴリズムの)特徴が際立って面白いのではないかなぁとふと思ったので

960 名前:デフォルトの名無しさん [2018/09/14(金) 08:32:54.25 ID:SYmkUqRw.net]
>>937
すまん。前の版はもうない。paiza.ioはそういう機能はない。
思い出して時間があったらなんとかする。



961 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 09:31:32.78 ID:PJYnZf+K.net]
>>938
あーいやそこまでしなくても結構です。ありがとうございます!

962 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 12:57:38.55 ID:q6Zv3uN7.net]
わざわざ書こうとしてくれるなんて良いやつだな

963 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 18:45:13.33 ID:9KWktx64.net]
>>937
>>933>>927の古いコードのコピペ

964 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 20:03:21.13 ID:Z6RVr7Qr.net]
>>941
おおありがとう!

965 名前:デフォルトの名無しさん [2018/09/14(金) 20:39:39.94 ID:cNoNQyuv.net]
>>941
おお。ナイス。

966 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 20:50:46.38 ID:SK0cQL9c.net]
結構みんな人の書いたコード読んでるんだな
いい意味でびっくり

967 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 23:34:38.18 ID:vS2kVSOd.net]
逆になんで読まないの?

968 名前:デフォルトの名無しさん [2018/09/15(土) 00:06:11.66 ID:/ZWEPMk/.net]
>>912
Rubyで。
https://ideone.com/MEO7XO

969 名前:デフォルトの名無しさん [2018/09/15(土) 08:52:18.54 ID:/ZWEPMk/.net]
>>946
訂正。Rubyで。
https://ideone.com/er8XUC

970 名前:デフォルトの名無しさん [2018/09/15(土) 18:55:39.79 ID:Q0ygbCVz.net]
>>947 とは別の戦略。
Rubyで。
https://ideone.com/osABKT



971 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:09:51.94 ID:1YQGrLsT.net]
>>948
ソート忘れてんよ

972 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 00:15:22.99 ID:+Pq0rgCm.net]
>>949
付けといて。

973 名前:デフォルトの名無しさん [2018/09/16(日) 08:13:10.07 ID:qJ8HI8bW.net]
>>912
Rubyで。ソート、コメント付き。
https://ideone.com/9RyjEF

974 名前:デフォルトの名無しさん [2018/09/18(火) 20:26:30.74 ID:iTEamDZZ.net]
https://www.rco.recruit.co.jp/career/engineer/entry/

この問題どうですか?

自分でも書いてみたのですが合ってるかちょっと分かりません
C# https://ideone.com/KNpwLL

975 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 20:38:45.88 ID:qJ7HW+J2.net]
こういうのって答え公開してもいいんか?

976 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 20:48:39.65 ID:sp2kbyYS.net]
企業がやってるのって大体駄目だったと思うで

977 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 20:49:39.59 ID:Iw2LHuqq.net]
>>953
あくまでも過去の出題例、だからいいんじゃないですか?

978 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 00:29:21.73 ID:gYIP5Vsu.net]
アウトかセーフか分からないときは答え公開しないほうが無難

979 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 01:18:48.14 ID:pHq1DkBS.net]
>>956
アウトになる条件は、「エントリー後メールにて送付されるコーディング試験問題は、当社への応募以外の目的で無断使用しない」…@
だが、>>952 のリンクの問題は「エントリー後メールにて送付されるコーディング試験問題」ではないから@に反しない…A
さらに、無条件に誰でも見ることのできる問題であること…B
Aよりアウトではないと断定できるし、BがAの結論を補強する
結論として、>>952 のリンクの問題を公開しても問題ない

>>956 「アウトかセーフかわからない」という結論にどういう道筋で到達したの?

980 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 19:43:34.67 ID:KaiQ4rsk.net]
お題:コンプリートパネル(出展:高校生クイズ2018)

5×5のパネルが与えられる。各パネルは赤色か白色である。
各パネルに侵入すると、そのパネルの色が赤なら白、白なら赤に変化する。
最初のステップは、場外(左下のパネルの左隣)から左下のパネルへ侵入することである。
以降のステップでは、上下左右に移動することができる。
ただし、ひとつ前のパネルや場外に移動することはできない。

すべてのパネルを白色にするための移動経路を構成せよ。

WWWRR
WWWWR
WWWWR
WWWRR
RRRRW
=> 10 RRRRURUUUL (→→→→↑→↑↑↑←)

WWWWW
WWWWW
WWWWW
WWWWW
WWWWW
=> 0 (移動の必要なし)

WWWWW
WWWWW
WWWWW
WRWWW
WWWWW
=> 21 RRRRULULLDDRULURRDRDL (必ずしも最短経路である必要はない)



981 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 19:51:24.03 ID:WMjcSrAA.net]
>ひとつ前のパネルや場外に移動することはできない

全部踏めばいいんだからライツアウトの解法の亜種で解けるんじゃねえの

982 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 19:59:02.78 ID:ZUIw2oHI.net]
状態を変えずに任意の場所まで移動できるなら
6箇所だけそれぞれ1つだけRだった場合を計算してあとは回転なりなんなりして重ね合わせればいけるな

983 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 20:34:03.00 ID:WMjcSrAA.net]

□□□
□□□→

2*3の全パターンで、この二つの方向のどちらかに抜ける経路が存在すればいい
あとは合成で何とかなる

984 名前:デフォルトの名無しさん [2018/09/19(水) 21:11:11.50 ID:zcXFtBV7.net]
うーん。これはブルートフォースでやろうとするとかなり無駄が多くなって時間とメモリを山盛りに食いそうな予感。

985 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 23:00:29.71 ID:gYIP5Vsu.net]
5x5=25マスの赤or白の2値だから25bit、現在位置25通り(5bit)に前回位置相対で4通り(2bit)、あわせて32bitパターン?

986 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 23:25:52.07 ID:WMjcSrAA.net]
5x5は序の口で、100x100くらいが本命でしょう
ついでに最短の最適解も

問題も作るだけならラクだから1000x1000だって0.1秒程度で作れる
もちろん解くのは面倒

987 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 01:27:25.92 ID:B4lxWLis.net]
>>958
手でしか試してないけど
解けないパターンとかありそうな予感
https://i.imgur.com/u8zgEum.png

988 名前:デフォルトの名無しさん [2018/09/20(木) 09:43:56.68 ID:cMPVhU9i.net]
プログラム考える以前に解くためのいいアルゴリズムが思い浮かばん

989 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 12:37:05.73 ID:B1/3j8uv.net]
辺の長さが3以上の時は戻るの禁止ってルールは実質的に無視できそうだな
というのも閉路を2周すれば元通りに戻るわけだから

xxx
x↓x
x↑x
上に行ってまた下に戻るって進みたいときは

→↓x
↑←x // 中央「←」を3回目に踏むときは下に進む
x↑x
ってすればいいわけで
2*2 かどちらかの辺が 1 の場合以外は任意のパターンで解があることになる

990 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 23:43:04.82 ID:uzQ90Fqy.net]
RWWWR
WRWWW
RWRWW
RWWRW
WRRWR

全てのパターンが解けて最長がこの形で44手かかる

となったけどできたばかりだからまだまだバグがありそう



991 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:11:26.91 ID:1M+bqJR8.net]
https://ideone.com/S7UA0k
表示までできるようになったので
ここでは5秒超えるので結果表示されないみたい
10年前のノートで2分半かかる
結果はこんな感じ

- - - - -
- - - - -
- - - - -
- x - - -
- - - - -

RRRRULDRULLDL 13

x - - - x
- x - - -
x - x - -
x - - x -
- x x - x

RRRRRUUUULLLLDDDDRRRURUULDLDDLUURDLURRUULLDL 44

992 名前:957 mailto:sage [2018/09/22(土) 13:39:38.33 ID:EQZKU8B1.net]
最適解ではないが、人間にも実行可能なアルゴリズムを考えた
上のラインから順番に確定させていく感じ
https://ideone.com/nUgNh3

993 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 05:22:08.89 ID:QL0eQEru.net]
解法全然分からないけど
枝狩りもメモ化もせず愚直に全探索すると44手目で10760814742109228通りになるのか…ヤバイな
codepad.org/JXkGjMKb

994 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 06:45:48.27 ID:QL0eQEru.net]
>>971
メモ化のみの全探索でも厳しいね
https://ideone.com/TpZyFM

995 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 07:02:07.82 ID:QL0eQEru.net]
>>963の理屈上なら>>972のstepの累積和が3,355,443,200(=25<<27)になった時点で全通り出たことになって最短の上限になるのかな?

996 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 10:53:27.77 ID:daMeAE67.net]
ttps://cdn-ak.f.st-hatena.com/images/fotolife/m/motcho/20180127/20180127034515.png
連続殺人犯が全ての目撃者を消して完全犯罪を目論む

997 名前:デフォルトの名無しさん [2018/09/23(日) 12:36:34.31 ID:FE85zabB.net]
文字列のペアがn対与えられる。
s(1),t(1)
...
s(n),t(n)

この時、ペアを適切な数選び適切な順番で並べる事で
s(a1)s(a2)...s(ak) = t(a1)t(a2)...t(ak)
とできるかどうか判定せよ
(ペアを重複して選ぶのもOK)

998 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 12:41:57.26 ID:A0stA7Ax.net]
>>975
それって「s(i)=t(i)となるiが1つ以上存在するか」というだけのように思えるけど、違うかな?

999 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 12:42:44.79 ID:A0stA7Ax.net]
>>976は勘違いでした。取り消します

1000 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 13:27:09.60 ID:yBlaBAG2.net]
>>976
最初全く同じこと思ったわw
でもこれって十分条件に過ぎないんだな

a ab
bc c
s(1)s(2) = t(1)t(2) = 'abc'



1001 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 17:12:26.93 ID:daMeAE67.net]
応用だけは思い付いた

ATCGTTGTAC, AAATTTCTCTCTTTCT
GTGATGCGTTGCAGGT, ATGCCATGTGAC
AAATTGCTGAC, ATGTTGCGTC
ATGCGTACCCACG, AGTGCGTTCGTAC
...(以下、1万行続く)

1002 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 12:45:56.45 ID:ZWCrk0/p.net]
>>975
空文字列は含むの?

1003 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 14:31:45.91 ID:twjLvrgB.net]
重複しても良いってなっているのでどうやっていいか分からなくなった。
重複なしなら単に順列の問題で全パターン調べれば良いだけなんだけどな。

1004 名前:デフォルトの名無しさん [2018/09/24(月) 14:56:44.30 ID:hAv+WLv3.net]
>>980
含むと何も並べなければOKって事になりそう

1005 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 15:56:26.13 ID:IwP3sRIS.net]
>>982
結果じゃなくて入力に

一つも選ばないのがOKならそもそも問題として成立しないだろ

1006 名前:デフォルトの名無しさん [2018/09/24(月) 16:14:35.67 ID:twjLvrgB.net]
>>975
Kotlin
但し、重複選択は考慮していない。
https://paiza.io/projects/iRHJjFRj9BJIydX10SIn0Q

1007 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 19:57:46.70 ID:6VO2RDhD.net]
>>970
ルール合ってるのかどうか知らないけど
ゲーム風にしてみた (Win専用)
fast-uploader.com/file/7093342064119/
PASS:11957

慣れると何となく解き方のコツが見えてくる
今まで解けなかった例は無さげ

1008 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:25:58.77 ID:8mxLASGw.net]
任意のパターンで解けることはここですでに言及されてるよ

1009 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 00:18:48.94 ID:sMuinsuC.net]
エビングハウスの忘却曲線っていって人間のベストな復習間隔があるんだけど
例えば今日勉強したことは明日復習して3日後、1週間一ヶ月ごとに復習すると完全に長期記憶になる
これをスマホアプリで管理するプログラミングしたい
理屈は簡単、カレンダーに今日覚えたことを「○○の20-40ページ」とか記入して
明日になったら今日やる復習を表示してくれるシステム

プログラミングのプの字も知らんのだ
どの言語を使うとかもわからんmacとxcodeはある
どういう作り方すればいいかわからない教えてください個人用に使う

1010 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 02:12:07.33 ID:JXqOIinx.net]
ここはそういうスレではないよ



1011 名前:デフォルトの名無しさん [2018/09/25(火) 02:40:25.79 ID:VjhU4mZC.net]
>>987
このスレはそういう質問するスレではなく、誰かがお題を出して回答したい人がプログラミングして回答するスレだ。

そういう質問はまずは既存のソフトでそういうことが出来るのがないか以下のスレで聞いた方が良いと思う。

気軽に「こんなソフトありませんか?」Part.176
https://egg.5ch.net/test/read.cgi/software/1529929775/

それからどうしてもプログラムを自分で作ってみたいというのであれば何らかの言語を覚える必要があるが、
MacやiPhoneの場合は何が良いのか俺はよく知らない。この頃だと Swift なんだろうか? Swift は確か xcode
使って作れたと思うが、詳細は今の俺には分からん。MacOSやiOS関係のスレを探して聞いてくれ。

1012 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 22:18:07.66 ID:/SCmCNkm.net]
お前らってファイルそのものへの参照を禁止したうえでquineを自力で書ける?

1013 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 23:09:56.51 ID:TEegUJED.net]
もう少し詳しく

1014 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 01:19:09.36 ID:voc6Rn8M.net]
次スレは

1015 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 10:09:57.20 ID:phwOkayR.net]
次スレ
プログラミングのお題スレ Part12
https://mevius.5ch.net/test/read.cgi/tech/1538096947/

1016 名前:デフォルトの名無しさん [2018/09/28(金) 21:10:47.83 ID:WW7qy9i/.net]
埋め

1017 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:28:45.12 ID:CwsEryp/.net]
うめ

1018 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:28:53.05 ID:CwsEryp/.net]
うめ

1019 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:01.92 ID:CwsEryp/.net]


1020 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:15.02 ID:CwsEryp/.net]




1021 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:28.35 ID:CwsEryp/.net]
あさうめ

1022 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:36.27 ID:CwsEryp/.net]
うめ

1023 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:44.58 ID:CwsEryp/.net]
うめ

1024 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 157日 0時間 44分 30秒

1025 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<313KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef