プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
https://mevius.2ch.net/test/read.cgi/tech/1538096947/
プログラミングのお題スレ Part13
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2019/02/03(日) 11:21:53.20ID:72eosYJ+2019/02/03(日) 11:24:10.97ID:72eosYJ+
お題1: 現在地の緯度、経度を出せ
緯度:、、、、
経度:、、、、
お題2: 東京都新宿区西新宿2丁目8-1 の緯度、経度を出せ
緯度:、、、
経度:、、、
お題3: お題2で求めた緯度経度から住所を出せ
郵便番号:、、、
住所:東京都、、、、
緯度:、、、、
経度:、、、、
お題2: 東京都新宿区西新宿2丁目8-1 の緯度、経度を出せ
緯度:、、、
経度:、、、
お題3: お題2で求めた緯度経度から住所を出せ
郵便番号:、、、
住所:東京都、、、、
2019/02/03(日) 11:36:46.42ID:72eosYJ+
>>2 python (pythonista)
#お題1
import location
location.start_updates() # GPSデータ更新を開始
gps=location.get_location() # GPSデータを取得する
location.stop_updates()# GPSデータ更新を終了
print('お題1')
print('緯度:'+str(gps['latitude']))
print('経度:'+str(gps['longitude']))
#お題2
address_dict = {'Street': '西新宿2丁目8-1'}
gc = location.geocode(address_dict)[0]
print('お題2')
print('緯度:'+str(gc['latitude']))
print('経度:'+str(gc['longitude']))
#お題3
adr = location.reverse_geocode(gc)[0]
#print(adr)
print('お題3')
print('郵便番号:'+str(adr['ZIP']))
print('住所:'+str(adr['State'])+str(adr['City'])
+str(adr['Street']))
#結果
お題1
緯度:35.7----略
経度:139.6---略
お題2
緯度:35.689504
経度:139.6916833
お題3
郵便番号:160-0023
住所:東京都新宿区西新宿2丁目8番1号
#お題1
import location
location.start_updates() # GPSデータ更新を開始
gps=location.get_location() # GPSデータを取得する
location.stop_updates()# GPSデータ更新を終了
print('お題1')
print('緯度:'+str(gps['latitude']))
print('経度:'+str(gps['longitude']))
#お題2
address_dict = {'Street': '西新宿2丁目8-1'}
gc = location.geocode(address_dict)[0]
print('お題2')
print('緯度:'+str(gc['latitude']))
print('経度:'+str(gc['longitude']))
#お題3
adr = location.reverse_geocode(gc)[0]
#print(adr)
print('お題3')
print('郵便番号:'+str(adr['ZIP']))
print('住所:'+str(adr['State'])+str(adr['City'])
+str(adr['Street']))
#結果
お題1
緯度:35.7----略
経度:139.6---略
お題2
緯度:35.689504
経度:139.6916833
お題3
郵便番号:160-0023
住所:東京都新宿区西新宿2丁目8番1号
4デフォルトの名無しさん
2019/02/03(日) 13:16:33.45ID:jFMT64Yy 平方数の判定は、たとえばmod 10だと、
1と4と5と6と9に限るってのを利用すると、違う場合は判定が速いんだろ。
mod n で複数やる。
1=1^2
4=2^2
9=3^2
6=4^2
5=5^2
6=6^2
9=7^2
4=8^2
1=9^2
1と4と5と6と9に限るってのを利用すると、違う場合は判定が速いんだろ。
mod n で複数やる。
1=1^2
4=2^2
9=3^2
6=4^2
5=5^2
6=6^2
9=7^2
4=8^2
1=9^2
5デフォルトの名無しさん
2019/02/03(日) 17:42:03.97ID:oUppVF8S >>1
乙
乙
6デフォルトの名無しさん
2019/02/03(日) 18:09:22.12ID:I0qputsI >>4
平方根求められる関数と、少数を整数にする関数があれ
平方根求められる関数と、少数を整数にする関数があれ
7デフォルトの名無しさん
2019/02/03(日) 18:10:24.69ID:I0qputsI 途中で送っちゃった。。。
あれば簡単。
def isSqr(x):
if sqrt(x) - int(sqrt(x)) == 0:
return True
else:
return False
def sqrt(x):
return (x ** 0.5)
あれば簡単。
def isSqr(x):
if sqrt(x) - int(sqrt(x)) == 0:
return True
else:
return False
def sqrt(x):
return (x ** 0.5)
2019/02/03(日) 19:44:56.44ID:t6DUu8Hq
9デフォルトの名無しさん
2019/02/03(日) 20:21:31.21ID:jFMT64Yy たとえば1000桁のを1000回、判定するとかsqrtでは時間かかるやつの高速化だろ
10デフォルトの名無しさん
2019/02/03(日) 20:45:32.58ID:I0qputsI2019/02/03(日) 21:02:27.70ID:Hf9VDUPT
2019/02/03(日) 21:37:11.53ID:MY6f7I+S
なんか変なのいるね
2019/02/03(日) 21:40:28.27ID:v4AFDwkt
浮動小数経由する実装だと整数部が53bit超えると判定出来ない(つまり64bit整数以上だと不適切)
だから自前で浮動小数を経由せずに平方根の整数部分を求めることを考えるわけだけどナイーブにやると計算量が線型になるから二分探索やNewton(-Raphson)法で計算量減らすことを考えるわけだ
だから自前で浮動小数を経由せずに平方根の整数部分を求めることを考えるわけだけどナイーブにやると計算量が線型になるから二分探索やNewton(-Raphson)法で計算量減らすことを考えるわけだ
14デフォルトの名無しさん
2019/02/03(日) 22:02:19.65ID:I0qputsI2019/02/03(日) 23:09:07.55ID:CD+d7Abc
>>14
100000000000000000001がtrueになったりはしない?
100000000000000000001がtrueになったりはしない?
2019/02/03(日) 23:21:43.21ID:CD+d7Abc
2019/02/03(日) 23:32:49.30ID:J7OBWIJA
>>14
何言ってんのおまえ
何言ってんのおまえ
2019/02/03(日) 23:38:52.32ID:v4AFDwkt
19デフォルトの名無しさん
2019/02/03(日) 23:57:14.35ID:Hf9VDUPT >>13 それもわかる。 だったら解き方の最初にこういう目的で解いたとか書かないとね。
だから、解ける最大数値も書いたら良いと書いたんだが。
ちなみに、>>1 の1億までの数字は、iPhoneで28秒だった。
>>15 False になるよ。iphone のpythonista
また、言われたようにバイナリサーチ法や、巨大数のバイナリー検索も試してみたが、単純検索よりずっと時間がかかった。 ま、これは言語にもよると思うから何とも言えないが。 スクリプト系はステップ数が短い方が効率は良さそうだな。
>>18 だからさ、どこまでやるか条件を出せよ。 そしてサンプルを示してみたら? 実行時間も入れて。
プログラムと言うのは、使う現場で目的が違うんだから目的がわからなければ良い悪いなんて言えないだろ。
だから、解ける最大数値も書いたら良いと書いたんだが。
ちなみに、>>1 の1億までの数字は、iPhoneで28秒だった。
>>15 False になるよ。iphone のpythonista
また、言われたようにバイナリサーチ法や、巨大数のバイナリー検索も試してみたが、単純検索よりずっと時間がかかった。 ま、これは言語にもよると思うから何とも言えないが。 スクリプト系はステップ数が短い方が効率は良さそうだな。
>>18 だからさ、どこまでやるか条件を出せよ。 そしてサンプルを示してみたら? 実行時間も入れて。
プログラムと言うのは、使う現場で目的が違うんだから目的がわからなければ良い悪いなんて言えないだろ。
2019/02/04(月) 01:09:58.80ID:tmXRmKR0
このお客さんはどこから来たんだ
2019/02/04(月) 01:42:54.31ID:8qZo3rbs
アホ過ぎて話になんねー
線型探索と二分探索のどっちが速いかが言語によるとか頭腐ってんのか
線型探索: ttps://ideone.com/De3SOQ
二分探索: ttps://ideone.com/v9Twjx
線型探索と二分探索のどっちが速いかが言語によるとか頭腐ってんのか
線型探索: ttps://ideone.com/De3SOQ
二分探索: ttps://ideone.com/v9Twjx
22デフォルトの名無しさん
2019/02/04(月) 06:56:02.27ID:eX/1kX5o23デフォルトの名無しさん
2019/02/04(月) 07:03:50.35ID:eX/1kX5o どちらかと言うと**演算子(Cで言うpower関数)の実装に興味あるな。
2019/02/04(月) 07:23:18.46ID:958Z8DnZ
CRC 16bit 左送り 初期値 0x0000 生成多項式0x11021
テーブル使用せず演算でなるべくスマートに
テーブル使用せず演算でなるべくスマートに
25デフォルトの名無しさん
2019/02/04(月) 08:07:18.20ID:jp+X9sqK 指数関数,正弦関数,余弦関数のベキ級数展開(マクローリン展開)
http://www.synchronature.com/Science/Resources/e-s-c.jpg
http://www.synchronature.com/Science/Euler.html
http://www.synchronature.com/Science/Resources/e-s-c.jpg
http://www.synchronature.com/Science/Euler.html
2019/02/04(月) 10:14:05.68ID:AyF9PYpz
平方数 64ビット以上の巨大数
pythonista iPhone XS Max
def chk2(v1,v2):
c = 0
for i in range(v1, v2+1):
if i == (i**0.5) **2: c += 1
return c
v = 100000000000000000000
r = 10000000
v1= v-r
v2= v+r
start_time=time.clock()
c = chk2(v1,v2)
end_time=time.clock()
print('#結果',end_time-start_time,'秒','count=',c)
print('#範囲 ',v1,v2)
#結果 5.777779999999893 秒 count= 525
#範囲 99999999999990000000 100000000000010000000
pythonista iPhone XS Max
def chk2(v1,v2):
c = 0
for i in range(v1, v2+1):
if i == (i**0.5) **2: c += 1
return c
v = 100000000000000000000
r = 10000000
v1= v-r
v2= v+r
start_time=time.clock()
c = chk2(v1,v2)
end_time=time.clock()
print('#結果',end_time-start_time,'秒','count=',c)
print('#範囲 ',v1,v2)
#結果 5.777779999999893 秒 count= 525
#範囲 99999999999990000000 100000000000010000000
2019/02/04(月) 10:28:47.91ID:AyF9PYpz
>>26 同じ条件でバイナリサーチをやってみると若干だけ早かったが、誤差の範囲
#結果 5.770102000000406 秒 count= 525
#範囲 99999999999990000000 100000000000010000000
#結果 5.770102000000406 秒 count= 525
#範囲 99999999999990000000 100000000000010000000
2019/02/04(月) 11:40:45.86ID:GcH+yasd
>>26-27
99,999,999,999,990,000,000~100,000,000,000,010,000,000の範囲には10,000,000,000しかないんだからcount=525ってのは演算誤差が出てるってことだよな?
99,999,999,980,000,000,001 (9,999,999,999^2)
100,000,000,020,000,000,001 (10,000,000,001^2)
99,999,999,999,990,000,000~100,000,000,000,010,000,000の範囲には10,000,000,000しかないんだからcount=525ってのは演算誤差が出てるってことだよな?
99,999,999,980,000,000,001 (9,999,999,999^2)
100,000,000,020,000,000,001 (10,000,000,001^2)
2019/02/04(月) 11:43:01.09ID:GcH+yasd
いや、intにしてないからそれを調べてるってわけじゃないのか
2019/02/04(月) 14:12:20.36ID:NdPuZxEw
>>28 言われてみればフロートまでカウントするのはおかしいから判定を変えた。
for i in range(v1, v2+1):
if (i**0.5).is_integer(): c += 1
return c
Core i3 3.2GHz Windows10 python3.7
#結果 8.15625 秒 count= 49151
#範囲 99999999999990000000 100000000000010000000
iPhoneの方が倍くらい早いかな。
#結果 4.180858 秒 count= 49151
Core i7のマシンもあるが大して期待できなさそうだな。
検算の意味で、1から1000までをカウントして31だったから正しいだろう。
なお、Python3の整数int型に最大値はない(上限なし)からどんな数でも扱える。
for i in range(v1, v2+1):
if (i**0.5).is_integer(): c += 1
return c
Core i3 3.2GHz Windows10 python3.7
#結果 8.15625 秒 count= 49151
#範囲 99999999999990000000 100000000000010000000
iPhoneの方が倍くらい早いかな。
#結果 4.180858 秒 count= 49151
Core i7のマシンもあるが大して期待できなさそうだな。
検算の意味で、1から1000までをカウントして31だったから正しいだろう。
なお、Python3の整数int型に最大値はない(上限なし)からどんな数でも扱える。
2019/02/04(月) 14:13:11.15ID:fIIhQCXR
もういいからお前
2019/02/04(月) 14:20:39.50ID:GcH+yasd
>>30
いや、誤差出てるやん
いや、誤差出てるやん
2019/02/04(月) 14:55:46.83ID:GcH+yasd
>>30
これ(count=49151)って99999999999999975424から100000000000000024575 (64bit浮動小数点数の16進表記で0x4415AF1D78B58C3Fから0x4415AF1D78B58C41)の平方根が、
10000000000 (64bit浮動小数点数の16進表記で0x4202A05F20000000)になって全部Trueになってるってことだろ
これ(count=49151)って99999999999999975424から100000000000000024575 (64bit浮動小数点数の16進表記で0x4415AF1D78B58C3Fから0x4415AF1D78B58C41)の平方根が、
10000000000 (64bit浮動小数点数の16進表記で0x4202A05F20000000)になって全部Trueになってるってことだろ
2019/02/04(月) 15:39:51.36ID:8qZo3rbs
99,999,999,980,000,000,001 = 999,999,999^2
100,000,000,000,000,000,000 = 10,000,000,000^2
100,000,000,020,000,000,001 = 10,000,000,001^2
なんだから[99'999'999'999'990'000'000, 100'000'000'000'010'000'000]の区間に入る平方数はただ一つ100,000,000,000,000,000,000しかない
「32bit符号なし整数にしか対応してません」っつうなら分かるがまともに判定出来てないのに「判定出来てる」主張する無能
やれ前提書けだの環境書けだの時間書けだのクソみてぇな御託並べる前に自分の頭の悪さを自覚しろ
100,000,000,000,000,000,000 = 10,000,000,000^2
100,000,000,020,000,000,001 = 10,000,000,001^2
なんだから[99'999'999'999'990'000'000, 100'000'000'000'010'000'000]の区間に入る平方数はただ一つ100,000,000,000,000,000,000しかない
「32bit符号なし整数にしか対応してません」っつうなら分かるがまともに判定出来てないのに「判定出来てる」主張する無能
やれ前提書けだの環境書けだの時間書けだのクソみてぇな御託並べる前に自分の頭の悪さを自覚しろ
2019/02/04(月) 18:19:40.08ID:TMO26aZK
>>34 申し訳ない。 2〜3日前にpython をiPhoneに入れて使い始めてただただ練習のためにお題を使わせてもらってた。
整数と、浮動小数の最大値にまで頭が回らなかった。
今日初めてWindowsにpythonを入れた状態で本当に気が回らなかった。
本当に申し訳ない。
バイナリサーチの方は1個と出るが、時間が膨大にかかる。
整数と、浮動小数の最大値にまで頭が回らなかった。
今日初めてWindowsにpythonを入れた状態で本当に気が回らなかった。
本当に申し訳ない。
バイナリサーチの方は1個と出るが、時間が膨大にかかる。
36デフォルトの名無しさん
2019/02/04(月) 20:37:21.99ID:WZY4HG/d 自然数の割り算関数mydivと余り関数mymodを作れ。
>>36
C++ 多桁長演算(加減乗除)の一環として、mpz_class との互換を目指していました
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
C++ 多桁長演算(加減乗除)の一環として、mpz_class との互換を目指していました
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
2019/02/04(月) 20:50:12.06ID:Ly7rB5Pz
39デフォルトの名無しさん
2019/02/04(月) 21:00:40.83ID:mK0I6q3a modをみる
nが平方数なら、n=x^2 だが、n=x^2 (mod m)でもある
逆にmod で平方数でなければ、元々も平方数ではない
mod 3だと0 1 は平方数だが、2はちがう。3i + 2 は平方数にはならない
nが平方数なら、n=x^2 だが、n=x^2 (mod m)でもある
逆にmod で平方数でなければ、元々も平方数ではない
mod 3だと0 1 は平方数だが、2はちがう。3i + 2 は平方数にはならない
40デフォルトの名無しさん
2019/02/04(月) 22:02:57.78ID:eX/1kX5o >>38
元は小学生にプログラミングを通じて、割り算への理解を深めてもらえないかと考えたんで、単純に演算子を置き換えて欲しくないかも。。。
元は小学生にプログラミングを通じて、割り算への理解を深めてもらえないかと考えたんで、単純に演算子を置き換えて欲しくないかも。。。
41デフォルトの名無しさん
2019/02/05(火) 10:18:54.39ID:ij/1zyvC 小学生の時テストで0点をもらった間違った割り算の
やり方をプログラムにしてみた。
--Lua
function myDivMod(a, b)
local r = 0
while a > 0 do
a = a - b
r = r + 1
end
return r, -a
end
print(myDivMod(10,3))
実行結果
4 2
やり方をプログラムにしてみた。
--Lua
function myDivMod(a, b)
local r = 0
while a > 0 do
a = a - b
r = r + 1
end
return r, -a
end
print(myDivMod(10,3))
実行結果
4 2
2019/02/05(火) 12:28:40.98ID:aE6b0ZPr
>>35 結局 整数のsqrt を作って、範囲の中に納まる最小最大の整数のsqrt を取り出し、その差(+1)がその範囲の中にある平方数の個数と言う作りにした。
ポイントとなった整数のsqrt が秀逸だったのでここに書いておく。 どんなに巨大な数字でも数回のシフト操作だけで終わるから極端にスピードが速い。
ソースは、gist.github.com/bnlucas/5879594
# integer square root
def isqrt_2(n):
if n < 0:
raise ValueError('Square root is not defined for negative numbers.')
x = int(n)
if x == 0:
return 0
a, b = divmod(x.bit_length(), 2)
#divmod(a, b)は(a // b, a % b)のタプルを返す。
#平方数は半分のビット数以下だからそれを最大値で計算開始
n = 2 ** (a + b)
while True:
y = (n + x // n) >> 1 #1bit右にシフト
if y >= n:
return n
n = y
-----------------
#結果 0.0 秒 count= 1000000000
#範囲 999999999000000000000000000000000000 1000000001000000000000000000000000000
#入力bit_length()=120 入力bit_length()=120
平方数範囲 999999999500000000 1000000000499999999
上の二乗 999999999000000000250000000000000000 1000000000999999998249999999000000001
ポイントとなった整数のsqrt が秀逸だったのでここに書いておく。 どんなに巨大な数字でも数回のシフト操作だけで終わるから極端にスピードが速い。
ソースは、gist.github.com/bnlucas/5879594
# integer square root
def isqrt_2(n):
if n < 0:
raise ValueError('Square root is not defined for negative numbers.')
x = int(n)
if x == 0:
return 0
a, b = divmod(x.bit_length(), 2)
#divmod(a, b)は(a // b, a % b)のタプルを返す。
#平方数は半分のビット数以下だからそれを最大値で計算開始
n = 2 ** (a + b)
while True:
y = (n + x // n) >> 1 #1bit右にシフト
if y >= n:
return n
n = y
-----------------
#結果 0.0 秒 count= 1000000000
#範囲 999999999000000000000000000000000000 1000000001000000000000000000000000000
#入力bit_length()=120 入力bit_length()=120
平方数範囲 999999999500000000 1000000000499999999
上の二乗 999999999000000000250000000000000000 1000000000999999998249999999000000001
43デフォルトの名無しさん
2019/02/05(火) 12:33:09.36ID:NCwCR2JI >>41
おしいなw
おしいなw
2019/02/05(火) 13:45:18.58ID:jFne2R1T
掛け算は簡単だけど除算は結構面倒
ttps://ideone.com/EheeYM
ttps://ideone.com/EheeYM
2019/02/05(火) 18:45:08.63ID:63VtM8MC
>>42 の isqrt_2 を使ったパフォーマンステスト。
次のようなのを継ぎ足してテストした。 例によってインデント部は全角空白に変換してるから、逆変換しないと動かない。
def isSqrt(n):
return n == isqrt_2(n)**2
v0 = 12345678901234567890
v = v0**2 # 整数平方される対象の数値
loopc = 100000 # をこの回数繰り返す。
isqr=0
start =time.process_time()
for i in range(loopc): isqr=isqrt_2(v)
end =time.process_time()
print('#整数平方(v)の結果',end-start,'秒')
print(' 繰返し数の回数',loopc),print(),print('#v0 ',v0)
print('#v=v0**2=',v),
print('#isqrt(v)',isqr)
print('#上の**2',isqr**2)
print('対象数vのビット数',v.bit_length(),'bit')
print('vが平方数かどうかの判定',isSqrt(v))
-----
#整数平方(v)の結果 0.22398700000002236 秒
繰返し数の回数 100000
#v0 12345678901234567890
#v=v0**2= 152415787532388367501905199875019052100
#isqrt(v) 12345678901234567890
#上の**2 152415787532388367501905199875019052100
対象数vのビット数 127 bit
vが平方数かどうかの判定 True
次のようなのを継ぎ足してテストした。 例によってインデント部は全角空白に変換してるから、逆変換しないと動かない。
def isSqrt(n):
return n == isqrt_2(n)**2
v0 = 12345678901234567890
v = v0**2 # 整数平方される対象の数値
loopc = 100000 # をこの回数繰り返す。
isqr=0
start =time.process_time()
for i in range(loopc): isqr=isqrt_2(v)
end =time.process_time()
print('#整数平方(v)の結果',end-start,'秒')
print(' 繰返し数の回数',loopc),print(),print('#v0 ',v0)
print('#v=v0**2=',v),
print('#isqrt(v)',isqr)
print('#上の**2',isqr**2)
print('対象数vのビット数',v.bit_length(),'bit')
print('vが平方数かどうかの判定',isSqrt(v))
-----
#整数平方(v)の結果 0.22398700000002236 秒
繰返し数の回数 100000
#v0 12345678901234567890
#v=v0**2= 152415787532388367501905199875019052100
#isqrt(v) 12345678901234567890
#上の**2 152415787532388367501905199875019052100
対象数vのビット数 127 bit
vが平方数かどうかの判定 True
2019/02/06(水) 11:48:35.22ID:Cmz9AyOj
>>45 同じ条件で2分探索法でやると 5.5秒かかった。
2019/02/06(水) 16:53:02.43ID:XOfzhWu4
Wikipediaに Integer square root
https://en.wikipedia.org/wiki/Integer_square_root
があり、その中の 2.1 Using bitwise operations
の二つを試してみたが、
最初のrecursive call を使った方が 1.65秒
次の方が 2.05秒
早いことは早いが、>>42 >>45 のビットシフト法の方がかなり早い。
0.22秒
gmpのisqrt は早そうだが Pythonistaでは使えないので試していない。
https://en.wikipedia.org/wiki/Integer_square_root
があり、その中の 2.1 Using bitwise operations
の二つを試してみたが、
最初のrecursive call を使った方が 1.65秒
次の方が 2.05秒
早いことは早いが、>>42 >>45 のビットシフト法の方がかなり早い。
0.22秒
gmpのisqrt は早そうだが Pythonistaでは使えないので試していない。
2019/02/09(土) 01:16:57.63ID:VrkeVQvn
>>4 そう言う記述を度々見るんだが、具体的なプログラムを提示してくれない?
2019/02/09(土) 05:46:19.68ID:ZuP9aKcb
>>48
前スレでもGMPだって紹介されてたし
https://gmplib.org/manual/Perfect-Square-Algorithm.html
https://gmplib.org/repo/gmp/file/tip/mpn/generic/perfsqr.c
実際に使われる法はビルド時生成(https://gmplib.org/repo/gmp/file/tip/gen-psqr.c)だけど大抵の32/64bitシステムの場合は書いてある通り
前スレでもGMPだって紹介されてたし
https://gmplib.org/manual/Perfect-Square-Algorithm.html
https://gmplib.org/repo/gmp/file/tip/mpn/generic/perfsqr.c
実際に使われる法はビルド時生成(https://gmplib.org/repo/gmp/file/tip/gen-psqr.c)だけど大抵の32/64bitシステムの場合は書いてある通り
50デフォルトの名無しさん
2019/02/09(土) 06:52:32.52ID:y7fm8J5o なんでも放題にすればいい
お題
平方数は 256で割るとあまりの
パターンが44種類になるという。
この44種類を求める。
お題
平方数は 256で割るとあまりの
パターンが44種類になるという。
この44種類を求める。
51デフォルトの名無しさん
2019/02/09(土) 08:05:29.21ID:y7fm8J5o 放題は、お題の間違い
2019/02/09(土) 08:30:22.91ID:IKLi4q/e
python
{(x**2) % 256 for x in range(0,256)}
{(x**2) % 256 for x in range(0,256)}
2019/02/09(土) 10:10:19.89ID:DhY4ZB+P
Ruby
p 0x100.times.map{|i| i*i&0xFF}.uniq.sort
# => [0, 1, 4, [...], 233, 241, 249]
p 0x100.times.map{|i| i*i&0xFF}.uniq.sort
# => [0, 1, 4, [...], 233, 241, 249]
2019/02/09(土) 10:33:40.76ID:O4yJeWlE
javascript
[...new Set(function*(){for(let i=0;i<256;i++)yield i*i%256}())].sort((a,b)=>a-b)
[...new Set(function*(){for(let i=0;i<256;i++)yield i*i%256}())].sort((a,b)=>a-b)
55デフォルトの名無しさん
2019/02/09(土) 14:20:17.67ID:BaccQTUO お題:ハノイの塔の最少手数は一種類しかないのか
2019/02/09(土) 14:22:34.94ID:VrkeVQvn
>>50 その44種(mod256)の中に x%256 が一致するか
python
mod256=sorted({(i**2)%256 for i in range(256)})
x=123*123
print(x%256 in mod256)
# True
これでmod の話が理解できた。 要は完全な平方数じゃないのは平方根の計算をしないと言う話ね。
python
mod256=sorted({(i**2)%256 for i in range(256)})
x=123*123
print(x%256 in mod256)
# True
これでmod の話が理解できた。 要は完全な平方数じゃないのは平方根の計算をしないと言う話ね。
2019/02/09(土) 15:28:05.40ID:1XyVHoA8
>>50 Perl5
%a = map{$_=>1} map{$_*$_%256} 0..256;
@a = keys %a;
print "@a\n";
実行結果
~ $ perl 13_50.pl | wc -w
44
$ perl 13_50.pl
137 89 161 57 1 4 100 17 36 49 121 64 68 144 201 177 65 185 16 9 193 169 129
105 196 132 25 73 249 209 33 233 225 97 41 81 241 164 145 228 217 0 153 113
%a = map{$_=>1} map{$_*$_%256} 0..256;
@a = keys %a;
print "@a\n";
実行結果
~ $ perl 13_50.pl | wc -w
44
$ perl 13_50.pl
137 89 161 57 1 4 100 17 36 49 121 64 68 144 201 177 65 185 16 9 193 169 129
105 196 132 25 73 249 209 33 233 225 97 41 81 241 164 145 228 217 0 153 113
2019/02/09(土) 17:42:33.15ID:1XyVHoA8
2019/02/09(土) 18:17:43.26ID:HLblHrgV
2019/02/09(土) 18:57:59.38ID:luPnpF49
61デフォルトの名無しさん
2019/02/10(日) 06:54:30.87ID:qszHu1wC2019/02/10(日) 12:16:48.56ID:8pY6FeJB
お題
ある数 n とする。
下位から24bit区切りの数を足し合わせてからmod 2^24-1 した数が、元の数nのmod 2^24-1 と一致することを確認しなさい。
ある数 n とする。
下位から24bit区切りの数を足し合わせてからmod 2^24-1 した数が、元の数nのmod 2^24-1 と一致することを確認しなさい。
2019/02/10(日) 12:27:09.74ID:Mq5me4ef
>>62
任意の n に対してある自然数 N, 自然数列{a_k} が存在して
n = Σ_{k = 0}^{N} a_k * 2^(24 * k) と書けるので mod 2^24 - 1 として
n = Σ_{k = 0}^{N} a_k * 1^k
= Σ_{k = 0}^{N} a_k ■
任意の n に対してある自然数 N, 自然数列{a_k} が存在して
n = Σ_{k = 0}^{N} a_k * 2^(24 * k) と書けるので mod 2^24 - 1 として
n = Σ_{k = 0}^{N} a_k * 1^k
= Σ_{k = 0}^{N} a_k ■
2019/02/10(日) 14:27:03.54ID:H2rtpzeI
>>59,60
256はmodじゃなくて&255を取る
確率的には大きい順じゃなくて9,97,17,13,7,5が良いのでは?
9,97,17,13,7,5でmodを取る場合、大きい数からそのままmodを取るのではなく2^48-1でmodを取った数値に対してmod
これで速度どうなる?
256はmodじゃなくて&255を取る
確率的には大きい順じゃなくて9,97,17,13,7,5が良いのでは?
9,97,17,13,7,5でmodを取る場合、大きい数からそのままmodを取るのではなく2^48-1でmodを取った数値に対してmod
これで速度どうなる?
2019/02/10(日) 14:33:21.22ID:JrJlQQ/Q
>>63 それなんと言うプログラム?
2019/02/10(日) 14:41:11.23ID:fWGYOSi7
またこの流れ?
2019/02/10(日) 14:49:22.42ID:NRo2aHHT
mod 255にしたら遅くなるんじゃねーの
0 < n mod 255 < 254
だぞ
0 < n mod 255 < 254
だぞ
2019/02/10(日) 14:49:43.12ID:NRo2aHHT
0 <= n mod 255 <= 254 だった
2019/02/10(日) 15:12:41.36ID:95x0uvij
>>62 python
# n%(2**24-1) を求める
def mod224get(n):
bn=(n.bit_length()+7)//8 #byte長
bb=n.to_bytes(bn,'little')
s= sum([int.from_bytes(bb[i:i+3],'little')
for i in range(0,bn,3) ]) #24bit毎の合計
return s%(2**24-1)
v0=12345678901234567890
#v0=0
n=v0**2
loop = 100000
print('テスト範囲は ',n,'〜',n+loop-1,'loop回数=',loop)
start =time.process_time()
for i in range(n,n+loop):
if mod224get(n) != n%(2**24-1) :print('間違い見っけ',n)
end =time.process_time()
print('全問正解 かかった時間は、',end-start,'秒')
#
―― 結果
テスト範囲は 152415787532388367501905199875019052100 〜 152415787532388367501905199875019152099 loop回数= 100000
全問正解 かかった時間は、 0.2963889999999765 秒
# n%(2**24-1) を求める
def mod224get(n):
bn=(n.bit_length()+7)//8 #byte長
bb=n.to_bytes(bn,'little')
s= sum([int.from_bytes(bb[i:i+3],'little')
for i in range(0,bn,3) ]) #24bit毎の合計
return s%(2**24-1)
v0=12345678901234567890
#v0=0
n=v0**2
loop = 100000
print('テスト範囲は ',n,'〜',n+loop-1,'loop回数=',loop)
start =time.process_time()
for i in range(n,n+loop):
if mod224get(n) != n%(2**24-1) :print('間違い見っけ',n)
end =time.process_time()
print('全問正解 かかった時間は、',end-start,'秒')
#
―― 結果
テスト範囲は 152415787532388367501905199875019052100 〜 152415787532388367501905199875019152099 loop回数= 100000
全問正解 かかった時間は、 0.2963889999999765 秒
2019/02/10(日) 16:02:45.96ID:8pY6FeJB
>>64 アドバイスありがとう。 それは思ったんだけど、現代の言語がそんなところで手抜きはしていないだろうと信じてテストしていなかった。
今、&255 に変えてテストしてみたけど、スピードの差はなかった。 そう言う発想は昔は非常に重要だったけど、今は言語の中で吸収してるみたいだね。
その下のアドバイスに対しては、何故ご自分では試されないのですか?
あまりやるつもりはないのは、mod 2**24-1 と言うのが理解できていないからです。 これで早くなるのなら色々試してみたいんですが、このリストを作るだけでもかなりの時間がかかりめげてます。
今、&255 に変えてテストしてみたけど、スピードの差はなかった。 そう言う発想は昔は非常に重要だったけど、今は言語の中で吸収してるみたいだね。
その下のアドバイスに対しては、何故ご自分では試されないのですか?
あまりやるつもりはないのは、mod 2**24-1 と言うのが理解できていないからです。 これで早くなるのなら色々試してみたいんですが、このリストを作るだけでもかなりの時間がかかりめげてます。
2019/02/10(日) 16:33:26.08ID:H2rtpzeI
>>70
剰余の順番に関しては確率がこんなんだからやで
3 / 5 = 0.600000
4 / 7 = 0.571429
4 / 9 = 0.444444
7 / 13 = 0.538462
9 / 17 = 0.529412
49 / 97 = 0.505155
テーブルは9, 97, 17, 13, 7, 5の物で良いんやで?
多倍長整数の剰余より32bit整数/64bit整数の剰余のほうが計算量が少ないから、
(32bitの場合) 2^24-1で剰余を取ったものに対して9, 17, 13, 7, 5の剰余で平方数かどうかを調べる
(64bitの場合) 2^48-1で剰余を取ったものに対して9, 97, 17, 13, 7, 5の剰余で平方数かどうかを調べる
なしてこんなことができるかってーと、
2^24-1(=16777215)の因数に5, 7, 9, 13, 17が、2^48-1(=281474976710655)の因数に5, 7, 9, 13, 17, 97含まれているからやで
剰余の順番に関しては確率がこんなんだからやで
3 / 5 = 0.600000
4 / 7 = 0.571429
4 / 9 = 0.444444
7 / 13 = 0.538462
9 / 17 = 0.529412
49 / 97 = 0.505155
テーブルは9, 97, 17, 13, 7, 5の物で良いんやで?
多倍長整数の剰余より32bit整数/64bit整数の剰余のほうが計算量が少ないから、
(32bitの場合) 2^24-1で剰余を取ったものに対して9, 17, 13, 7, 5の剰余で平方数かどうかを調べる
(64bitの場合) 2^48-1で剰余を取ったものに対して9, 97, 17, 13, 7, 5の剰余で平方数かどうかを調べる
なしてこんなことができるかってーと、
2^24-1(=16777215)の因数に5, 7, 9, 13, 17が、2^48-1(=281474976710655)の因数に5, 7, 9, 13, 17, 97含まれているからやで
2019/02/10(日) 16:55:58.44ID:8pY6FeJB
>>71 あまり深入りするつもりはないけど、mod 2**24-1 でチェックしたら、
mod 9, 97, 17, 13, 7, 5 でチェックする必要はないと言う事?
ま、数学を解いてるつもりは全くなく、プログラムの練習だからいかに沢山の人が素晴らしいプログラムを見せてくれるかにしか興味はない。
プログラムを書かない人は自分にとってはなんの意味もない。
mod 9, 97, 17, 13, 7, 5 でチェックする必要はないと言う事?
ま、数学を解いてるつもりは全くなく、プログラムの練習だからいかに沢山の人が素晴らしいプログラムを見せてくれるかにしか興味はない。
プログラムを書かない人は自分にとってはなんの意味もない。
2019/02/10(日) 17:11:01.79ID:H2rtpzeI
>>72
ちゃうねん
mod 2**24-1をした数値に対してmod 9, 17, 13, 7, 5 でチェックするねん
もしくはmod 2**48-1をした数値に対してmod 9, 97, 17, 13, 7, 5 でチェックするねん
ちゃうねん
mod 2**24-1をした数値に対してmod 9, 17, 13, 7, 5 でチェックするねん
もしくはmod 2**48-1をした数値に対してmod 9, 97, 17, 13, 7, 5 でチェックするねん
2019/02/10(日) 19:32:43.48ID:/XsfFvRM
>> 73
2重に剰余を取るのはGMPみたく多倍長なら意味があるけど, 32/64bit固定長ならあまり意味はない
複数回剰余を確認する必要があるから多倍長から固定長(32/64bit)にしていて, 更に因数を使えば剰余を求めるための除算の代わりに乗算が使えるから因数の多い2^24 - 1や2^48 - 1を採用してる
2重に剰余を取るのはGMPみたく多倍長なら意味があるけど, 32/64bit固定長ならあまり意味はない
複数回剰余を確認する必要があるから多倍長から固定長(32/64bit)にしていて, 更に因数を使えば剰余を求めるための除算の代わりに乗算が使えるから因数の多い2^24 - 1や2^48 - 1を採用してる
2019/02/11(月) 00:35:41.13ID:8Hdd2FlG
>>62
ガウス少年が見出したように
Σ1,2,…,n-2,n-1=n *(n +1) /2
なので、
n の mod 2^24-1
と
Σ1,2,…,n-2,n-1 =n *(n +1) /2 の mod 2^24-1
が等しいのは自明だと思うけど、
そういう、ちょっとした数学を使わず
Σ1,2,…,n-2,n-1
をloopで和を算出し mod 2^24-1 して比較する
n の mod 2^24-1 と比較する
プログラムを作れという題なんだろうか…
ガウス少年が見出したように
Σ1,2,…,n-2,n-1=n *(n +1) /2
なので、
n の mod 2^24-1
と
Σ1,2,…,n-2,n-1 =n *(n +1) /2 の mod 2^24-1
が等しいのは自明だと思うけど、
そういう、ちょっとした数学を使わず
Σ1,2,…,n-2,n-1
をloopで和を算出し mod 2^24-1 して比較する
n の mod 2^24-1 と比較する
プログラムを作れという題なんだろうか…
2019/02/11(月) 00:37:45.16ID:8Hdd2FlG
2019/02/11(月) 00:57:54.78ID:HnU/OI7o
2019/02/11(月) 01:10:25.11ID:8Hdd2FlG
2019/02/11(月) 01:12:22.73ID:8Hdd2FlG
>>77
ゴメンなんか誤解したかも、よく読む
ゴメンなんか誤解したかも、よく読む
2019/02/11(月) 01:15:22.84ID:f+GXhEiR
ある数nのビット表記方法によって一致する/しないを答えればいいのかな
2019/02/11(月) 01:42:54.29ID:8Hdd2FlG
>>62 Perl5
use bignum (l=>GMP);
use feature say;
sub sum24 {
my $v = $_[0];
if ($v > 0) {
my $d = int($v / 2**24);
my $m = $v % 2**24; # $v - $d * $f6;
$m + sum24($d);
} else {
0;
}
}
$n = 12345678901234567890;
say $n % (2**24 -1);
say sum24($n) % (2**24 -1);
実行結果
~ $ perl 13_62.pl
13189905
13189905
use bignum (l=>GMP);
use feature say;
sub sum24 {
my $v = $_[0];
if ($v > 0) {
my $d = int($v / 2**24);
my $m = $v % 2**24; # $v - $d * $f6;
$m + sum24($d);
} else {
0;
}
}
$n = 12345678901234567890;
say $n % (2**24 -1);
say sum24($n) % (2**24 -1);
実行結果
~ $ perl 13_62.pl
13189905
13189905
2019/02/11(月) 01:47:30.91ID:8Hdd2FlG
2019/02/11(月) 01:53:44.12ID:C0KPLnD/
どうみても自明なんだから確認も糞もないけどな
2019/02/11(月) 01:57:28.89ID:8Hdd2FlG
お題を作ることの難しさだよな…
2019/02/11(月) 02:15:34.48ID:HnU/OI7o
2019/02/11(月) 02:26:56.38ID:8Hdd2FlG
そんな怒るなよ。
暖かくしてぐっすりお休みよ
暖かくしてぐっすりお休みよ
2019/02/11(月) 02:31:44.77ID:HnU/OI7o
しかしここまで複雑な処理をして本当に早くなるのかどうか疑問だけどな。 mod 2**24-1 って結構時間がかかりそうな気がする。
2019/02/11(月) 02:35:42.19ID:ucqIUq+7
>>85
一番能書き垂れてんのお前だろ
クソみたいな御託並べる前に自分のことを考えろっつったろうが
GMPが一体どこで
> n**2%(2**24-1) のリスト
なんか使ってんだ?91で割った場合のテーブルでさえ12byte必要だってのにどうやってそんな巨大なテーブル用意するんだ?
GMPの中身なんか数学の成果の塊だぞ?お前が数学したくないだか出来ないだか知らんがアルゴリズム考えるようなスレでクソみたいなこと喋ってんじゃねぇよ
お前はコードを書いても価値がない
一番能書き垂れてんのお前だろ
クソみたいな御託並べる前に自分のことを考えろっつったろうが
GMPが一体どこで
> n**2%(2**24-1) のリスト
なんか使ってんだ?91で割った場合のテーブルでさえ12byte必要だってのにどうやってそんな巨大なテーブル用意するんだ?
GMPの中身なんか数学の成果の塊だぞ?お前が数学したくないだか出来ないだか知らんがアルゴリズム考えるようなスレでクソみたいなこと喋ってんじゃねぇよ
お前はコードを書いても価値がない
2019/02/11(月) 02:35:55.83ID:8Hdd2FlG
単なるbitmaskで済まない様な場合
あるいは除算して剰余を求めるなら
さんざ研究されていると思うから自力で1から考える前に
先人の業績を知れってことだろ
アバヨ ノシ
あるいは除算して剰余を求めるなら
さんざ研究されていると思うから自力で1から考える前に
先人の業績を知れってことだろ
アバヨ ノシ
2019/02/11(月) 02:36:00.30ID:IhaR3BEX
お題:ポーカーダイス
通常のサイコロを5個振って出た目をポーカーの役になぞってそれぞれの出現確率を求める。
役は、5カード、4カード、ストレート、フルハウス、3カード、2ペア、1ペア、ブタ(ノーペア)
例えば出た目が 1,1,3,1,4 ならスリーカード。2,5,4,6,3 ならストレート。
5カードは6/(6^5)、4カードは(5*5*6)/(6^5)というように数学的に
求めても難しくはないのですが、ここはプログラミングのスレなので
全通り力技でチェックして求めてみてください。
解答例:C言語 https://ideone.com/4X62Am
通常のサイコロを5個振って出た目をポーカーの役になぞってそれぞれの出現確率を求める。
役は、5カード、4カード、ストレート、フルハウス、3カード、2ペア、1ペア、ブタ(ノーペア)
例えば出た目が 1,1,3,1,4 ならスリーカード。2,5,4,6,3 ならストレート。
5カードは6/(6^5)、4カードは(5*5*6)/(6^5)というように数学的に
求めても難しくはないのですが、ここはプログラミングのスレなので
全通り力技でチェックして求めてみてください。
解答例:C言語 https://ideone.com/4X62Am
2019/02/11(月) 03:04:24.50ID:8Hdd2FlG
6^5総当りせよってか…
native compiler系言語で力技か
native compiler系言語で力技か
2019/02/11(月) 03:20:03.89ID:K/18SmCD
Jニキはよ
2019/02/11(月) 03:29:32.98ID:ucqIUq+7
大した数じゃないからズルいことが出来る
https://ideone.com/yEcdPV
https://ideone.com/yEcdPV
2019/02/11(月) 04:00:05.29ID:8Hdd2FlG
お なかなか
2019/02/11(月) 08:16:46.17ID:b3B7Bg4u
python3
https://ideone.com/k6Ea4j
最後の出力部分はpython 3.6以降だと
for k,v in hand.items(): print("{} :\n {} / 7776 ({} %)".format(k,v, round(100*v/7776,2)))
でいけるけど実行環境が3.5なのでやむなく
https://ideone.com/k6Ea4j
最後の出力部分はpython 3.6以降だと
for k,v in hand.items(): print("{} :\n {} / 7776 ({} %)".format(k,v, round(100*v/7776,2)))
でいけるけど実行環境が3.5なのでやむなく
2019/02/11(月) 16:44:30.42ID:xTuBWJbc
なんか数学でもできる力技お題増えてきたな
もっとプログラミングじゃないとできないような良いお題無いんだろうか
もっとプログラミングじゃないとできないような良いお題無いんだろうか
2019/02/11(月) 17:22:02.16ID:7gZS39yo
>>96
そんなの存在しないんじゃない?
そんなの存在しないんじゃない?
2019/02/11(月) 17:28:00.80ID:6aFdKLEP
確率の問題でも特定の疑似乱数と種を使った偏りを求めるとかは数学では難しい
99さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 17:37:44.75ID:adj8EvAq お題: 日本語文字とカッコ { } とスラッシュ(/)で構成された入力文字列Sが与えられる。{ }で囲まれ、かつ
スラッシュで区切られた部分文字列について、それぞれ場合分けを行って、複数の文字列のリストに展開して改行区切りで出力せよ。
カッコの対応が間違っている場合はERRORを出力せよ。
(例1) {ひまわり/あさがお}は{植物/花}です。
(出力結果)
ひまわりは植物です。
あさがおは植物です。
ひまわりは花です。
あさがおは花です。
スラッシュで区切られた部分文字列について、それぞれ場合分けを行って、複数の文字列のリストに展開して改行区切りで出力せよ。
カッコの対応が間違っている場合はERRORを出力せよ。
(例1) {ひまわり/あさがお}は{植物/花}です。
(出力結果)
ひまわりは植物です。
あさがおは植物です。
ひまわりは花です。
あさがおは花です。
100さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 17:59:47.38ID:BEdrdhIs なお、展開の順序については問わない。カッコがなくなるまで繰り返し展開せよ。
101さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 18:20:25.29ID:BEdrdhIs (1) {あ{いう/え}/お{か/き}/く}け{こ}
(2) さ{し/す}せそ{{た/ち}つ/て}と
(2) さ{し/す}せそ{{た/ち}つ/て}と
102デフォルトの名無しさん
2019/02/11(月) 19:00:31.50ID:MkFOBvt9 ネストありかよ、ちょっと面倒だな
103さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 19:03:55.20ID:BEdrdhIs ヒント: まず、適当な場所でブツ切りにしてノードに分ける。
104デフォルトの名無しさん
2019/02/11(月) 19:20:26.84ID:Q78+FEDq >>101 で、どう言う結果を正解とするの?
105さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 19:32:34.31ID:BEdrdhIs (1)の答え(※ソート済み)
あいうけこ
あいうけこ
あえけこ
あえけこ
おかけこ
おかけこ
おきけこ
おきけこ
くけこ
くけこ
くけこ
くけこ
あいうけこ
あいうけこ
あえけこ
あえけこ
おかけこ
おかけこ
おきけこ
おきけこ
くけこ
くけこ
くけこ
くけこ
106さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 19:33:13.25ID:BEdrdhIs (2)の答え(※ソート済み)
さしせそたつと
さしせそちつと
さしせそてと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
さすせそてと
さしせそたつと
さしせそちつと
さしせそてと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
さすせそてと
107デフォルトの名無しさん
2019/02/11(月) 19:36:37.18ID:MkFOBvt9 これでいいのか?
> (1) {あ{いう/え}/お{か/き}/く}け{こ}
あ いう け こ
あ え け こ
お か け こ
お き け こ
く け こ
> (2) さ{し/す}せそ{{た/ち}つ/て}と
さ し せそ た つ と
さ す せそ た つ と
さ し せそ ち つ と
さ す せそ ち つ と
さ し せそ て と
さ す せそ て と
> (1) {あ{いう/え}/お{か/き}/く}け{こ}
あ いう け こ
あ え け こ
お か け こ
お き け こ
く け こ
> (2) さ{し/す}せそ{{た/ち}つ/て}と
さ し せそ た つ と
さ す せそ た つ と
さ し せそ ち つ と
さ す せそ ち つ と
さ し せそ て と
さ す せそ て と
108デフォルトの名無しさん
2019/02/11(月) 19:37:56.93ID:MkFOBvt9 あれ?
変化しないケースも出力するの?
変化しないケースも出力するの?
110さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 19:46:19.44ID:adj8EvAq ごめんなさい。間違えました。重複は単一化して下さい。
112さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 20:21:24.27ID:BEdrdhIs 単純に場所分けを樹木図で考えると重複ができるようだ。すみません。
113デフォルトの名無しさん
2019/02/11(月) 20:48:49.82ID:uHNor3GB お題:Aが真であるならばBが真である ことをプログラムしなさい。
114さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/11(月) 21:04:41.39ID:BEdrdhIs アホちゃいまんねん、パーでんねん。
115デフォルトの名無しさん
2019/02/12(火) 00:09:52.31ID:VqanzRzk バカなのか?AとBに因果関係があるわけじゃないし、この世の全てがプログラム言語でマッピングできるわけじゃない、数学徒は帰れ
116デフォルトの名無しさん
2019/02/12(火) 00:29:24.58ID:xM7yD0R2 const A = true;
const B = A === true ? true : false;
console.log(B);
const B = A === true ? true : false;
console.log(B);
117デフォルトの名無しさん
2019/02/12(火) 01:58:51.98ID:ww6cDCbZ118デフォルトの名無しさん
2019/02/12(火) 01:59:52.12ID:/350tEey >>113
!A&&B
!A&&B
119デフォルトの名無しさん
2019/02/12(火) 02:31:32.61ID:qK/pLy4w >>118 python
B = A
B = A
120デフォルトの名無しさん
2019/02/12(火) 02:31:55.89ID:qK/pLy4w >>113 の間違い
121デフォルトの名無しさん
2019/02/12(火) 02:52:28.28ID:jwrsqhME {あ{いう/え}/お{か/き}/く}けこ
あいうけこ
あえけこ
おかけこ
おきけこ
くけこ
さ{し/す}せそ{{た/ち}つ/て}と
さしせそたつと
さしせそちつと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
あいうけこ
あえけこ
おかけこ
おきけこ
くけこ
さ{し/す}せそ{{た/ち}つ/て}と
さしせそたつと
さしせそちつと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
122デフォルトの名無しさん
2019/02/12(火) 07:13:30.28ID:WW36R8Qd123デフォルトの名無しさん
2019/02/12(火) 09:01:25.53ID:eC1lEXzI >>117も間違い。偽のときは未定義なんだからエラー吐かなきゃ
124デフォルトの名無しさん
2019/02/12(火) 10:15:35.66ID:EWuoyvxz 未定義じゃねえだろアホ
125デフォルトの名無しさん
2019/02/12(火) 10:18:36.24ID:eC1lEXzI126デフォルトの名無しさん
2019/02/12(火) 10:38:38.54ID:/lUdPPCt Aが偽の時はエラー吐かなきゃいけないとかBを偽にしてはいけない
とかいうのは勝手な拡大解釈でしかない
とかいうのは勝手な拡大解釈でしかない
127デフォルトの名無しさん
2019/02/12(火) 10:45:59.39ID:dUnMTtNo 真面目に考えるだけ時間の無駄
128デフォルトの名無しさん
2019/02/12(火) 11:03:54.75ID:8L309PqZ129デフォルトの名無しさん
2019/02/12(火) 11:18:15.32ID:eC1lEXzI >>128
> AならばBでAが偽ならばそれは真だっつーの
えっ、どういうことなの?
それは
AならばB
のとき
AでないならばB
ということ?
BはAに関わらず真ということ?
> AならばBでAが偽ならばそれは真だっつーの
の意味がよくわからん…
> AならばBでAが偽ならばそれは真だっつーの
えっ、どういうことなの?
それは
AならばB
のとき
AでないならばB
ということ?
BはAに関わらず真ということ?
> AならばBでAが偽ならばそれは真だっつーの
の意味がよくわからん…
130デフォルトの名無しさん
2019/02/12(火) 11:29:33.12ID:dUnMTtNo >>129
論理としては A => B (AならばB)は対偶論理 ¬B => ¬A (BでないならばAでない)を成り立たせるために通常 ¬A∨B (AでないかまたはBである) で定義される
つまり A => B という論理式は A が偽であれば B の真偽に依らず真になる
だから何だという話ではある
論理としては A => B (AならばB)は対偶論理 ¬B => ¬A (BでないならばAでない)を成り立たせるために通常 ¬A∨B (AでないかまたはBである) で定義される
つまり A => B という論理式は A が偽であれば B の真偽に依らず真になる
だから何だという話ではある
131デフォルトの名無しさん
2019/02/12(火) 11:30:20.12ID:7Ldk0kbC132デフォルトの名無しさん
2019/02/12(火) 11:36:13.30ID:puzbyhsI AならばBと
Aが真ならばBが真
とは違うだろ
Aが真ならばBが真
とは違うだろ
133デフォルトの名無しさん
2019/02/12(火) 11:43:29.03ID:puzbyhsI 「AならばB」
と言う命題は
「Aが真でBが真である
Aが偽であればBは真である」という命題の
上の文の3行目のはじめの部分をプログラムしろということだぞ
と言う命題は
「Aが真でBが真である
Aが偽であればBは真である」という命題の
上の文の3行目のはじめの部分をプログラムしろということだぞ
134デフォルトの名無しさん
2019/02/12(火) 11:45:33.01ID:puzbyhsI 4行目間違えた
135デフォルトの名無しさん
2019/02/12(火) 12:10:48.64ID:2r3VUiS2 A: 自然数 : 1,2,3,・・・・・
B: 整数 : ・・・・・ , -2,-1,0,1,2,3,・・・・・
AならばBである
AでなければBでもない
BでなければAでもない
B: 整数 : ・・・・・ , -2,-1,0,1,2,3,・・・・・
AならばBである
AでなければBでもない
BでなければAでもない
136デフォルトの名無しさん
2019/02/12(火) 12:11:50.75ID:/o8EBvgR137デフォルトの名無しさん
2019/02/12(火) 12:12:39.52ID:2r3VUiS2 >>135 間違い
A: 自然数 : 1,2,3,・・・・・
B: 整数 : ・・・・・ , -2,-1,0,1,2,3,・・・・・
AならばBである
Aでなければ不定
BでなければAでもない
A: 自然数 : 1,2,3,・・・・・
B: 整数 : ・・・・・ , -2,-1,0,1,2,3,・・・・・
AならばBである
Aでなければ不定
BでなければAでもない
138デフォルトの名無しさん
2019/02/12(火) 12:31:09.58ID:eC1lEXzI139デフォルトの名無しさん
2019/02/12(火) 12:36:07.27ID:puzbyhsI そういうことは日本の教育問題になるからな
140デフォルトの名無しさん
2019/02/12(火) 12:42:53.41ID:YxhBMJOC141デフォルトの名無しさん
2019/02/12(火) 12:43:36.37ID:YxhBMJOC142さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/12(火) 12:47:20.67ID:cy1s3mXO143デフォルトの名無しさん
2019/02/12(火) 13:39:39.30ID:dUnMTtNo144デフォルトの名無しさん
2019/02/12(火) 14:05:55.07ID:/4hrfCEw ゆとり以降は知らんが高校で習ったぞ
145デフォルトの名無しさん
2019/02/12(火) 14:14:27.12ID:eC1lEXzI 高校が義務教育なら俺も高校行けたのに
146デフォルトの名無しさん
2019/02/12(火) 16:12:20.21ID:MCXQbCzx >>145
必要な感じがするのであれば高認受けて高卒と同等にでもなりなさい。昔の大検と違ってそれだけでも高卒扱いになる。
その後大学行くかどうかはご自由に。金と時間があまりないなら通信制ってのもあるよ。
この頃はネットの大学もあるな。よく知らんけど。
まあしかし既に社会人になって何十年も稼いできてしまった人の場合はもはやどうでも良い話かな。
必要な感じがするのであれば高認受けて高卒と同等にでもなりなさい。昔の大検と違ってそれだけでも高卒扱いになる。
その後大学行くかどうかはご自由に。金と時間があまりないなら通信制ってのもあるよ。
この頃はネットの大学もあるな。よく知らんけど。
まあしかし既に社会人になって何十年も稼いできてしまった人の場合はもはやどうでも良い話かな。
147デフォルトの名無しさん
2019/02/12(火) 17:14:44.20ID:AqcDbyue >>138 理解したいと思った気持ちが大事。深入りの必要はない。
プログラムの世界というのは、客のニーズを知らなくてもなんでも解決しないといけないから、その時々で勉強するしかない。 実践の世界。
素地がある方が理解は早いとは思うが、気にすることは無い。
その時に必要なものを勉強すれば(理解できれば)良い。 全ての学問を習得するなんて不可能なんだから、学問なんてあまり気にしない方が良い。
ただ、論理的な思考訓練はやった方が良いとは思うが、大学でできるとは思わない方が良い。 ひたすらプログラムを続けた方が思考訓練になると思うぞ。
プログラムの世界というのは、客のニーズを知らなくてもなんでも解決しないといけないから、その時々で勉強するしかない。 実践の世界。
素地がある方が理解は早いとは思うが、気にすることは無い。
その時に必要なものを勉強すれば(理解できれば)良い。 全ての学問を習得するなんて不可能なんだから、学問なんてあまり気にしない方が良い。
ただ、論理的な思考訓練はやった方が良いとは思うが、大学でできるとは思わない方が良い。 ひたすらプログラムを続けた方が思考訓練になると思うぞ。
148デフォルトの名無しさん
2019/02/12(火) 17:34:27.64ID:AqcDbyue >>113 しかしさ、この日本語は日本語として成り立っていないんじゃないの?
日本語としても論理学としても
日本語の曖昧さを残したまま、お題にする方がおかしい。
これを自分の顧客に提示して見なさい。 バカじゃないのと言われるよ。 理解力がないと思われるだろうな。
日本語としても論理学としても
日本語の曖昧さを残したまま、お題にする方がおかしい。
これを自分の顧客に提示して見なさい。 バカじゃないのと言われるよ。 理解力がないと思われるだろうな。
149デフォルトの名無しさん
2019/02/12(火) 18:50:16.09ID:zaXjz+ge 説教厨あらわる
150デフォルトの名無しさん
2019/02/12(火) 19:11:01.53ID:Rw1aIHZT151デフォルトの名無しさん
2019/02/12(火) 19:12:14.58ID:Rw1aIHZT >>150
意味後違う → 意味が違う
意味後違う → 意味が違う
152デフォルトの名無しさん
2019/02/12(火) 19:59:08.96ID:mxj4fC0D チコ 「A->Bの意味も知らずにボーっとコードかいているんじゃねよ!」
153デフォルトの名無しさん
2019/02/12(火) 21:33:58.92ID:4uAoJeXz >>99 Ruby
def hoge(str)
return str if str.match?(/\A[^{}\/]*\z/)
raise 'ERROR' if str.match?(/\A[^{]*}|{[^}]*\z/)
a, *b = str.scan(/(?<={|\A)[^{}]*(?=}|\z)/).map{|s| s.empty? ? [''] : s.split(?/)}
s = str.gsub(/(?:{|\A)[^{}]*(?:}|\z)/, '%s')
a.product(*b).flat_map{|e| hoge(s % e)}.uniq.sort
end
%w[
{あ{いう/え}/お{か/き}/く}け{こ}
さ{し/す}せそ{{た/ち}つ/て}と]
].each{|s| puts hoge(s), $/}
# =>
あいうけこ
あえけこ
おかけこ
おきけこ
くけこ
さしせそたつと
さしせそちつと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
def hoge(str)
return str if str.match?(/\A[^{}\/]*\z/)
raise 'ERROR' if str.match?(/\A[^{]*}|{[^}]*\z/)
a, *b = str.scan(/(?<={|\A)[^{}]*(?=}|\z)/).map{|s| s.empty? ? [''] : s.split(?/)}
s = str.gsub(/(?:{|\A)[^{}]*(?:}|\z)/, '%s')
a.product(*b).flat_map{|e| hoge(s % e)}.uniq.sort
end
%w[
{あ{いう/え}/お{か/き}/く}け{こ}
さ{し/す}せそ{{た/ち}つ/て}と]
].each{|s| puts hoge(s), $/}
# =>
あいうけこ
あえけこ
おかけこ
おきけこ
くけこ
さしせそたつと
さしせそちつと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
>>133
>「Aが真でBが真である
>Aが偽であればBは真である」
完璧に間違っていますね…Aが偽であってBが偽であってもいいのです
あなた、もう馬鹿としかいいようがないですね、論理学の教科書が読めなかったの?いや、日本語が読めなかったの?
生きていること自体が罪悪といわずして何といえばいいのか…
死ね
>「Aが真でBが真である
>Aが偽であればBは真である」
完璧に間違っていますね…Aが偽であってBが偽であってもいいのです
あなた、もう馬鹿としかいいようがないですね、論理学の教科書が読めなかったの?いや、日本語が読めなかったの?
生きていること自体が罪悪といわずして何といえばいいのか…
死ね
>>132
一緒ですよ
一緒ですよ
156デフォルトの名無しさん
2019/02/13(水) 05:57:47.09ID:ttYQgqMy お題
print(a)
のように変数の宣言や代入なしで
使用するとどうなろか
print(a)
のように変数の宣言や代入なしで
使用するとどうなろか
157デフォルトの名無しさん
2019/02/13(水) 07:02:03.53ID:Xe5jZGpg >>156
日本語でok
日本語でok
158デフォルトの名無しさん
2019/02/13(水) 07:39:48.48ID:aN9MpGEF EXCELシート名が1文字のシートが数シートある。これをwindows10でVB6を使いデータベースで読み取ってみせよ。
159デフォルトの名無しさん
2019/02/13(水) 08:26:40.04ID:ds2YQTN5160デフォルトの名無しさん
2019/02/13(水) 08:38:42.75ID:ds2YQTN5 >>155
AならばBと
Aが真ならばBが真
が同じならば
AならばBと
Aが偽ならばBが真
と同じ
AならばBと
Aが偽ならばBが偽と
同じ
ということになるぞ?
これは同じじゃないから君の言ってることは
間違ってるということだな
AならばBと
Aが真ならばBが真
が同じならば
AならばBと
Aが偽ならばBが真
と同じ
AならばBと
Aが偽ならばBが偽と
同じ
ということになるぞ?
これは同じじゃないから君の言ってることは
間違ってるということだな
161デフォルトの名無しさん
2019/02/13(水) 08:43:59.85ID:ds2YQTN5 よく考えたらやっぱり同じだな
162デフォルトの名無しさん
2019/02/13(水) 09:12:06.89ID:B8qJWD6e >>160
糞コテの肩は持ちたくないがなんだこのくっそみたいな日本語は
「AならばB」と「Aが真ならばBが真」が同値ならば
「AならばB」と「Aが偽ならばBが真」と「Aが偽ならばBが偽」が同値
って言いたいのか?
同値になるわけねえだろ
ABの真偽は4パターンしかねえんだから、いくらお前が無能でも全4パターンくらい考えてからレスしろよ
大体、任意の命題Pに対して「P」と「Pは真である」が同値にならないケースってなんだよ
馬鹿も休み休み言えよホント
糞コテの肩は持ちたくないがなんだこのくっそみたいな日本語は
「AならばB」と「Aが真ならばBが真」が同値ならば
「AならばB」と「Aが偽ならばBが真」と「Aが偽ならばBが偽」が同値
って言いたいのか?
同値になるわけねえだろ
ABの真偽は4パターンしかねえんだから、いくらお前が無能でも全4パターンくらい考えてからレスしろよ
大体、任意の命題Pに対して「P」と「Pは真である」が同値にならないケースってなんだよ
馬鹿も休み休み言えよホント
163デフォルトの名無しさん
2019/02/13(水) 11:03:26.26ID:ds2YQTN5164デフォルトの名無しさん
2019/02/13(水) 11:23:09.04ID:B8qJWD6e 「よく考えたらやっぱり同じだな」だけでは何と何が同じだと思ったのかわからない
悪びれた様子もなく前後の文脈からも推論不可
とてもまともとは思えない
悪びれた様子もなく前後の文脈からも推論不可
とてもまともとは思えない
165デフォルトの名無しさん
2019/02/13(水) 11:31:27.70ID:ds2YQTN5 >>164
わかりにくくてごめんね
わかりにくくてごめんね
166デフォルトの名無しさん
2019/02/13(水) 11:36:53.06ID:ttYQgqMy167デフォルトの名無しさん
2019/02/13(水) 11:59:11.28ID:kZE3tAhm 言語とか使えるライブラリとか制限しないと
意味が無くなっている希ガス
言語指定した場合でも特定の文法を使っては
ならないとか制限加えると面白いものが
出来るような,,,
意味が無くなっている希ガス
言語指定した場合でも特定の文法を使っては
ならないとか制限加えると面白いものが
出来るような,,,
168デフォルトの名無しさん
2019/02/13(水) 12:32:49.57ID:B8qJWD6e169デフォルトの名無しさん
2019/02/13(水) 12:36:48.35ID:ds2YQTN5170デフォルトの名無しさん
2019/02/13(水) 13:30:26.24ID:0cDEleYh >>167 制限なんかしなくてよいよ。 ライブラリが嫌いならあまりライブラリが使えそうにないお題を出せばよいだけだし。
例えば正規表現ライブラリなんて装備されていない言語は殆どないだろうし、標準装備している言語とそうでない言語で不公平になるし。
使えるものはすべて駆使して解けばよいだろ。
例えば正規表現ライブラリなんて装備されていない言語は殆どないだろうし、標準装備している言語とそうでない言語で不公平になるし。
使えるものはすべて駆使して解けばよいだろ。
171デフォルトの名無しさん
2019/02/13(水) 15:40:07.94ID:0cDEleYh >>113 python
if A: B=A
結果
Aが True の時 B(結果)= True
Aが False の時 B(結果)= None (変わらず)
Aが False の時 B(結果)= False (変わらず)
Aが False の時 B(結果)= True (変わらず)
if A: B=A
結果
Aが True の時 B(結果)= True
Aが False の時 B(結果)= None (変わらず)
Aが False の時 B(結果)= False (変わらず)
Aが False の時 B(結果)= True (変わらず)
172デフォルトの名無しさん
2019/02/13(水) 18:13:27.57ID:ttYQgqMy173デフォルトの名無しさん
2019/02/13(水) 18:26:24.24ID:J6DmHrNb >>172 それちゃうよ。
A が False の時 B がFalseに限定される
A が False の時 B がFalseに限定される
174デフォルトの名無しさん
2019/02/13(水) 18:27:28.53ID:J6DmHrNb と言うか何を返してるんだろ。
175デフォルトの名無しさん
2019/02/13(水) 19:13:38.60ID:ayAZ2qec >>156
C言語のようなコンパイルする言語だとだいたいはコンパイル時にエラーになって実行不能だろうなあ(そうでない言語もあるかも知れないが)。
更に print がない言語もある。少なくともCの標準的なライブラリにはない。printf()やputs()のようなものはある。
なので変数宣言すればコンパイルは通るが今度はリンクで関数が見つからなくてエラーになりこれまた実行不能。
まあでも言語や環境で起こることは違って来るので答えは沢山出てくるかも知れない。(またはほとんど相手にされないかだ)。
C言語のようなコンパイルする言語だとだいたいはコンパイル時にエラーになって実行不能だろうなあ(そうでない言語もあるかも知れないが)。
更に print がない言語もある。少なくともCの標準的なライブラリにはない。printf()やputs()のようなものはある。
なので変数宣言すればコンパイルは通るが今度はリンクで関数が見つからなくてエラーになりこれまた実行不能。
まあでも言語や環境で起こることは違って来るので答えは沢山出てくるかも知れない。(またはほとんど相手にされないかだ)。
176デフォルトの名無しさん
2019/02/13(水) 21:01:39.06ID:7GscGWa9 お題
長方形のサイズが指定された時、その長方形に敷きつめられるパターン全て列挙
回転もおkかは好きに定めていい
例: 2 3
#
###
#
#
###
###
長方形のサイズが指定された時、その長方形に敷きつめられるパターン全て列挙
回転もおkかは好きに定めていい
例: 2 3
#
###
#
#
###
###
177デフォルトの名無しさん
2019/02/13(水) 21:10:56.19ID:9nMuJOxB 回転もOKの場合は↓も入るってことかの?
##
#
##
#
178デフォルトの名無しさん
2019/02/14(木) 00:46:56.24ID:QGThOkDI >>176 なんか図が良くわからないな。
2 x 3 なら、そのパーツは, / は空きだとすると
*//
***
と
/**
――-
*//
*//
と
/**
/**
―――
*//
**/
と
/**
//*
――
***
***
――-
みたいな感じかな。パーツの回転を許す許さないは自由という事。
3 x 3 の時は斜めのパーツも許すんだろうね。
*//
/*/
//*
これが一つのパーツ?
2 x 3 なら、そのパーツは, / は空きだとすると
*//
***
と
/**
――-
*//
*//
と
/**
/**
―――
*//
**/
と
/**
//*
――
***
***
――-
みたいな感じかな。パーツの回転を許す許さないは自由という事。
3 x 3 の時は斜めのパーツも許すんだろうね。
*//
/*/
//*
これが一つのパーツ?
179デフォルトの名無しさん
2019/02/14(木) 00:50:00.40ID:QGThOkDI >>178 斜めのパーツは現実的には作れないし、組み合わせが膨大になるから、許さない方が良いのかも。
縦、横に繋がっていないパーツは除外かな。
縦、横に繋がっていないパーツは除外かな。
180デフォルトの名無しさん
2019/02/14(木) 01:06:21.81ID:QGThOkDI これはかなり難しいお題になるんじゃないの。
パーツを少なくするためには、穴開きパーツも許さない方が良さそうだし。
パーツは、空白は 0 基本図形は 1として表した方が良いのかな。 2 x 3 なら
100
110
と
011
001
とか
パーツを少なくするためには、穴開きパーツも許さない方が良さそうだし。
パーツは、空白は 0 基本図形は 1として表した方が良いのかな。 2 x 3 なら
100
110
と
011
001
とか
181デフォルトの名無しさん
2019/02/14(木) 01:48:31.30ID:anuIpNjB >>178
同じ形のパーツだけで指定の長方形に敷き詰められる物を探すんじゃろ
同じ形のパーツだけで指定の長方形に敷き詰められる物を探すんじゃろ
182一尾圭吾
2019/02/14(木) 02:36:27.51ID:ODX5iexG プログラミング超初心者です
自動で2ちゃんにコピペを書き込むようになりたいんですがそれってかなりレベル高いスキルですかね?
自動で2ちゃんにコピペを書き込むようになりたいんですがそれってかなりレベル高いスキルですかね?
184デフォルトの名無しさん
2019/02/14(木) 05:27:21.29ID:6Gfgc+2u >>150
三値論理
三値論理
185デフォルトの名無しさん
2019/02/14(木) 06:52:51.05ID:J1vF692V 論理プログラムのスレはありませんか?
186デフォルトの名無しさん
2019/02/14(木) 08:13:17.60ID:anuIpNjB187デフォルトの名無しさん
2019/02/14(木) 08:52:55.94ID:QGThOkDI >>176 必要なパーツの種類と個数を出せば良いんだろう。
回転させて使おうがどうしようが自由。
回転させて使おうがどうしようが自由。
188デフォルトの名無しさん
2019/02/14(木) 09:41:08.57ID:9tQDIG7c >>178
パターン全てって書いてあるから単に 2^ドット数 だと思ってたんだが、人間が見た時に何らかの意味がありそうなパターンって事なの?
しかし何に意味がありそうと感じるかは主観の問題だからここでのお題としては適切ではないよね。
パターン全てって書いてあるから単に 2^ドット数 だと思ってたんだが、人間が見た時に何らかの意味がありそうなパターンって事なの?
しかし何に意味がありそうと感じるかは主観の問題だからここでのお題としては適切ではないよね。
189デフォルトの名無しさん
2019/02/14(木) 10:37:38.67ID:zlobX1y6 >>188
アホかお前
アホかお前
190デフォルトの名無しさん
2019/02/14(木) 11:47:38.28ID:E3VWek4W191デフォルトの名無しさん
2019/02/14(木) 11:52:48.67ID:rq9LAi9f パーツの対称性を見るくらいしかなさそうだけどなぁ
90度回転で不変ならパーツ自体が正方形の場合しか充填し得ないし180度回転で不変なら長方形しかない
問題は対称性なしの場合で, 回転で得られる4通りの図形の組み合わせで少なくとも適当な長方形が作れる必要がある。
90度回転で不変ならパーツ自体が正方形の場合しか充填し得ないし180度回転で不変なら長方形しかない
問題は対称性なしの場合で, 回転で得られる4通りの図形の組み合わせで少なくとも適当な長方形が作れる必要がある。
192デフォルトの名無しさん
2019/02/14(木) 12:23:18.44ID:4UGy3YJR 出題者です、同じ1種類のパーツのみで敷き詰めるのを意図してた
回転なしは因数でおk、有りは一応解法は浮かんだが証明詰めきれなかったので好きに定めて良いって書いた
回転なしは因数でおk、有りは一応解法は浮かんだが証明詰めきれなかったので好きに定めて良いって書いた
193デフォルトの名無しさん
2019/02/14(木) 12:26:41.67ID:9tQDIG7c >>189
じゃあどう解釈すれば良いのか?
じゃあどう解釈すれば良いのか?
194デフォルトの名無しさん
2019/02/14(木) 12:30:54.48ID:9tQDIG7c >>192
相変わらず問題がよくわからんよ。
相変わらず問題がよくわからんよ。
195デフォルトの名無しさん
2019/02/14(木) 12:50:46.70ID:QGThOkDI >>192 2x3 の時は、1種類のパーツのみで埋めるとすると
111
111
の時は 111 x2個
1,1,1
1,1,1
の時は 1,1(2段) x3個
11,1
1,11
の時は 110,100(2段) 2個とするのか
11 が 2個と 1 が2個 は2種類のパーツだからダメ?
111
111
の時は 111 x2個
1,1,1
1,1,1
の時は 1,1(2段) x3個
11,1
1,11
の時は 110,100(2段) 2個とするのか
11 が 2個と 1 が2個 は2種類のパーツだからダメ?
196デフォルトの名無しさん
2019/02/14(木) 13:04:00.12ID:QGThOkDI197デフォルトの名無しさん
2019/02/14(木) 13:09:44.77ID:zlobX1y6 上でもう出てんだろ
回転なしなら辺の約数の組み合わせで全部だっつーの
回転なしなら辺の約数の組み合わせで全部だっつーの
198デフォルトの名無しさん
2019/02/14(木) 13:44:03.89ID:icHgtaXf ヤング図形考えて終わりじゃねえのコレ
199デフォルトの名無しさん
2019/02/14(木) 13:56:13.92ID:iDdALKjs abcd
badc
abab
cdcd
aaba
babb
abbb
aaab
同じパターンで埋めるのって色々できそうだけどこういうの全部いいの?
badc
abab
cdcd
aaba
babb
abbb
aaab
同じパターンで埋めるのって色々できそうだけどこういうの全部いいの?
200デフォルトの名無しさん
2019/02/14(木) 18:55:26.99ID:PxTMiczy201デフォルトの名無しさん
2019/02/14(木) 19:04:40.56ID:iDdALKjs いや全部一種類だよ
マスがくっついてないだけで
連続してるとは書かれてなかったし
マスがくっついてないだけで
連続してるとは書かれてなかったし
202デフォルトの名無しさん
2019/02/14(木) 19:56:54.06ID:IkVUbwNW お題を正しく理解できてない模様 >>176をもう1度確認
1つ目の#は6個、2つ目の###は2個、
3つ目の# 4つ目の###
#は3個、 ###は1個で2行3列が全て埋まります
1つ目の#は6個、2つ目の###は2個、
3つ目の# 4つ目の###
#は3個、 ###は1個で2行3列が全て埋まります
203デフォルトの名無しさん
2019/02/14(木) 20:35:35.28ID:0TijawxO204デフォルトの名無しさん
2019/02/14(木) 20:45:00.72ID:0TijawxO >>202 全く理解できない。
>>176 はどうして一つ目が6個なのかな? 1個しかないじゃん?
一つ目って何? 二つ目って何?
https://i.imgur.com/GzvMfWg.jpg
自分が今見てるのは、iPhone BB2C
>>176 はどうして一つ目が6個なのかな? 1個しかないじゃん?
一つ目って何? 二つ目って何?
https://i.imgur.com/GzvMfWg.jpg
自分が今見てるのは、iPhone BB2C
205デフォルトの名無しさん
2019/02/14(木) 20:54:16.99ID:RyxU72PZ 回答の良し悪しだけじゃない、良問悪問ってあるよね…
206デフォルトの名無しさん
2019/02/14(木) 21:20:53.44ID:IkVUbwNW >>204
1つ目の # は6個で2行3列が全て埋まります
###
###
2つ目の ### は2個で2行3列が全て埋まります
###
###
3つ目の #
# は3個で2行3列が全て埋まります
###
###
4つ目の ###
### は1個で2行3列が全て埋まります
###
###
1つ目の # は6個で2行3列が全て埋まります
###
###
2つ目の ### は2個で2行3列が全て埋まります
###
###
3つ目の #
# は3個で2行3列が全て埋まります
###
###
4つ目の ###
### は1個で2行3列が全て埋まります
###
###
207デフォルトの名無しさん
2019/02/15(金) 01:14:00.78ID:Ap6BYDwO208デフォルトの名無しさん
2019/02/15(金) 01:38:17.60ID:nnYj1Xkq209デフォルトの名無しさん
2019/02/15(金) 02:40:42.39ID:YMyZWZCa210デフォルトの名無しさん
2019/02/15(金) 06:13:53.42ID:hXoOelh0211デフォルトの名無しさん
2019/02/15(金) 08:54:29.71ID:nnYj1Xkq212デフォルトの名無しさん
2019/02/15(金) 10:38:13.03ID:NxGjA/1R >>199のような飛び飛びのパターンまで含めると5x5くらいのサイズなら解けそうでも
10x10くらいの大きさになるとほぼ解けなくなるか?
10x10くらいの大きさになるとほぼ解けなくなるか?
213デフォルトの名無しさん
2019/02/15(金) 11:04:50.72ID:bh7l703i ...
d0<-a
a->b
b->c
c->d
c'<-d
b'<-c'
a<-b'
d->a2
d<-a2
a2->b2
....
に対して
任意の英数字から初めて右向きの矢印をnこ進んだ英数字を一瞬で割り出す簡単な計算方法を教えろ
左向きの矢印のときも答えろ
ここで英数字には好きな整数の値を対応させろ
d0<-a
a->b
b->c
c->d
c'<-d
b'<-c'
a<-b'
d->a2
d<-a2
a2->b2
....
に対して
任意の英数字から初めて右向きの矢印をnこ進んだ英数字を一瞬で割り出す簡単な計算方法を教えろ
左向きの矢印のときも答えろ
ここで英数字には好きな整数の値を対応させろ
214デフォルトの名無しさん
2019/02/15(金) 11:10:32.09ID:bh7l703i 自己解決しました
この問題には答えなくていいです
この問題には答えなくていいです
215デフォルトの名無しさん
2019/02/15(金) 11:21:16.25ID:bh7l703i 新問題
...
g0<-a
a->b
b->c
c->d
c'<-d
b'<-c'
a<-b'
d->e
e->f
f->g
f'<-g
e'<-f'
g->a1
g<-a1
a1->b1
....
に対して
任意の英数字から初めて右向きの矢印をnこ進んだ英数字を一瞬で割り出す簡単な計算方法を教えろ
左向きの矢印のときも教えろ
ここで英数字には好きな整数の値を対応させろ
...
g0<-a
a->b
b->c
c->d
c'<-d
b'<-c'
a<-b'
d->e
e->f
f->g
f'<-g
e'<-f'
g->a1
g<-a1
a1->b1
....
に対して
任意の英数字から初めて右向きの矢印をnこ進んだ英数字を一瞬で割り出す簡単な計算方法を教えろ
左向きの矢印のときも教えろ
ここで英数字には好きな整数の値を対応させろ
216デフォルトの名無しさん
2019/02/15(金) 11:22:43.57ID:bh7l703i 訂正
d<-e'
追加で
d<-e'
追加で
217デフォルトの名無しさん
2019/02/15(金) 11:45:59.15ID:446NzcaO 日本語で書けや
218デフォルトの名無しさん
2019/02/15(金) 11:55:27.68ID:bh7l703i219デフォルトの名無しさん
2019/02/15(金) 12:34:22.87ID:fQG3bb7R 自己解決ってどういうこと?
宿題貼ってるの?
宿題貼ってるの?
220デフォルトの名無しさん
2019/02/15(金) 12:41:19.85ID:bh7l703i 俺はキチガイだから相手にしないほうが良い
221デフォルトの名無しさん
2019/02/15(金) 12:43:47.27ID:JRF4Gyvi わけのわからん問題が続くなあ・・・
222デフォルトの名無しさん
2019/02/15(金) 17:27:20.42ID:DyMjpctN >>211
> 回転もおkかは好きに定めていい
> 回転もおkかは好きに定めていい
223デフォルトの名無しさん
2019/02/16(土) 02:08:44.97ID:3MiMTZ5E しかしこの問題は回転を考えないと、曲がったパーツは不可能だね。
かなり単純化される。
かなり単純化される。
224デフォルトの名無しさん
2019/02/16(土) 02:11:07.89ID:vjYPWj7f なんかスレが新しくなってから湧いてきたPythonのクソみたいなコード連投してる日本語がめちゃくちゃのやつうざい
225デフォルトの名無しさん
2019/02/16(土) 02:16:11.76ID:bRo2S9Sl 前スレから居るんですよそいつね
226デフォルトの名無しさん
2019/02/16(土) 02:35:08.75ID:zutWNq0P 2行3列で回転無しなら以下の4つが答え
#
###
#
#
###
###
回転ありなら更に以下の2つも
##
#
#
##
#
###
#
#
###
###
回転ありなら更に以下の2つも
##
#
#
##
227デフォルトの名無しさん
2019/02/16(土) 07:00:03.49ID:wpb3vJTT228デフォルトの名無しさん
2019/02/16(土) 09:56:41.50ID:3oducOde 煽りではなく本当に発達障害またはそれに準ずる知的ボーダーを疑うレベルで頭悪いな
229デフォルトの名無しさん
2019/02/16(土) 10:48:56.77ID:3MiMTZ5E >>228 煽りじゃん。 プログラムを出してくれた方が良い。
230デフォルトの名無しさん
2019/02/16(土) 12:54:53.60ID:8ZVYBrON お題:バブルソートを実装せよ
231デフォルトの名無しさん
2019/02/16(土) 15:04:36.49ID:PD6v+6Vh >>230 Perl5
use feature qw{current_sub say};
sub bblsort {
for (0..@_) {
sub {
if (@_ >= 2) {
__SUB__->(@_[1..$#_]);
($_[1], $_[0]) = ($_[0], $_[1])
if $_[0] > $_[1]
}
}->(@_[$_..$#_]);
}
}
use List::Util shuffle;
@a = shuffle 1..20;
say "1) @a";
bblsort @a;
say "2) @a";
実行結果
~ $ perl 13_230_bblsort.pl
1) 13 6 18 7 15 1 11 8 20 16 14 4 9 10 12 17 2 19 5 3
2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use feature qw{current_sub say};
sub bblsort {
for (0..@_) {
sub {
if (@_ >= 2) {
__SUB__->(@_[1..$#_]);
($_[1], $_[0]) = ($_[0], $_[1])
if $_[0] > $_[1]
}
}->(@_[$_..$#_]);
}
}
use List::Util shuffle;
@a = shuffle 1..20;
say "1) @a";
bblsort @a;
say "2) @a";
実行結果
~ $ perl 13_230_bblsort.pl
1) 13 6 18 7 15 1 11 8 20 16 14 4 9 10 12 17 2 19 5 3
2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
232デフォルトの名無しさん
2019/02/16(土) 16:42:44.41ID:hxDCwUVz お題:数値Xを4つの方法で整数に丸めよ
(1) 0に向かう
(2) 0から遠ざかる
(3) 正の無限大に向かう
(4) 負の無限大に向かう
X = 0.5
=> 0 1 1 0
X = -1.1
=> -1 -2 -1 -2
X = 3
=> 3 3 3 3
(1) 0に向かう
(2) 0から遠ざかる
(3) 正の無限大に向かう
(4) 負の無限大に向かう
X = 0.5
=> 0 1 1 0
X = -1.1
=> -1 -2 -1 -2
X = 3
=> 3 3 3 3
233デフォルトの名無しさん
2019/02/16(土) 16:47:26.55ID:akVlWGeE ふたたび、円の内部の整数点を求めるやつ。個数ごとその最小半径を求める。
41個、47個とかが難し目だった気が。
41個、47個とかが難し目だった気が。
234デフォルトの名無しさん
2019/02/16(土) 17:07:10.46ID:wpb3vJTT 内部じゃなくて円周上のやろ
235デフォルトの名無しさん
2019/02/16(土) 17:07:42.16ID:cltO7Ts6236デフォルトの名無しさん
2019/02/16(土) 17:27:32.65ID:PD6v+6Vh >>232 組み込み使っていいんだよね? (面倒になるけど、使わなくても書けるけどサ…)
Perl5
use POSIX qw(floor ceil);
for (0.5, -1.1, 3) {
@a = ("$_ => ",
sprintf('%d', $_), #int($_),
($_ > 0 ? ceil($_) : ceil($_-1)),
ceil($_),
floor($_)
);
print "@a\n";
}
実行結果
~ $ perl 13_232_round.pl
0.5 => 0 1 1 0
-1.1 => -1 -2 -1 -2
3 => 3 3 3 3
Perl5
use POSIX qw(floor ceil);
for (0.5, -1.1, 3) {
@a = ("$_ => ",
sprintf('%d', $_), #int($_),
($_ > 0 ? ceil($_) : ceil($_-1)),
ceil($_),
floor($_)
);
print "@a\n";
}
実行結果
~ $ perl 13_232_round.pl
0.5 => 0 1 1 0
-1.1 => -1 -2 -1 -2
3 => 3 3 3 3
237デフォルトの名無しさん
2019/02/16(土) 17:33:21.11ID:PfkkbXxw >>230 Ruby
def bs(ary)
ary.tap do |a|
(a.size**2).times do
(a.size - 1).times do |i|
a[i + 1], a[i] = a[i, 2] if a[i] > a[i + 1]
end
end
end
end
p bs([3, 1, 4, 15, 92]) # => [1, 3, 4, 15, 92]
>>232
sgn = -> n {n <=> 0}
r4 = -> n {n.floor}
r3 = -> n {-r4[-n]}
r2 = -> n {sgn[n] * r3[n.abs]}
r1 = -> n {sgn[n] * r4[n.abs]}
[0.5, -1.1, 3].each{|i| puts 'x = %p => %p %p %p %p' % [i, r1[i], r2[i], r3[i], r4[i]]}
# =>
x = 0.5 => 0 1 1 0
x = -1.1 => -1 -2 -1 -2
x = 3 => 3 3 3 3
def bs(ary)
ary.tap do |a|
(a.size**2).times do
(a.size - 1).times do |i|
a[i + 1], a[i] = a[i, 2] if a[i] > a[i + 1]
end
end
end
end
p bs([3, 1, 4, 15, 92]) # => [1, 3, 4, 15, 92]
>>232
sgn = -> n {n <=> 0}
r4 = -> n {n.floor}
r3 = -> n {-r4[-n]}
r2 = -> n {sgn[n] * r3[n.abs]}
r1 = -> n {sgn[n] * r4[n.abs]}
[0.5, -1.1, 3].each{|i| puts 'x = %p => %p %p %p %p' % [i, r1[i], r2[i], r3[i], r4[i]]}
# =>
x = 0.5 => 0 1 1 0
x = -1.1 => -1 -2 -1 -2
x = 3 => 3 3 3 3
238デフォルトの名無しさん
2019/02/16(土) 17:34:37.44ID:PD6v+6Vh >>236 これだと
入力が0のとき
>(2) 0から遠ざかる
が-1になっちゃう。
($_ > 0 ? ceil($_) : ceil($_-1)),
↓を
($_ >= 0 ? ceil($_) : ceil($_-1)),
とすべきでしょうね。スマソ
入力が0のとき
>(2) 0から遠ざかる
が-1になっちゃう。
($_ > 0 ? ceil($_) : ceil($_-1)),
↓を
($_ >= 0 ? ceil($_) : ceil($_-1)),
とすべきでしょうね。スマソ
239デフォルトの名無しさん
2019/02/16(土) 18:34:59.76ID:akVlWGeE >>234
円周上が正解
円周上が正解
240デフォルトの名無しさん
2019/02/16(土) 22:05:48.79ID:lcFO2eao241デフォルトの名無しさん
2019/02/16(土) 22:20:47.39ID:yZTjSyit >>262に期待。
243デフォルトの名無しさん
2019/02/16(土) 23:30:26.24ID:ReDOqu2L >>232 をやろうとおもって、IEEE754 の float/double を直接触る方法を探しているのですが、なにかいい方法はないでしょうか…
245デフォルトの名無しさん
2019/02/17(日) 00:24:40.58ID:xZHcxwZO >>245
thx a lot !!
thx a lot !!
247デフォルトの名無しさん
2019/02/17(日) 01:04:30.52ID:iMRi3xg5 >>244
あった
あった
248デフォルトの名無しさん
2019/02/17(日) 08:30:18.08ID:SfPzlMrR >>233
これ
「Nに対し平面上の円で、その円周上の整数点がちょうどN個となる円の最小半径を求めよ」
例)
x^2 + y^2 = 1の整数点は4つだが、最小半径ではない。
(x-0.5)^2 + (y-0.5)^2 = 0.5の方が小さい。
これ
「Nに対し平面上の円で、その円周上の整数点がちょうどN個となる円の最小半径を求めよ」
例)
x^2 + y^2 = 1の整数点は4つだが、最小半径ではない。
(x-0.5)^2 + (y-0.5)^2 = 0.5の方が小さい。
249デフォルトの名無しさん
2019/02/17(日) 09:09:13.01ID:SfPzlMrR >>248
網羅的は、きりがなく一つの予想をたてた。
一つ半径を求めたら、次のような操作で半径を縮めたものと、真の最小半径が一致する予想。
半径rの整数点がNだとして。 rを整数比で縮小して中心をずらす。
たとえば上の例だと、r=1で、r → 2/4 r で、
(2x -1)^2 + (2y -1)^2 = 2r
両辺4倍して中心ずらした式
網羅的は、きりがなく一つの予想をたてた。
一つ半径を求めたら、次のような操作で半径を縮めたものと、真の最小半径が一致する予想。
半径rの整数点がNだとして。 rを整数比で縮小して中心をずらす。
たとえば上の例だと、r=1で、r → 2/4 r で、
(2x -1)^2 + (2y -1)^2 = 2r
両辺4倍して中心ずらした式
250デフォルトの名無しさん
2019/02/17(日) 14:03:58.61ID:SfPzlMrR 整数比かけるので有理数半径ならすべて作り出せるから当たり前か
無駄なく高速に半径縮められる手法が大事か
無駄なく高速に半径縮められる手法が大事か
251デフォルトの名無しさん
2019/02/17(日) 14:06:36.33ID:SfPzlMrR あと半径は間違いで、半径でなく右辺、半径^2 だった
252デフォルトの名無しさん
2019/02/17(日) 19:56:30.00ID:qArvPplr お題
パンケーキソートを実装する
パンケーキソートを実装する
253デフォルトの名無しさん
2019/02/18(月) 22:45:57.31ID:Gp2d+oGP >>252 Perl5 (効率の良いアルゴリズムではないけれど、まずは…)
use List::Util shuffle;
@a = shuffle 1..20;
print "shuffled) @a\n";
sub flip {
($m, $n) = @_;
@a[0..$m] = reverse @a[0..$m];
@a[0..$n] = reverse @a[0..$n];
}
for $i (reverse 1..$#a) {
$k = undef;
for (0..$i) {
$k = $_ if (!defined($k) or $a[$k] < $a[$_])
}
flip($k, $i) if $k < $i;
}
print "sorted ) @a\n";
実行例
~ $ perl 13_252_clumsy_pancake_sort.pl
shuffled) 18 6 2 13 16 1 12 15 10 4 17 20 9 7 19 14 5 11 3 8
sorted ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use List::Util shuffle;
@a = shuffle 1..20;
print "shuffled) @a\n";
sub flip {
($m, $n) = @_;
@a[0..$m] = reverse @a[0..$m];
@a[0..$n] = reverse @a[0..$n];
}
for $i (reverse 1..$#a) {
$k = undef;
for (0..$i) {
$k = $_ if (!defined($k) or $a[$k] < $a[$_])
}
flip($k, $i) if $k < $i;
}
print "sorted ) @a\n";
実行例
~ $ perl 13_252_clumsy_pancake_sort.pl
shuffled) 18 6 2 13 16 1 12 15 10 4 17 20 9 7 19 14 5 11 3 8
sorted ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
254デフォルトの名無しさん
2019/02/19(火) 22:19:54.18ID:sIqHxZ1N ; Common Lisp
(defun flip (seq n)
(concatenate (type-of seq) (nreverse (subseq seq 0 (1+ n))) (subseq seq (1+ n))))
(defun pancake-sort (seq predicate)
(loop for s = seq
then (if j (flip (flip (flip (flip s (1- j)) (1- i)) i) j) s)
for i from 1 to (1- (length seq))
for j = (position (elt s i) s :end i :test predicate)
finally (return s)))
(defun flip (seq n)
(concatenate (type-of seq) (nreverse (subseq seq 0 (1+ n))) (subseq seq (1+ n))))
(defun pancake-sort (seq predicate)
(loop for s = seq
then (if j (flip (flip (flip (flip s (1- j)) (1- i)) i) j) s)
for i from 1 to (1- (length seq))
for j = (position (elt s i) s :end i :test predicate)
finally (return s)))
255デフォルトの名無しさん
2019/02/19(火) 22:25:14.24ID:flzwRht/ お題:1から8までのカードを混ぜ、2枚そこから引いた時1枚目*10+2枚目が素数になる確率を求める。
ただし、
1. 小数第3位で四捨五入した後に回答すること。
2. 数学的な証明は禁止。
3. 各カードは9-その数字の数だけ存在する。 (例:1ならば8枚存在する)
4. 各カードが出る確率はまだ引かれていないカードの枚数に比例する。
ただし、
1. 小数第3位で四捨五入した後に回答すること。
2. 数学的な証明は禁止。
3. 各カードは9-その数字の数だけ存在する。 (例:1ならば8枚存在する)
4. 各カードが出る確率はまだ引かれていないカードの枚数に比例する。
256デフォルトの名無しさん
2019/02/20(水) 00:45:46.98ID:VV/V1Ls8 python
print(0.31)
print(0.31)
257デフォルトの名無しさん
2019/02/20(水) 00:55:56.83ID:SyQ4jkRO >>255 Perl5
$R = 0.0;
@s = map{($_) x (9-$_)} 1..8; #say "@s";
$t = @s; #say $t;
for (qw{11 13 17 23 31 37 41 43 47 53 61 67 71 73 83}) {
@o = split'';
my %h;
$h{$_}++ for @s;
my $r = $h{$o[0]}-- / $t;
$r *= $h{$o[1]}-- / ($t - 1);
$R += $r;
}
printf "%3.2f\n", $R;
実行結果
~ $ perl 13_255.pl
0.31
$R = 0.0;
@s = map{($_) x (9-$_)} 1..8; #say "@s";
$t = @s; #say $t;
for (qw{11 13 17 23 31 37 41 43 47 53 61 67 71 73 83}) {
@o = split'';
my %h;
$h{$_}++ for @s;
my $r = $h{$o[0]}-- / $t;
$r *= $h{$o[1]}-- / ($t - 1);
$R += $r;
}
printf "%3.2f\n", $R;
実行結果
~ $ perl 13_255.pl
0.31
258さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/20(水) 00:58:27.33ID:5PEVWiZL お題: URLで場所を指定された、インターネット上のテキストファイルをダウンロードするプログラム。
259デフォルトの名無しさん
2019/02/20(水) 01:16:40.92ID:SyQ4jkRO >>258 Perl5
require LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)');
use HTTP::Cookies;
$ua->cookie_jar(HTTP::Cookies->new(file => 'lwp-cookies.txt', autosave => 1));
$url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt';
$file = './0_README.txt';
$res = $ua->mirror($url, $file);
print $res->status_line, "\n";
実行例
~ $ perl 13_258.pl
200 OK
(※こういうのは、別に今急に考えたわけじゃなく、日常的に作って使っているのですぐ投稿できました)
require LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)');
use HTTP::Cookies;
$ua->cookie_jar(HTTP::Cookies->new(file => 'lwp-cookies.txt', autosave => 1));
$url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt';
$file = './0_README.txt';
$res = $ua->mirror($url, $file);
print $res->status_line, "\n";
実行例
~ $ perl 13_258.pl
200 OK
(※こういうのは、別に今急に考えたわけじゃなく、日常的に作って使っているのですぐ投稿できました)
260さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/20(水) 01:37:18.13ID:jAMIqMc6 WSHでダウンロードできるヤツ、おる?
261デフォルトの名無しさん
2019/02/20(水) 01:40:03.52ID:SyQ4jkRO >>260
wget.exe か curl 使えば?
wget.exe か curl 使えば?
262デフォルトの名無しさん
2019/02/20(水) 02:05:29.76ID:Te3YpcYw >>260 download.js
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.Open("GET", "http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt", false);
xmlhttp.Send();
var stream = new ActiveXObject("Adodb.Stream");
stream.Type = 1;
stream.Open();
stream.Write(xmlhttp.responseBody);
stream.SaveToFile("0_README.txt", 2);
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.Open("GET", "http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt", false);
xmlhttp.Send();
var stream = new ActiveXObject("Adodb.Stream");
stream.Type = 1;
stream.Open();
stream.Write(xmlhttp.responseBody);
stream.SaveToFile("0_README.txt", 2);
263デフォルトの名無しさん
2019/02/20(水) 02:28:54.15ID:PF1BNO4k pythonista stash 反則?
$ wget http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt
$ ls -la *.txt
0_README.txt (2.4K) 2019-02-20 02:21:45
$ wget http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt
$ ls -la *.txt
0_README.txt (2.4K) 2019-02-20 02:21:45
264デフォルトの名無しさん
2019/02/20(水) 02:51:47.69ID:qYIek1dL >>255
;; Common Lisp
(let ((prime (list 2)))
(defun primep (n)
(loop for i from (1+ (car prime)) upto n
unless (find-if (lambda (j) (zerop (mod i j))) prime :from-end t)
do (push i prime))
(find n prime)))
(defun nearest (i j)
(/ (floor (+ (* i (expt 10 j)) 0.5)) (expt 10 j)))
(loop with cards = (loop for i from 1 to 8 nconc (make-list (- 9 i) :initial-element i))
and n = 0 and p = 0
for one in cards
do (loop for two in (remove one cards :count 1)
do (incf n)
if (primep (+ (* 10 one) two)) do (incf p))
finally (format t "~,3F~%" (nearest (* (/ p n)) 3)))
;; Common Lisp
(let ((prime (list 2)))
(defun primep (n)
(loop for i from (1+ (car prime)) upto n
unless (find-if (lambda (j) (zerop (mod i j))) prime :from-end t)
do (push i prime))
(find n prime)))
(defun nearest (i j)
(/ (floor (+ (* i (expt 10 j)) 0.5)) (expt 10 j)))
(loop with cards = (loop for i from 1 to 8 nconc (make-list (- 9 i) :initial-element i))
and n = 0 and p = 0
for one in cards
do (loop for two in (remove one cards :count 1)
do (incf n)
if (primep (+ (* 10 one) two)) do (incf p))
finally (format t "~,3F~%" (nearest (* (/ p n)) 3)))
265さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/20(水) 03:32:48.09ID:jAMIqMc6 わーい、これでダウンロード制限された端末でDLできるぞ。やったー!
266デフォルトの名無しさん
2019/02/20(水) 03:35:30.81ID:VV/V1Ls8 お題スレってそういう趣旨の場所だっけか?
267デフォルトの名無しさん
2019/02/20(水) 03:43:59.14ID:J4bEIWoi >>265
できるかなあ?どういう制限しているかにもよるぞ。
できるかなあ?どういう制限しているかにもよるぞ。
268デフォルトの名無しさん
2019/02/20(水) 05:32:07.81ID:B2QSVSiS PowerShell にも、curl, wget ある
get-alias (gal)
curl -> Invoke-WebRequest
wget -> Invoke-WebRequest
と言うことは、Ruby からも、そのコマンドを呼べる
get-alias (gal)
curl -> Invoke-WebRequest
wget -> Invoke-WebRequest
と言うことは、Ruby からも、そのコマンドを呼べる
269268
2019/02/20(水) 09:30:07.43ID:B2QSVSiS なんと、コマンドプロンプトで、
where curl と入力すると、
C:\Windows\System32\curl.exe
PowerShell の、curl, wget は、Invoke-WebRequest のエイリアスだけど、
curl.exe は、本物のcurl !
where curl と入力すると、
C:\Windows\System32\curl.exe
PowerShell の、curl, wget は、Invoke-WebRequest のエイリアスだけど、
curl.exe は、本物のcurl !
270デフォルトの名無しさん
2019/02/20(水) 09:49:14.61ID:hK+DOQws >>268>>269
死ね
死ね
271デフォルトの名無しさん
2019/02/20(水) 09:52:59.12ID:PF1BNO4k >>258 >>265 なんだ下心があったのか。
pythonista stash は以下のコマンドが使える。
help(StaSh) v0.7.1
alias, cat, cd, clear, cowsay, cp, crypt, curl, cut, dropbox_setup, du, easy_config, echo, edit, exit, fg, find, ftpserver, gci, gh, git, grep, head, httpserver,
jobs, kill, latte, ls, mail, man, mc, md5sum, mkdir, monkeylord, more, mount, mv, openin, pbcopy,
pbpaste, ping, Usage, pip, printenv, printhex, ptinstaller, pwd, py-tree, python, python3, quicklook, rm, rmdir, scp, selfupdate, sha1sum, sha256sum,
sort, source, sqlite, ssh, ssh-keygen, stashconf, tail, tar, telnet, totd, touch, umount, uniq, unzip, version,
wc, webviewer, wget, whatis, which, wol, xargs, zip
ftpserver や、httpserverは簡易的なサーバーになる。
ssh やscp 、tar zip などは使い道多そう。
webviewer てpython の下でブラウザが立ち上がってるみたいなんだがどんな使い道があるんだろう?
なお、標準python用のシェルは、xonsh と言うのがあるらしい。 xonsh では、標準的なshellコマンドと並行してpython スクリプトも実行できるから強力。
stash ではそれはできない。
pythonista stash は以下のコマンドが使える。
help(StaSh) v0.7.1
alias, cat, cd, clear, cowsay, cp, crypt, curl, cut, dropbox_setup, du, easy_config, echo, edit, exit, fg, find, ftpserver, gci, gh, git, grep, head, httpserver,
jobs, kill, latte, ls, mail, man, mc, md5sum, mkdir, monkeylord, more, mount, mv, openin, pbcopy,
pbpaste, ping, Usage, pip, printenv, printhex, ptinstaller, pwd, py-tree, python, python3, quicklook, rm, rmdir, scp, selfupdate, sha1sum, sha256sum,
sort, source, sqlite, ssh, ssh-keygen, stashconf, tail, tar, telnet, totd, touch, umount, uniq, unzip, version,
wc, webviewer, wget, whatis, which, wol, xargs, zip
ftpserver や、httpserverは簡易的なサーバーになる。
ssh やscp 、tar zip などは使い道多そう。
webviewer てpython の下でブラウザが立ち上がってるみたいなんだがどんな使い道があるんだろう?
なお、標準python用のシェルは、xonsh と言うのがあるらしい。 xonsh では、標準的なshellコマンドと並行してpython スクリプトも実行できるから強力。
stash ではそれはできない。
272268
2019/02/20(水) 10:31:11.68ID:B2QSVSiS WSH はわからないけど、Ruby では、
require 'nokogiri'
html = `curl http://www.example.com/`
# curl は書き込めないので、全角に変換した
doc = Nokogiri::HTML( html )
elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain
require 'nokogiri'
html = `curl http://www.example.com/`
# curl は書き込めないので、全角に変換した
doc = Nokogiri::HTML( html )
elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain
273デフォルトの名無しさん
2019/02/20(水) 11:50:14.05ID:hK+DOQws >>272
死ね
死ね
274デフォルトの名無しさん
2019/02/20(水) 13:03:16.05ID:agArr1lp >>269
なんかね。UNIX系OSで昔からよく使われてたコマンドを移植したようで、tarとか他にも色々あったと思った。
なんかね。UNIX系OSで昔からよく使われてたコマンドを移植したようで、tarとか他にも色々あったと思った。
275デフォルトの名無しさん
2019/02/20(水) 17:40:48.68ID:3A0CDvTh >>263 今度は反則なしで。python
import requests as r
url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt'
g= r.get( url )
print('読んだサイズは',len(g.text) )
# 読んだサイズは 2495
import requests as r
url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt'
g= r.get( url )
print('読んだサイズは',len(g.text) )
# 読んだサイズは 2495
276デフォルトの名無しさん
2019/02/20(水) 17:58:34.75ID:t1mcuuOB >>258
Pharo 7
'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt' asUrl retrieveContents
Pharo 7
'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt' asUrl retrieveContents
277デフォルトの名無しさん
2019/02/20(水) 18:10:48.97ID:3A0CDvTh >>276 ありがとう。 そんな言語も出てきてたんだ。 でも普及は難しいのかも。
278デフォルトの名無しさん
2019/02/20(水) 23:51:29.53ID:MUUM+ThN279デフォルトの名無しさん
2019/02/21(木) 18:54:22.61ID:1axkeZoV お題:リスト等を", "で結合して表示せよ。ただし最後は" and "で結合する。
https://ideone.com/pVuO7T
https://ideone.com/pVuO7T
280デフォルトの名無しさん
2019/02/21(木) 19:06:17.90ID:TUYpSwcQ >>279 JavaScript
const arr = ['apple', 'banana', 'orange', 'mango'];
const last = ' and ' + arr.pop();
console.log(arr.join`, ` + last);
//=> apple, banana, orange and mango
const arr = ['apple', 'banana', 'orange', 'mango'];
const last = ' and ' + arr.pop();
console.log(arr.join`, ` + last);
//=> apple, banana, orange and mango
281デフォルトの名無しさん
2019/02/21(木) 19:17:09.75ID:eUc7EqKm282デフォルトの名無しさん
2019/02/21(木) 19:27:21.23ID:2zdYL4u2 >>279
Haskell
main = putStrLn.concat.concat $ [map addCanma (init lst),["and,"],[last lst]]
addCanma s = s ++ ","
lst = ["apple","banana","orange","mango"]
output:
apple,banana,orange,and,mango
Haskell
main = putStrLn.concat.concat $ [map addCanma (init lst),["and,"],[last lst]]
addCanma s = s ++ ","
lst = ["apple","banana","orange","mango"]
output:
apple,banana,orange,and,mango
283デフォルトの名無しさん
2019/02/21(木) 19:31:58.30ID:lqQG1Hmj 題意は
list = ["red","green","black","white"]
print(", ".join(list[:-1]),"and",list[-1])
# red, green, black and white
だろ
list = ["red","green","black","white"]
print(", ".join(list[:-1]),"and",list[-1])
# red, green, black and white
だろ
284デフォルトの名無しさん
2019/02/21(木) 19:43:56.00ID:YnrfI9YG そこそこ優秀なのに肝心なところでいい加減だから試験に落ちるタイプだな
285デフォルトの名無しさん
2019/02/21(木) 19:51:21.05ID:2zdYL4u2 >>283
あ、そうか。
不恰好だけどこれで一応対応。
(putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]]
スマートな解答も考えてみるよ。
あ、そうか。
不恰好だけどこれで一応対応。
(putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]]
スマートな解答も考えてみるよ。
286デフォルトの名無しさん
2019/02/21(木) 20:16:12.26ID:eUc7EqKm >>283 ごめん、俺もカンマが抜けてた。
数字の場合の模範解答をよろしく。
数字の場合の模範解答をよろしく。
287デフォルトの名無しさん
2019/02/21(木) 20:20:50.88ID:2zdYL4u2 スマートかは兎も角、一応マシな形に。
空リストや要素数1にも対応。
Haskell
main = putStrLn $ last2 lst
last2::[String] -> String
last2 [] = []
last2 [x] = x
last2 [x,y] = concat [x," and ", y]
last2 (x:xs) = x ++ "," ++ last2 xs
lst = map show [0..5]
output:
0,1,2,3,4 and 5
空リストや要素数1にも対応。
Haskell
main = putStrLn $ last2 lst
last2::[String] -> String
last2 [] = []
last2 [x] = x
last2 [x,y] = concat [x," and ", y]
last2 (x:xs) = x ++ "," ++ last2 xs
lst = map show [0..5]
output:
0,1,2,3,4 and 5
288デフォルトの名無しさん
2019/02/21(木) 20:59:38.40ID:lqQG1Hmj >>286
list = [str(x) for x in range(1,5)]
とか
map(lambda x : str(x), list)
でもおk
要素数が1個以下の場合はifで分離するだけなので略
list = [str(x) for x in range(1,5)]
とか
map(lambda x : str(x), list)
でもおk
要素数が1個以下の場合はifで分離するだけなので略
289デフォルトの名無しさん
2019/02/21(木) 21:09:47.73ID:y3+CYNZ6 >>279 Common Lisp
(format t "~{~@{~A~^~#,1^, ~}~^ and ~A~}~%" (list 1 2 3 4))
https://ideone.com/6DcwO9
(format t "~{~@{~A~^~#,1^, ~}~^ and ~A~}~%" (list 1 2 3 4))
https://ideone.com/6DcwO9
290デフォルトの名無しさん
2019/02/21(木) 21:21:18.07ID:lqQG1Hmj intとstrが混在してる場合でも大丈夫で入力数が1以下ならそのまま返すワンライナー
python
print("".join(reversed(" ,".join(reversed([str(x) for x in list])).replace(",","dna ",1))))
JS+正規表現
console.log(list.join(", ").replace(/(.*),(.*?)+/,"$1 and $2"))
冷静に考えるとこの正規表現を使い回せばどの言語でもワンライナーなのでは
python
print("".join(reversed(" ,".join(reversed([str(x) for x in list])).replace(",","dna ",1))))
JS+正規表現
console.log(list.join(", ").replace(/(.*),(.*?)+/,"$1 and $2"))
冷静に考えるとこの正規表現を使い回せばどの言語でもワンライナーなのでは
291さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/21(木) 21:21:18.26ID:PQQkN+7n292デフォルトの名無しさん
2019/02/21(木) 21:30:40.21ID:lqQG1Hmj よく考えたらreversedなんか使わんでも
print((" ,".join([str(x) for x in list][::-1]).replace(",","dna ",1))[::-1])
でいけるか。join削減できるし
print((" ,".join([str(x) for x in list][::-1]).replace(",","dna ",1))[::-1])
でいけるか。join削減できるし
293さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/21(木) 21:32:52.15ID:3Jj6vI7v 出力文字列の長さは最短でなければならない。
場合分けの順序は問わないが、場合分けの項目について、ソートすることが望ましい。
場合分けの順序は問わないが、場合分けの項目について、ソートすることが望ましい。
294さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/21(木) 21:37:53.05ID:3Jj6vI7v 一番外側の { } は省略可能。
共通部分がないときは、/で区切って出力せよ。
共通部分がないときは、/で区切って出力せよ。
295279
2019/02/21(木) 21:39:50.99ID:1axkeZoV296さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/21(木) 21:55:49.44ID:PQQkN+7n このラティス構造っていうの、言語学ではよく使うらしいが、専門じゃないからよくわからない。
297デフォルトの名無しさん
2019/02/21(木) 22:55:49.76ID:2zdYL4u2 >>279
>>292
Haskellでもワンライナー出来たけど、読みやすいとは思えない。(横長だし)
発想としては(要素数2以上なら)最後以外の要素(文字列)の頭に','追加して、全部結合して(大きな文字列にして)最後に頭の','を省く。
main = putStrLn.tail.concat $ if length lst < 2 then lst else [(concat.(map (\x -> ',':x)).init) lst," and ",last lst]
lst = map show [0..5]
個人的に >>287 の方が発想も読みやすさも好みの書き方。
(読み難くなるなら関数分ける派)
pythonのはワンライナーでも比較的読みやすくて、ちょっと羨ましい。
>>292
Haskellでもワンライナー出来たけど、読みやすいとは思えない。(横長だし)
発想としては(要素数2以上なら)最後以外の要素(文字列)の頭に','追加して、全部結合して(大きな文字列にして)最後に頭の','を省く。
main = putStrLn.tail.concat $ if length lst < 2 then lst else [(concat.(map (\x -> ',':x)).init) lst," and ",last lst]
lst = map show [0..5]
個人的に >>287 の方が発想も読みやすさも好みの書き方。
(読み難くなるなら関数分ける派)
pythonのはワンライナーでも比較的読みやすくて、ちょっと羨ましい。
298デフォルトの名無しさん
2019/02/21(木) 22:59:16.06ID:2zdYL4u2 >>297
弄ってるうちに要素一以下だとバグ出てた。
正しいコードはこっち。
putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst]
弄ってるうちに要素一以下だとバグ出てた。
正しいコードはこっち。
putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst]
299デフォルトの名無しさん
2019/02/21(木) 23:36:37.11ID:un6uIa3F >>282 Perl5
sub f {
my $a = shift;
@_ ? (@_ > 1 ? "$a, " : "$a and ").f(@_) : $a
}
use feature say;
say f(qw[red green black white]);
say f(qw[apple banana]);
say f(qw[one]);
実行結果
~ $ perl 13_279_and.pl
red, green, black and white
apple and banana
one
sub f {
my $a = shift;
@_ ? (@_ > 1 ? "$a, " : "$a and ").f(@_) : $a
}
use feature say;
say f(qw[red green black white]);
say f(qw[apple banana]);
say f(qw[one]);
実行結果
~ $ perl 13_279_and.pl
red, green, black and white
apple and banana
one
300デフォルトの名無しさん
2019/02/22(金) 00:04:51.72ID:EatRhjER301デフォルトの名無しさん
2019/02/22(金) 00:07:27.55ID:wSgiM5bY302デフォルトの名無しさん
2019/02/22(金) 00:28:04.99ID:9PVAJM4v >>300
そういう関数が既にあるの?
そういう関数が既にあるの?
303デフォルトの名無しさん
2019/02/22(金) 00:31:28.15ID:wSgiM5bY304デフォルトの名無しさん
2019/02/22(金) 00:49:22.57ID:9PVAJM4v ほえー
305デフォルトの名無しさん
2019/02/22(金) 06:09:02.19ID:HhIJRo4K >>279
Smalltalk (Pharo 7)
#('apple' 'banana' 'orange' 'mango') asCommaStringAnd
==> 'apple, banana, orange and mango'
#('apple' 'banana') asCommaStringAnd
==> 'apple and banana'
#('apple') asCommaStringAnd
==> 'apple'
Smalltalk (Pharo 7)
#('apple' 'banana' 'orange' 'mango') asCommaStringAnd
==> 'apple, banana, orange and mango'
#('apple' 'banana') asCommaStringAnd
==> 'apple and banana'
#('apple') asCommaStringAnd
==> 'apple'
306デフォルトの名無しさん
2019/02/22(金) 06:36:03.41ID:S1fPIClY >>279 python
def f(lst): return ('空だ' if not lst else
','.join([str(x) for x in lst[:-1]])
+ (' and ' if len(lst)>1 else'')
+ str(lst[-1])
)
print(f( [ 1,'二',3,4,'五'] )) # 1,二,3,4 and 五
print(f( [1,'二'] )) # 1 and 二
print(f( [1] )) # 1
print(f([])) # 空だ
def f(lst): return ('空だ' if not lst else
','.join([str(x) for x in lst[:-1]])
+ (' and ' if len(lst)>1 else'')
+ str(lst[-1])
)
print(f( [ 1,'二',3,4,'五'] )) # 1,二,3,4 and 五
print(f( [1,'二'] )) # 1 and 二
print(f( [1] )) # 1
print(f([])) # 空だ
307305
2019/02/22(金) 07:07:04.28ID:HhIJRo4K しまった既出だったorz
308デフォルトの名無しさん
2019/02/22(金) 07:58:55.12ID:6TNKk8ap >>279 Ruby
f = -> a {a[0..-2].join(', ').sub(/.\K\z/, ' and ') << a[-1].to_s}
(-1..3).each{|r| puts f[[*0..r]]} # =>
0
0 and 1
0, 1 and 2
0, 1, 2 and 3
f = -> a {a[0..-2].join(', ').sub(/.\K\z/, ' and ') << a[-1].to_s}
(-1..3).each{|r| puts f[[*0..r]]} # =>
0
0 and 1
0, 1 and 2
0, 1, 2 and 3
309デフォルトの名無しさん
2019/02/22(金) 08:05:10.35ID:6TNKk8ap310デフォルトの名無しさん
2019/02/22(金) 08:11:07.14ID:EatRhjER >>302
Smalltalkは1970年代頃にはすでにこんな感じで
https://upload.wikimedia.org/wikipedia/commons/6/6e/Smalltalk-76.blowup.png
IDEからお絵かきツールまで処理系に組み込みだったので
生活に密着したメソッドが揃っています!
Smalltalkは1970年代頃にはすでにこんな感じで
https://upload.wikimedia.org/wikipedia/commons/6/6e/Smalltalk-76.blowup.png
IDEからお絵かきツールまで処理系に組み込みだったので
生活に密着したメソッドが揃っています!
311デフォルトの名無しさん
2019/02/22(金) 09:34:06.68ID:Ao+GBu+d ラティス構造って要するに正規表現を生成すりゃーいいのか?
312デフォルトの名無しさん
2019/02/22(金) 19:34:29.73ID:CY9He0wk313デフォルトの名無しさん
2019/02/22(金) 19:43:43.74ID:FMSx1nas お題:21の階乗を計算して表示せよ。
https://ideone.com/gQAd37
https://ideone.com/gQAd37
314デフォルトの名無しさん
2019/02/22(金) 20:16:33.34ID:9PVAJM4v >>310
ほえー
ほえー
315デフォルトの名無しさん
2019/02/22(金) 21:26:47.09ID:py41/SAb >>313 JavaScript
console.log(Array.from({length: 21}, (v, i) => i + 1).reduce((acc, v) => acc * v));
console.log(Array.from({length: 21}, (v, i) => i + 1).reduce((acc, v) => acc * v));
316デフォルトの名無しさん
2019/02/22(金) 21:42:16.23ID:THqrb0iU お題:
長方形のフィールドが与えられる。フィールド上では上下左右に移動することができる。
各マスの数字はそのマスに入るためのコストを表す。
SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする)
S5111
1115G
=> 6
S1111
98642
G1111
=> 9
13457689768914512071934123457
G4578901258901212890361125312
37890423076834712378998725463
16890102569615902061456259893
34582934765923812893461515232
57896123896741378915691551697
89013897456123457162501835479
21389046013845610034623405686
8902346203948612341356362342S
=> ?
長方形のフィールドが与えられる。フィールド上では上下左右に移動することができる。
各マスの数字はそのマスに入るためのコストを表す。
SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする)
S5111
1115G
=> 6
S1111
98642
G1111
=> 9
13457689768914512071934123457
G4578901258901212890361125312
37890423076834712378998725463
16890102569615902061456259893
34582934765923812893461515232
57896123896741378915691551697
89013897456123457162501835479
21389046013845610034623405686
8902346203948612341356362342S
=> ?
317デフォルトの名無しさん
2019/02/22(金) 21:49:55.63ID:2ARSyvEs318デフォルトの名無しさん
2019/02/22(金) 22:00:24.05ID:py41/SAb こういう文章題好き。
でも実力不足で解けない…
a*かな?
でも実力不足で解けない…
a*かな?
319デフォルトの名無しさん
2019/02/22(金) 22:05:57.76ID:AX8XyL13 >>313 Perl5
use bignum (l=>GMP);
$n = 1;
$n *= $_ for 2..21;
print "$n\n";
実行例
~ $ perl 13_313.pl
51090942171709440000
use bignum (l=>GMP);
$n = 1;
$n *= $_ for 2..21;
print "$n\n";
実行例
~ $ perl 13_313.pl
51090942171709440000
320デフォルトの名無しさん
2019/02/22(金) 22:26:00.12ID:eQxt3fSm >>313 JavaScript
console.log((f=n=>n?n*f(n-1):1)(21))
console.log((f=n=>n?n*f(n-1):1)(21))
321デフォルトの名無しさん
2019/02/23(土) 00:16:14.24ID:KCAwaSn8322デフォルトの名無しさん
2019/02/23(土) 00:27:48.65ID:khwKgkQE >>313 python
#階乗1
import math
print('階乗1',math.factorial(21))
#階乗2
def f(n): return f(n - 1)*n if n > 1 else n
print('階乗2',f(21))
#階乗3
print('階乗3',(lambda x:f(21))( globals().update({"f": lambda n: n*f(n - 1) if n > 2 else n })))
#階乗1
import math
print('階乗1',math.factorial(21))
#階乗2
def f(n): return f(n - 1)*n if n > 1 else n
print('階乗2',f(21))
#階乗3
print('階乗3',(lambda x:f(21))( globals().update({"f": lambda n: n*f(n - 1) if n > 2 else n })))
323デフォルトの名無しさん
2019/02/23(土) 01:14:20.46ID:9pS68leH >>279
Kotlin script
最後のカンマを正規表現の文字列置換で and にしただけ。
println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1"))
出力
abc, def and xyz
Kotlin script
最後のカンマを正規表現の文字列置換で and にしただけ。
println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1"))
出力
abc, def and xyz
324デフォルトの名無しさん
2019/02/23(土) 01:19:01.99ID:CTQXI+x5 lispって組み込みで素数かどうか判定するやつ提供されてるのか、、、面白い!
325デフォルトの名無しさん
2019/02/23(土) 02:10:15.51ID:9pS68leH326デフォルトの名無しさん
2019/02/23(土) 03:31:27.03ID:nkO3lkCA >>313 dc
~$ echo 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ********************p | dc
51090942171709440000
~$ echo 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ********************p | dc
51090942171709440000
327デフォルトの名無しさん
2019/02/23(土) 03:32:49.90ID:R2s6jSV3 bcのってjsでもそのまま動くんだな。どっちもc由来文法だからか…
for(i=s=1;i<22;)s*=i++;s
for(i=s=1;i<22;)s*=i++;s
328デフォルトの名無しさん
2019/02/23(土) 04:30:09.37ID:R2s6jSV3 >>326
恥ずかしながらdcコマンド知らなかった…いいねこれ。
~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc
51090942171709440000
恥ずかしながらdcコマンド知らなかった…いいねこれ。
~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc
51090942171709440000
329デフォルトの名無しさん
2019/02/23(土) 08:05:10.28ID:xK8/Ze+A >>313 Maxima
print(21!);
print(21!);
330デフォルトの名無しさん
2019/02/23(土) 08:20:33.48ID:znXlogg7331デフォルトの名無しさん
2019/02/23(土) 08:45:55.53ID:DQY5g4De332デフォルトの名無しさん
2019/02/23(土) 09:18:55.19ID:IBS/n4EE333デフォルトの名無しさん
2019/02/23(土) 12:01:13.29ID:+GfRG2y6334デフォルトの名無しさん
2019/02/23(土) 12:26:35.61ID:DQY5g4De335デフォルトの名無しさん
2019/02/23(土) 12:44:52.28ID:W0y17tlk python3
標準ライブラリ内の数学関数の例
import math
print(math.factorial(21))
そうじゃない例
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,22)))
ちょっと高度化したお題
素数階乗n#を実装せよ
ただし素数階乗とは与えられた整数n以下のすべての素数の積である
例
1#=1
3#=4#=6
5#=30
標準ライブラリ内の数学関数の例
import math
print(math.factorial(21))
そうじゃない例
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,22)))
ちょっと高度化したお題
素数階乗n#を実装せよ
ただし素数階乗とは与えられた整数n以下のすべての素数の積である
例
1#=1
3#=4#=6
5#=30
336デフォルトの名無しさん
2019/02/23(土) 13:22:30.58ID:R2s6jSV3 例がちょっと意味分からない
1#=1
1以下の素数の積なのに1?
3#=4#=6
何これ?
5#=30
これだけ分かる
1#=1
1以下の素数の積なのに1?
3#=4#=6
何これ?
5#=30
これだけ分かる
337デフォルトの名無しさん
2019/02/23(土) 13:25:18.18ID:R2s6jSV3 あ、二番目分かりました。
一行目だけ分からない
一行目だけ分からない
338デフォルトの名無しさん
2019/02/23(土) 13:28:26.15ID:+GfRG2y6339デフォルトの名無しさん
2019/02/23(土) 13:34:54.53ID:vMXU7Bcc340デフォルトの名無しさん
2019/02/23(土) 13:40:09.27ID:R2s6jSV3341デフォルトの名無しさん
2019/02/23(土) 13:47:45.99ID:+eBVT+rm >>340
1を素数と見做すんじゃなく空積の1
1を素数と見做すんじゃなく空積の1
342デフォルトの名無しさん
2019/02/23(土) 13:53:12.99ID:W0y17tlk というか数学でも0!=1!=1と定義されているのが普通だと思うし
高校でも大学でもそうじゃない問題を見たことがないのだが
高校でも大学でもそうじゃない問題を見たことがないのだが
343デフォルトの名無しさん
2019/02/23(土) 13:53:38.08ID:vMXU7Bcc >>340
いや、むしろ数学の世界での慣習なんですけど…
いや、むしろ数学の世界での慣習なんですけど…
344デフォルトの名無しさん
2019/02/23(土) 14:28:11.89ID:DQY5g4De 単位元(初期値)だろ。
足し算は0、掛け算は1 が、単位元
Ruby で、
( 1..21 ).inject( 1, :* )
1 が初期値で、:* で掛け算メソッドを渡している
足し算は0、掛け算は1 が、単位元
Ruby で、
( 1..21 ).inject( 1, :* )
1 が初期値で、:* で掛け算メソッドを渡している
345デフォルトの名無しさん
2019/02/23(土) 15:02:20.95ID:R2s6jSV3 >>342
> ただし素数階乗とは与えられた整数n以下のすべての素数の積である
と書いてあるので、
「与えられた整数n」が1
のとき、
「与えられた整数n以下のすべての素数の積」
は、
「1以下のすべての素数の積」
となり、
1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。
お騒がせしました。
> ただし素数階乗とは与えられた整数n以下のすべての素数の積である
と書いてあるので、
「与えられた整数n」が1
のとき、
「与えられた整数n以下のすべての素数の積」
は、
「1以下のすべての素数の積」
となり、
1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。
お騒がせしました。
346デフォルトの名無しさん
2019/02/23(土) 15:15:16.07ID:R2s6jSV3 できた
JavaScript
const prodPrimes = n => {
const primes = [1];
for (let m = n; m > 1; m--) {
let prime = 0;
for (let i = 2; i <= m - 1; i++) {
if (m % i === 0) prime = i;
}
primes.push(prime || m);
}
return [...new Set(primes)].reduce((acc, p) => acc * p);
}
console.log(prodPrimes(1)); //=> 1
console.log(prodPrimes(3)); //=> 6
console.log(prodPrimes(4)); //=> 6
console.log(prodPrimes(5)); //=> 30
今夜はPythonで>>316に挑戦したい
JavaScript
const prodPrimes = n => {
const primes = [1];
for (let m = n; m > 1; m--) {
let prime = 0;
for (let i = 2; i <= m - 1; i++) {
if (m % i === 0) prime = i;
}
primes.push(prime || m);
}
return [...new Set(primes)].reduce((acc, p) => acc * p);
}
console.log(prodPrimes(1)); //=> 1
console.log(prodPrimes(3)); //=> 6
console.log(prodPrimes(4)); //=> 6
console.log(prodPrimes(5)); //=> 30
今夜はPythonで>>316に挑戦したい
347デフォルトの名無しさん
2019/02/23(土) 15:45:56.58ID:xK8/Ze+A348デフォルトの名無しさん
2019/02/23(土) 15:50:44.94ID:5fn4St+r Jどこで覚えればいいの?
Effective J的な読みやすい書籍ないの?
Effective J的な読みやすい書籍ないの?
349デフォルトの名無しさん
2019/02/23(土) 16:01:13.49ID:BD+5EZ0V >>313 Common Lisp
(defun ! (n)
(apply #'* (loop for i from 1 upto n collect i)))
CL-USER> (! 21)
51090942171709440000
CL-USER> (! 0)
1
CL-USER>
(defun ! (n)
(apply #'* (loop for i from 1 upto n collect i)))
CL-USER> (! 21)
51090942171709440000
CL-USER> (! 0)
1
CL-USER>
350デフォルトの名無しさん
2019/02/23(土) 16:18:41.85ID:Z/STDkD0351デフォルトの名無しさん
2019/02/23(土) 17:50:18.29ID:oGmxRysL352デフォルトの名無しさん
2019/02/23(土) 18:00:12.84ID:5fn4St+r でかいキノコやらしい…
353デフォルトの名無しさん
2019/02/23(土) 18:14:04.27ID:2kPF298z354デフォルトの名無しさん
2019/02/23(土) 20:22:19.99ID:ejRNWGjN >>316
python(pypy) https://ideone.com/DV1w4s
本線: キュー使用したダイクストラ (+ 経路復元)。
サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。
python(pypy) https://ideone.com/DV1w4s
本線: キュー使用したダイクストラ (+ 経路復元)。
サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。
355デフォルトの名無しさん
2019/02/24(日) 00:49:59.19ID:ROsmA06r >>354 pypy に逃げたという話は、その方がかなりスピードが早いからという事? どの位のスピード差になるんだろう?
356デフォルトの名無しさん
2019/02/24(日) 01:37:12.40ID:jRfp9b62 >>313
Kotlin script
println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))
Kotlin script
println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))
357デフォルトの名無しさん
2019/02/24(日) 01:45:28.46ID:W3fm5ADB358さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/24(日) 05:55:10.72ID:xnYazQgz お題: 3分タイマーを作れ。3分間待って、音を鳴らすか、画面に「BEEP!」と表示せよ。ただし、CPU時間を無駄に消費してはならない。
359さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/24(日) 06:09:09.10ID:xnYazQgz お題: スリープソートを実装せよ。
360さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/24(日) 06:27:08.15ID:xnYazQgz お題: 玉入れ競争のシミュレーションを作れ。1チームに玉50個で園児3人。2チームある。園児それぞれが10秒に玉1個投げる。
一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。
一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。
361デフォルトの名無しさん
2019/02/24(日) 07:40:28.45ID:lq3Vey6S362デフォルトの名無しさん
2019/02/24(日) 08:11:35.91ID:UKaroUbg >>335
Smalltalk (Pharo 7)
[:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5
==> 30
Smalltalk (Pharo 7)
[:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5
==> 30
363デフォルトの名無しさん
2019/02/24(日) 08:39:28.32ID:lq3Vey6S364デフォルトの名無しさん
2019/02/24(日) 08:59:23.56ID:k3GW1oFG お題
与えられた文字列を縦に表示する
入力
hello
出力
h
e
l
l
o
与えられた文字列を縦に表示する
入力
hello
出力
h
e
l
l
o
365デフォルトの名無しさん
2019/02/24(日) 09:18:40.92ID:FkqnBGPg >>364
ruby -e "'hello'.split('').each do |c| puts c end"
ruby -e "'hello'.split('').each do |c| puts c end"
366デフォルトの名無しさん
2019/02/24(日) 09:39:23.28ID:UNsYm68I367デフォルトの名無しさん
2019/02/24(日) 10:41:19.01ID:gbE7FXAb368デフォルトの名無しさん
2019/02/24(日) 10:45:19.09ID:gbE7FXAb369デフォルトの名無しさん
2019/02/24(日) 10:51:12.60ID:5XYYe3Vz370デフォルトの名無しさん
2019/02/24(日) 11:01:40.94ID:gbE7FXAb >>359 Perl5
use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";
use threads;
use threads::shared;
my @b: shared;
sub f {
my $n = shift;
sleep $n;
push @b, $n;
}
push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;
print "sorted ) @b\n";
実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5
use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";
use threads;
use threads::shared;
my @b: shared;
sub f {
my $n = shift;
sleep $n;
push @b, $n;
}
push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;
print "sorted ) @b\n";
実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5
371デフォルトの名無しさん
2019/02/24(日) 11:04:08.38ID:gbE7FXAb >>370 しまった、&nbsp;がそのまま表示されている…orz 全角スペースに置換して修正
>>359 Perl5
use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";
use threads;
use threads::shared;
my @b: shared;
sub f {
my $n = shift;
sleep $n;
push @b, $n;
}
push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;
print "sorted ) @b\n";
実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5
>>359 Perl5
use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";
use threads;
use threads::shared;
my @b: shared;
sub f {
my $n = shift;
sleep $n;
push @b, $n;
}
push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;
print "sorted ) @b\n";
実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5
372デフォルトの名無しさん
2019/02/24(日) 14:09:41.21ID:UKaroUbg Smalltalk (Pharo 7)
String cr join: 'hello'
==> 'h
e
l
l
o'
String cr join: 'hello'
==> 'h
e
l
l
o'
373デフォルトの名無しさん
2019/02/24(日) 14:14:37.55ID:lq3Vey6S374デフォルトの名無しさん
2019/02/24(日) 14:37:33.43ID:ke/CY5a3375デフォルトの名無しさん
2019/02/24(日) 15:44:30.88ID:R6DRM9b9 >>335 Squeak Smalltalk (このコードは Pharo では動かない)
| fn |
fn := [:n | (Integer primesUpTo: n + n isPrime asBit) inject: 1 into: #*].
#(1 3 4 5) collect: fn. "=> #(1 6 6 30) "
| fn |
fn := [:n | (Integer primesUpTo: n + n isPrime asBit) inject: 1 into: #*].
#(1 3 4 5) collect: fn. "=> #(1 6 6 30) "
376デフォルトの名無しさん
2019/02/24(日) 15:56:11.32ID:R6DRM9b9 >>364 Squeak Smalltalk (同じく Pharo とは互換性がないコードで)
'hello' joinSeparatedBy: Character cr.
"= 'h
e
l
l
o' "
'hello' joinSeparatedBy: Character cr.
"= 'h
e
l
l
o' "
377デフォルトの名無しさん
2019/02/24(日) 16:12:06.37ID:ke/CY5a3 >>359 Pharo/Squeak Smalltalk
| sleepsort |
sleepsort := [:arr |
| queue |
queue := SharedQueue new.
arr do: [:x | [(x * 2) milliSeconds asDelay wait. queue nextPut: x] fork].
(1 to: arr size) inject: #() into: [:acc :idx | acc, {queue next}]
].
sleepsort value: #(2 1 5 10 7 8 3 6 4 9)
"=> #(1 2 3 4 5 6 7 8 9 10) "
| sleepsort |
sleepsort := [:arr |
| queue |
queue := SharedQueue new.
arr do: [:x | [(x * 2) milliSeconds asDelay wait. queue nextPut: x] fork].
(1 to: arr size) inject: #() into: [:acc :idx | acc, {queue next}]
].
sleepsort value: #(2 1 5 10 7 8 3 6 4 9)
"=> #(1 2 3 4 5 6 7 8 9 10) "
378デフォルトの名無しさん
2019/02/24(日) 17:18:42.39ID:+6ZRRI/z >>358 puthonista ( iPhone )
# iPhoneのシステムサウンドを使ってアラームを出す。
import sound,time
alarm = '/System/Library/Audio/UISounds/alarm.caf'
time.sleep(3*60)
id = sound.play_effect(alarm)
# iPhoneのシステムサウンドを使ってアラームを出す。
import sound,time
alarm = '/System/Library/Audio/UISounds/alarm.caf'
time.sleep(3*60)
id = sound.play_effect(alarm)
379デフォルトの名無しさん
2019/02/24(日) 17:40:55.70ID:+6ZRRI/z >>378 pythonista の間違い。
380デフォルトの名無しさん
2019/02/24(日) 19:37:23.57ID:Wf3q+Rvy >>359 Bash
#!/usr/bin/bash
N=5
IFS=$'\n'
a=(`seq $N | shuf | sed -e 's/\([0-9]\+\)/(sleep \1; echo \1 >> result)/'`)
IFS="$'\n'$'\t' "
[ -f ./result ] && rm ./result
for s in "${a[@]}"; do
echo "$s"
sh -c "${s}" &
done
wait
cat ./result
~ $ sh 13_359.sh
(sleep 2; echo 2 >> result)
(sleep 5; echo 5 >> result)
(sleep 4; echo 4 >> result)
(sleep 1; echo 1 >> result)
(sleep 3; echo 3 >> result)
1
2
3
4
5
#!/usr/bin/bash
N=5
IFS=$'\n'
a=(`seq $N | shuf | sed -e 's/\([0-9]\+\)/(sleep \1; echo \1 >> result)/'`)
IFS="$'\n'$'\t' "
[ -f ./result ] && rm ./result
for s in "${a[@]}"; do
echo "$s"
sh -c "${s}" &
done
wait
cat ./result
~ $ sh 13_359.sh
(sleep 2; echo 2 >> result)
(sleep 5; echo 5 >> result)
(sleep 4; echo 4 >> result)
(sleep 1; echo 1 >> result)
(sleep 3; echo 3 >> result)
1
2
3
4
5
381デフォルトの名無しさん
2019/02/25(月) 02:16:17.34ID:VuzBCyor >>364
Kotlin script
while (readLine()?.map { it }?.joinToString("\n")?.let { println(it); it } != null);
Kotlin script
while (readLine()?.map { it }?.joinToString("\n")?.let { println(it); it } != null);
382デフォルトの名無しさん
2019/02/25(月) 02:42:58.27ID:VuzBCyor383デフォルトの名無しさん
2019/02/25(月) 02:47:11.29ID:yxDnlxm5 >>364
ruby -e "'hello'.each_char do |c| puts(c) end"
ruby -e "'hello'.each_char do |c| puts(c) end"
384さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/25(月) 02:47:19.11ID:qxzw13Bf お題: スリープと複数のスレッドを使って素数を10個求めよ。1つのスレッドは素数倍数のループを意味する。
386デフォルトの名無しさん
2019/02/25(月) 09:19:02.25ID:KMrhrKmq 意味がわからん
387デフォルトの名無しさん
2019/02/25(月) 10:35:33.17ID:OZaxYFd4 模範解答があるんでしょ
だからヒントを作れる
なら最初から正解を出せと
だからヒントを作れる
なら最初から正解を出せと
388デフォルトの名無しさん
2019/02/25(月) 10:52:58.23ID:mBiroDnU このコテうぜえから書き込み禁止にしろ
389デフォルトの名無しさん
2019/02/25(月) 11:25:48.34ID:4jlXoier スリープタイマに番号付けてON/OFF出来ればエラトステネスの篩で素数が出来る。
390デフォルトの名無しさん
2019/02/25(月) 17:25:13.53ID:KMrhrKmq わかんないからちょっとやってみて
391デフォルトの名無しさん
2019/02/25(月) 18:50:50.58ID:IURODyYm >>364 J
smoutput@>'hello'
smoutput@>'hello'
392デフォルトの名無しさん
2019/02/25(月) 19:00:24.37ID:mboQc3Dn >>364 JavaScript
[...'hello'].forEach(c=>console.log(c))
または
for(let c of 'hello')console.log(c)
または
console.log([...'hello'].join`\n`)
[...'hello'].forEach(c=>console.log(c))
または
for(let c of 'hello')console.log(c)
または
console.log([...'hello'].join`\n`)
393デフォルトの名無しさん
2019/02/26(火) 01:01:25.98ID:ZoqutRDZ >>364 Ruby
puts "Hello".split("")
puts "Hello".split("")
394デフォルトの名無しさん
2019/02/26(火) 02:14:00.16ID:Jyzj3K2Z お題:OS名を出力する
395デフォルトの名無しさん
2019/02/26(火) 02:51:12.85ID:lsok3PaS >>394
Linux等、UNIX系OSの場合コマンドラインから以下を入力するだけで GNU/Linux 等と出てくるが、
どうしてもプログラムにしたいのならシェルスクリプトの中でこれだけ実行するようにしておけばよい。
uname -o
Linux等、UNIX系OSの場合コマンドラインから以下を入力するだけで GNU/Linux 等と出てくるが、
どうしてもプログラムにしたいのならシェルスクリプトの中でこれだけ実行するようにしておけばよい。
uname -o
396デフォルトの名無しさん
2019/02/26(火) 02:53:03.78ID:lsok3PaS397デフォルトの名無しさん
2019/02/26(火) 07:52:39.56ID:xb9W0X9p pythonista
import os,sys
print(os.uname() )
# posix.uname_result(sysname='Darwin', nodename='iPhoneXsMAX', release='18.2.0', version='Darwin Kernel Version 18.2.0: Wed Dec 19 20:28:53 PST 2018; root:xnu-4903.242.2~1/RELEASE_ARM64_T8020', machine='iPhone11,6')
print(os.uname()[0],os.uname()[4],sys.platform )
# Darwin iPhone11,6 ios
from distutils.util import get_platform
print(get_platform())
# darwin-18.2.0-iPhone11,6
import os,sys
print(os.uname() )
# posix.uname_result(sysname='Darwin', nodename='iPhoneXsMAX', release='18.2.0', version='Darwin Kernel Version 18.2.0: Wed Dec 19 20:28:53 PST 2018; root:xnu-4903.242.2~1/RELEASE_ARM64_T8020', machine='iPhone11,6')
print(os.uname()[0],os.uname()[4],sys.platform )
# Darwin iPhone11,6 ios
from distutils.util import get_platform
print(get_platform())
# darwin-18.2.0-iPhone11,6
398デフォルトの名無しさん
2019/02/26(火) 08:17:26.80ID:N21l9DY8 >>394 J
osname =: 3 : 0
a =. 9 !: 12 y
if. a = 5 do. 'unix'
else. a = 6 do. 'windows'
else. do. 'other'
end.
)
osname =: 3 : 0
a =. 9 !: 12 y
if. a = 5 do. 'unix'
else. a = 6 do. 'windows'
else. do. 'other'
end.
)
399デフォルトの名無しさん
2019/02/26(火) 10:23:47.93ID:E0EMtjG2400デフォルトの名無しさん
2019/02/26(火) 15:46:59.25ID:N21l9DY8 >>364 Lua
io.write((io.read("*a"):gsub(".","%0\n")))
io.write((io.read("*a"):gsub(".","%0\n")))
401デフォルトの名無しさん
2019/02/26(火) 15:54:05.05ID:gjK+vdjr お題: 任意のn-オミノを全種類出力するプログラム
402デフォルトの名無しさん
2019/02/26(火) 15:55:57.75ID:IBhh82RD403デフォルトの名無しさん
2019/02/26(火) 18:05:30.42ID:KX5s2hIr >>384 Squeak/Pharo Smalltalk
| tick start primes sema sieveMaker processes ans |
tick := 1 second.
start := DateAndTime now.
primes := SharedQueue new.
sema := Semaphore new.
sieveMaker := [:x | [[(tick * x) asDelay wait. sema signal] repeat]].
processes := SharedQueue new.
tick asDelay wait.
processes nextPut: [
[ tick asDelay wait.
sema isSignaled ifFalse: [
| prime sieve |
prime := primes nextPut: (DateAndTime now - start / tick) asInteger.
sieve := sieveMaker value: prime.
processes nextPut: sieve fork
].
sema initSignals
] repeat
] fork.
ans := (1 to: 10) collect: [:idx | primes next].
1 to: processes size do: [:idx | processes next terminate].
ans "=> #(2 3 5 7 11 13 17 19 23 29) "
| tick start primes sema sieveMaker processes ans |
tick := 1 second.
start := DateAndTime now.
primes := SharedQueue new.
sema := Semaphore new.
sieveMaker := [:x | [[(tick * x) asDelay wait. sema signal] repeat]].
processes := SharedQueue new.
tick asDelay wait.
processes nextPut: [
[ tick asDelay wait.
sema isSignaled ifFalse: [
| prime sieve |
prime := primes nextPut: (DateAndTime now - start / tick) asInteger.
sieve := sieveMaker value: prime.
processes nextPut: sieve fork
].
sema initSignals
] repeat
] fork.
ans := (1 to: 10) collect: [:idx | primes next].
1 to: processes size do: [:idx | processes next terminate].
ans "=> #(2 3 5 7 11 13 17 19 23 29) "
404デフォルトの名無しさん
2019/02/26(火) 20:30:26.61ID:cNXsTeTJ お題: (Aが真 または Bが真) ならば Cが真である。 であるをプログラムしなさい。
405デフォルトの名無しさん
2019/02/26(火) 23:29:53.47ID:Tg4W+a2u お題: 円の最大重複数を求めよ
例題 以下画像の場合、最大重複数は4です。
https://imgur.com/pbh3VSE.png
円の重複数え方は、2つの円が重なっていたら、重なっている数は2とします。
また、円の重複判定の際、2つの円が円周上の1点のみで重なる場合、それらの円は重なっていないとします。
(理由は重複している面積は0だから。)
以下、本題。
画像のようなNo.0からNo.99までの100個の円があります。
これの円の最大重複数を整数で答えなさい。
https://imgur.com/WiRHA1F.png
入力データ:
https://drive.google.com/open?id=1kl8bS3GOr8Ot2OMMACdCG0SJMpEKxLO3
入力データはx座標 y座標 r(半径)の順で記述されたリストで、すべて実数です。
与えられる入力データは
-800.0 ≦ x ≦ 800.0
-800.0 ≦ y ≦ 800.0
100.0 ≦ r ≦ 400.0
の条件を満たします。
画像は自作、多分正しい。
例題 以下画像の場合、最大重複数は4です。
https://imgur.com/pbh3VSE.png
円の重複数え方は、2つの円が重なっていたら、重なっている数は2とします。
また、円の重複判定の際、2つの円が円周上の1点のみで重なる場合、それらの円は重なっていないとします。
(理由は重複している面積は0だから。)
以下、本題。
画像のようなNo.0からNo.99までの100個の円があります。
これの円の最大重複数を整数で答えなさい。
https://imgur.com/WiRHA1F.png
入力データ:
https://drive.google.com/open?id=1kl8bS3GOr8Ot2OMMACdCG0SJMpEKxLO3
入力データはx座標 y座標 r(半径)の順で記述されたリストで、すべて実数です。
与えられる入力データは
-800.0 ≦ x ≦ 800.0
-800.0 ≦ y ≦ 800.0
100.0 ≦ r ≦ 400.0
の条件を満たします。
画像は自作、多分正しい。
406デフォルトの名無しさん
2019/02/27(水) 11:44:25.97ID:wHsSBDML お題: 自分自身のコードのコメントと非コメントを入れ替えたコードを出力するプログラムの
コードが自分自身のコメントの非コメントを入れ替えたプログラムのコードに
なっているプログラム
コードが自分自身のコメントの非コメントを入れ替えたプログラムのコードに
なっているプログラム
407デフォルトの名無しさん
2019/02/27(水) 12:50:19.00ID:haTnnqie S式かRPNで書いてくれややこしい
408デフォルトの名無しさん
2019/02/27(水) 16:44:46.91ID:1o6M4rID >>406
サンプルプリーズ
サンプルプリーズ
409デフォルトの名無しさん
2019/02/27(水) 19:23:18.85ID:1o0vhyUy お題
整数N(N>=6)を相異なる3つの整数(0<a<b<c)の和で表すことを考える。
数列(a,b,c)として考えられるもののうち、辞書式順序で最小のものと最大のものを求めよ
N=6
=> (1,2,3)/(1,2,3)
N=100
=> (1,2,97)/(32,33,35)
整数N(N>=6)を相異なる3つの整数(0<a<b<c)の和で表すことを考える。
数列(a,b,c)として考えられるもののうち、辞書式順序で最小のものと最大のものを求めよ
N=6
=> (1,2,3)/(1,2,3)
N=100
=> (1,2,97)/(32,33,35)
410デフォルトの名無しさん
2019/02/27(水) 19:25:22.96ID:sZAuINQ9 お題
英今文字からなる文字列が与えられる。
各文字の大文字、小文字の組み合わせをすべて求める。
"ab"の場合
ab
aB
Ab
AB
英今文字からなる文字列が与えられる。
各文字の大文字、小文字の組み合わせをすべて求める。
"ab"の場合
ab
aB
Ab
AB
411デフォルトの名無しさん
2019/02/27(水) 19:42:57.27ID:haTnnqie エーコン文字って何
412デフォルトの名無しさん
2019/02/27(水) 19:49:50.41ID:fYEBa3GD413デフォルトの名無しさん
2019/02/27(水) 20:08:19.81ID:Tij8CMAh414デフォルトの名無しさん
2019/02/27(水) 21:30:26.97ID:WT+xSYik >>410 JavaScript
const acorn = s => {
for (let i=0; i < 2**s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc+String.fromCharCode(c.charCodeAt() - 32 * i.toString(2).padStart(s.length, 0)[j]), '')
);
}
}
acorn('ab'); // の実行結果:
ab
aB
Ab
AB
acorn('ufo'); // の実行結果:
ufo
ufO
uFo
uFO
Ufo
UfO
UFo
UFO
const acorn = s => {
for (let i=0; i < 2**s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc+String.fromCharCode(c.charCodeAt() - 32 * i.toString(2).padStart(s.length, 0)[j]), '')
);
}
}
acorn('ab'); // の実行結果:
ab
aB
Ab
AB
acorn('ufo'); // の実行結果:
ufo
ufO
uFo
uFO
Ufo
UfO
UFo
UFO
415デフォルトの名無しさん
2019/02/28(木) 04:32:37.78ID:oRFlldUh416デフォルトの名無しさん
2019/02/28(木) 06:17:40.15ID:9oEuhY5c >>410 Ruby
s = "ufo"
a = []
s.each_char do |c| a.push([c, c.upcase]) end
b = a[0]
a[1..-1].each do |e| b = b.product(e) end
b.each do |e| puts(e.join) end
s = "ufo"
a = []
s.each_char do |c| a.push([c, c.upcase]) end
b = a[0]
a[1..-1].each do |e| b = b.product(e) end
b.each do |e| puts(e.join) end
417デフォルトの名無しさん
2019/02/28(木) 08:43:33.13ID:qFD89Rtd >>410 Squeak Smalltalk(#perform: を二変数ブロックにすればPharoでも動く)
| fn |
fn := [:str |
| ans |
ans := OrderedCollection new.
#(asLowercase asUppercase) asDigitsToPower: str size do: [:comb |
ans add: (str with: comb collect: #perform:)
].
ans asArray
].
fn value: 'ab'. "=> #('ab' 'aB' 'Ab' 'AB') "
fn value: 'ufo'. "=> #('ufo' 'ufO' 'uFo' 'uFO' 'Ufo' 'UfO' 'UFo' 'UFO') "
| fn |
fn := [:str |
| ans |
ans := OrderedCollection new.
#(asLowercase asUppercase) asDigitsToPower: str size do: [:comb |
ans add: (str with: comb collect: #perform:)
].
ans asArray
].
fn value: 'ab'. "=> #('ab' 'aB' 'Ab' 'AB') "
fn value: 'ufo'. "=> #('ufo' 'ufO' 'uFo' 'uFO' 'Ufo' 'UfO' 'UFo' 'UFO') "
418デフォルトの名無しさん
2019/02/28(木) 09:14:29.16ID:vBJFBkkc uppercaseメソッドのことスッカリ忘れてた>>414
const acorn = s => {
for (let i=0; i < 2 ** s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc + (+i.toString(2).padStart(s.length, 0)[j] ? c.toUpperCase() : c), '')
);
}
}
const acorn = s => {
for (let i=0; i < 2 ** s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc + (+i.toString(2).padStart(s.length, 0)[j] ? c.toUpperCase() : c), '')
);
}
}
419デフォルトの名無しさん
2019/02/28(木) 10:31:36.11ID:PtOlEBM/ >>410 Ruby
def f(s)
a=s.chars.map{|c|[c,c.upcase]}
a.shift.product(*a).map(&:join)
end
p f("abc")
["abc", "abC", "aBc", "aBC", "Abc", "AbC", "ABc", "ABC"]
def f(s)
a=s.chars.map{|c|[c,c.upcase]}
a.shift.product(*a).map(&:join)
end
p f("abc")
["abc", "abC", "aBc", "aBC", "Abc", "AbC", "ABc", "ABC"]
420デフォルトの名無しさん
2019/02/28(木) 10:34:43.50ID:7nNuTdUM 簡単な問題にはものすごい勢いでこたえるのに、難しい問題には見てみぬふりをするのなwwww
難しい問題にはわかりませんだろ
難しい問題にはわかりませんだろ
421デフォルトの名無しさん
2019/02/28(木) 13:46:39.00ID:oAFMMcaR >>420
わからないとかやる気が起きないお題に対してわざわざわからないだのなんだのとみんなで書いてたらそういった書き込みでこのスレはすぐに一杯になるだろう。
そんなの無駄で邪魔だから一々書かんでスルーしてくれた方が良い。
わからないとかやる気が起きないお題に対してわざわざわからないだのなんだのとみんなで書いてたらそういった書き込みでこのスレはすぐに一杯になるだろう。
そんなの無駄で邪魔だから一々書かんでスルーしてくれた方が良い。
422デフォルトの名無しさん
2019/02/28(木) 14:39:02.28ID:7nNuTdUM423デフォルトの名無しさん
2019/02/28(木) 14:50:46.53ID:wVeu6yBT424デフォルトの名無しさん
2019/02/28(木) 15:02:45.97ID:7nNuTdUM >>423
自分の都合のいい問題にしか答えないのはわがままとしかいいようがない
自分の都合のいい問題にしか答えないのはわがままとしかいいようがない
425デフォルトの名無しさん
2019/02/28(木) 15:25:18.89ID:oAFMMcaR >>422
たまたまわからない問題が連続したらわかりませんしか書けないだろうが。
たまたまわからない問題が連続したらわかりませんしか書けないだろうが。
426デフォルトの名無しさん
2019/02/28(木) 15:26:43.33ID:oAFMMcaR >>424
全ての問題に答える義務は誰にもない。
全ての問題に答える義務は誰にもない。
427デフォルトの名無しさん
2019/02/28(木) 15:35:33.99ID:7nNuTdUM428デフォルトの名無しさん
2019/02/28(木) 16:05:54.17ID:K7dGf2QC >>427 まだ誰も回答していない問題があるが、君はわかりませんと言っていないね。 まだ考え中かな?
429デフォルトの名無しさん
2019/02/28(木) 16:22:56.91ID:7nNuTdUM430デフォルトの名無しさん
2019/02/28(木) 17:35:56.73ID:swPpvqd8 小手先問題は得意
431デフォルトの名無しさん
2019/02/28(木) 17:48:58.57ID:+01UgAVr >>420
そんなの当たり前じゃん
そんなの当たり前じゃん
432デフォルトの名無しさん
2019/02/28(木) 17:51:09.02ID:+01UgAVr 出題する側のセンスも問われる
433デフォルトの名無しさん
2019/02/28(木) 18:46:34.61ID:oAFMMcaR >>427
便所の落書きに時たま書かれる問題にうんこしながら答えを書くか書かないかで都合が良くなったり悪くなったりする者は居ない。
便所の落書きに時たま書かれる問題にうんこしながら答えを書くか書かないかで都合が良くなったり悪くなったりする者は居ない。
434デフォルトの名無しさん
2019/02/28(木) 18:49:07.23ID:KtyAfxmO しかし最近は便所の落書きは亡くなったに等しいな。
それにもかかわらず2chには便所の落書きが多い。
ここはまだましだけどな。
それにもかかわらず2chには便所の落書きが多い。
ここはまだましだけどな。
435デフォルトの名無しさん
2019/02/28(木) 19:23:16.75ID:7nNuTdUM 公園の便所とかもちゃんと調べていってるのか?
436デフォルトの名無しさん
2019/02/28(木) 19:52:08.39ID:KtyAfxmO うちの近くの公園にはまずないな。
十人くらいしか遊べない公園も、数千人も遊べる公園も同じ。
十人くらいしか遊べない公園も、数千人も遊べる公園も同じ。
437デフォルトの名無しさん
2019/02/28(木) 20:27:06.93ID:oAFMMcaR ああいうのもブロークンウィンドウズ理論通りに汚くなればなるほど余計に汚くなって尚且つその地区の犯罪率も上昇しちゃうんだろうな。
438デフォルトの名無しさん
2019/02/28(木) 20:28:03.31ID:fDwT3kht ID:7nNuTdUM が便所の落書きしかしてないのは分かる
439デフォルトの名無しさん
2019/02/28(木) 20:59:59.90ID:KtyAfxmO >>437 もちろんどんな公園にもバカな書き込みをする奴はいるだろう。 でも管理された公園では、次の日には修復されてるから書かれてたことにすら気づかなくて、誰も描かなくなる。
10年に1度くらいアホが便器を壊すなんて馬鹿なことをする事件もあるが、バカはどこにでもいるから仕方ない。
10年に1度くらいアホが便器を壊すなんて馬鹿なことをする事件もあるが、バカはどこにでもいるから仕方ない。
440デフォルトの名無しさん
2019/02/28(木) 21:01:11.76ID:6vlCNc4e もうちょっと気の利いた比喩がほしいね。
441デフォルトの名無しさん
2019/02/28(木) 21:58:37.50ID:dSln4xk/ お題
四角形の羅列を、'#'と'.'を使った表現から罫線を使った表現に変換せよ
(例)等幅フォントで見てください
#
↓
┌┬┐
├┼┤
└┴┘
#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.
┌┬┐ ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐
├┼┤ ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
├┼┤ ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤ ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤ ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ └┴┘
四角形の羅列を、'#'と'.'を使った表現から罫線を使った表現に変換せよ
(例)等幅フォントで見てください
#
↓
┌┬┐
├┼┤
└┴┘
#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.
┌┬┐ ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐
├┼┤ ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
├┼┤ ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤ ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤ ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ └┴┘
442デフォルトの名無しさん
2019/02/28(木) 22:09:31.89ID:DbAr3TBt なにこれ?組み立てたらガンダムになるの?
443デフォルトの名無しさん
2019/02/28(木) 22:33:12.22ID:lyW2+AsV >>410 ruby
https://ideone.com/lGQ1lX
f = -> s {[''].product(*s.chars.map {|c| [c, c.upcase]}).map(&:join)}
p %W(#{} a ab).map {|s| [s, f.(s)]}
↓
[["", [""]], ["a", ["a", "A"]], ["ab", ["ab", "aB", "Ab", "AB"]]]
https://ideone.com/lGQ1lX
f = -> s {[''].product(*s.chars.map {|c| [c, c.upcase]}).map(&:join)}
p %W(#{} a ab).map {|s| [s, f.(s)]}
↓
[["", [""]], ["a", ["a", "A"]], ["ab", ["ab", "aB", "Ab", "AB"]]]
444デフォルトの名無しさん
2019/03/01(金) 11:41:54.16ID:RkKCNcIA >>411 下らんお題出すなよ。
445デフォルトの名無しさん
2019/03/01(金) 14:53:48.06ID:ber2ILYj >>444
それお題じゃない
それお題じゃない
446デフォルトの名無しさん
2019/03/01(金) 16:58:28.80ID:KMRxw/mf447デフォルトの名無しさん
2019/03/01(金) 17:54:01.28ID:nsJzseJ0 読み手の環境を変えさせるようなお題は不適切。
448デフォルトの名無しさん
2019/03/01(金) 18:00:52.30ID:nsJzseJ0 というか >>441 の問題が意味不明。 スクリーンショットで示してみなよ。 俺はやらんだろうけど。
449デフォルトの名無しさん
2019/03/01(金) 18:05:43.92ID:nsJzseJ0 >>441 なんかプログラムの練習の前に、日本語のおさらいをした方が良い人間が見受けられるな。
プログラムはチームワークだから、他人に仕様が正確に伝えられなければその時点でそのプロジェクトは失敗。
理解しやすい言葉で混乱が起きない様に示すのが当たり前では?
それができない人はプログラムで問題を出しなさいよ。
プログラムはチームワークだから、他人に仕様が正確に伝えられなければその時点でそのプロジェクトは失敗。
理解しやすい言葉で混乱が起きない様に示すのが当たり前では?
それができない人はプログラムで問題を出しなさいよ。
450デフォルトの名無しさん
2019/03/01(金) 18:35:43.56ID:ber2ILYj え?>>441はわかるよ。俺がエスパーなだけ?w
451デフォルトの名無しさん
2019/03/01(金) 18:38:47.53ID:nQNJhNQv 俺もわかるけどわかりにくいと思った
452デフォルトの名無しさん
2019/03/01(金) 19:02:55.70ID:KgoMIpD3 なぜ#1つで4つの4角形になるんた?
#を図形として見た場合一致しないと思うんだが
#を図形として見た場合一致しないと思うんだが
453デフォルトの名無しさん
2019/03/01(金) 19:26:25.34ID:ber2ILYj 記号を罫線ので作った四角にしろってことでこの場合は#だったってだけでは?
なんだったら「田」から変換するようにすれば雰囲気がマッチして良いかも知れんな。気分の問題だが。
なんだったら「田」から変換するようにすれば雰囲気がマッチして良いかも知れんな。気分の問題だが。
454デフォルトの名無しさん
2019/03/01(金) 19:55:55.91ID:HvpZFnzz455デフォルトの名無しさん
2019/03/02(土) 01:29:28.31ID:og4HVKiE >>441 でたらめだろ。 #が田形3マスになるのは良いとして、ドットが何で3マスになったり、1マスになってるんだよ。
#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.
123456789いろはにほ123456789へと
┌┬┐ ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐
├┼┤ ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
├┼┤ ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤ ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤ ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ └┴┘
#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.
123456789いろはにほ123456789へと
┌┬┐ ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐
├┼┤ ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
├┼┤ ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤ ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤ ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ └┴┘
456デフォルトの名無しさん
2019/03/02(土) 01:35:36.81ID:og4HVKiE >>455 ごめん、罫線だから、0.5ずれてたのか。 しかしわかりにくい問題だな。
もしかして自分の仕事を人に押し付けようとしていないか?
もしかして自分の仕事を人に押し付けようとしていないか?
457デフォルトの名無しさん
2019/03/02(土) 03:13:42.38ID:xuPe2CJ9458デフォルトの名無しさん
2019/03/02(土) 11:02:58.51ID:H6jPx1zC 専用ブラウザじゃ等副フォントなんて選べないのがあるのを知らないのか?
BB2Cでは、英字は等幅が選べても、漢字にはフォント設定すらない。
Jane Doe View も MSゴシックを選択しても等幅にならない。
読み手の設定を変えさせる問題なんて2chにはふさわしくない。
BB2Cでは、英字は等幅が選べても、漢字にはフォント設定すらない。
Jane Doe View も MSゴシックを選択しても等幅にならない。
読み手の設定を変えさせる問題なんて2chにはふさわしくない。
459デフォルトの名無しさん
2019/03/02(土) 11:17:11.62ID:xuPe2CJ9 俺は等幅で見てくれってあったら、設定を変えるんじゃなくてメモ帳にコピペして見るけどなー
460デフォルトの名無しさん
2019/03/02(土) 11:41:44.38ID:og4HVKiE >>459 そうやって見たけど面倒くさい。 やるならどこかのサイトに張り付けるか画像で出題すべきだろ。
461デフォルトの名無しさん
2019/03/02(土) 11:42:35.75ID:jZcAiOx4 おれなら出題を諦めるなw
462デフォルトの名無しさん
2019/03/02(土) 11:43:11.78ID:chZTsz9F 問題とかずに問題への文句ばかり垂れるってお前らにしては珍しいな
問題とけよクズども
問題とけよクズども
463デフォルトの名無しさん
2019/03/02(土) 11:55:57.51ID:xuPe2CJ9 >>462
お…おれはやってるよっ
お…おれはやってるよっ
464デフォルトの名無しさん
2019/03/02(土) 11:55:57.58ID:jZcAiOx4 >>462
ぐ、ぐむーっ
ぐ、ぐむーっ
465デフォルトの名無しさん
2019/03/02(土) 11:56:34.18ID:xuPe2CJ9 >>463-464
この間0.07秒である
この間0.07秒である
466デフォルトの名無しさん
2019/03/02(土) 12:11:05.29ID:JYk2NVzi この広い日本のどこかに同じ時に同じレスに反応してしまった二人がいる。
プログラミングの世界は奥が深いな……
プログラミングの世界は奥が深いな……
467デフォルトの名無しさん
2019/03/02(土) 13:30:29.30ID:og4HVKiE >>466 良いお題を解いたね。
468デフォルトの名無しさん
2019/03/02(土) 16:02:22.23ID:xke/YE7F >>453
なるほどそういうことか
なるほどそういうことか
469デフォルトの名無しさん
2019/03/02(土) 16:22:52.10ID:ZN4ZPl7z >>457
なるほど
>>411 Common Lisp (>>457の移植)
https://ideone.com/OTuTMy
すごいなあ、こんなの全然思いつけない
文字を文字のままどうにかしようとしてぐちゃぐちゃになったのが>>454でした
なるほど
>>411 Common Lisp (>>457の移植)
https://ideone.com/OTuTMy
すごいなあ、こんなの全然思いつけない
文字を文字のままどうにかしようとしてぐちゃぐちゃになったのが>>454でした
471デフォルトの名無しさん
2019/03/02(土) 16:49:20.52ID:R507/Kbo 全く面白くない。
472デフォルトの名無しさん
2019/03/02(土) 20:23:12.84ID:bDAZjPpu473デフォルトの名無しさん
2019/03/03(日) 08:56:00.68ID:NMVimqZR お題:2つの円が重なった時、重なった部分の面積を求めなさい。
474デフォルトの名無しさん
2019/03/03(日) 13:28:27.28ID:TjAANgsg 含まれている場合も考えなきゃならんな…
475デフォルトの名無しさん
2019/03/03(日) 17:19:17.78ID:e91Lt8pq >>473
わかりません。
わかりません。
476さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/03(日) 17:21:20.86ID:KlFuUPR7 距離と半径くらい指定しろよ。
477デフォルトの名無しさん
2019/03/03(日) 17:48:01.52ID:EHdvkNdx >>475
分からない人は答えなくていいし黙って見ていればいいよ
分からない人は答えなくていいし黙って見ていればいいよ
478デフォルトの名無しさん
2019/03/03(日) 18:41:09.09ID:TjAANgsg >>476
任意に対応すべきだろJK
任意に対応すべきだろJK
479デフォルトの名無しさん
2019/03/03(日) 18:55:07.69ID:TjAANgsg >>476
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1263968897
このサイトは具体的な座標と半径について手計算で解いた例だけど、
座標と半径を一般化して連立二次方程式を解いて交点を求め、
三角形と円弧の面積の差を求めれば重なり合う2円弧の面積が算出できる。
小さい円の中心が大きい円の内側にある場合は、
三角形と円弧の面積の差の求め方を逆にする。
小さい円が大きい円の完全に内側にある場合は、小さい円の面積とする。
x,y座標で式を立てるより、曲座標で表して三角関数使うほうが楽かもしれない。
これをプログラム化すれば良い、筈【だと思う。
以上。
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1263968897
このサイトは具体的な座標と半径について手計算で解いた例だけど、
座標と半径を一般化して連立二次方程式を解いて交点を求め、
三角形と円弧の面積の差を求めれば重なり合う2円弧の面積が算出できる。
小さい円の中心が大きい円の内側にある場合は、
三角形と円弧の面積の差の求め方を逆にする。
小さい円が大きい円の完全に内側にある場合は、小さい円の面積とする。
x,y座標で式を立てるより、曲座標で表して三角関数使うほうが楽かもしれない。
これをプログラム化すれば良い、筈【だと思う。
以上。
480デフォルトの名無しさん
2019/03/03(日) 19:21:30.98ID:yjYtaUkW 2つの中心を通る線をX軸としてX軸と交わる点の端っこを原点して円の交点と半径で
円一個ずつ積分して面積を出して合わせるしかないだろ。
円一個ずつ積分して面積を出して合わせるしかないだろ。
481デフォルトの名無しさん
2019/03/03(日) 19:28:30.68ID:r5nrErEk 半径と中心間の距離から円の交点間の距離(=弦)がわかるから
正弦定理とarcsinで中心角を求めればあとはただの掛け算と引き算だろ
正弦定理とarcsinで中心角を求めればあとはただの掛け算と引き算だろ
482デフォルトの名無しさん
2019/03/03(日) 19:33:55.32ID:TjAANgsg >>481
二次方程式解かないで済みそうだな
二次方程式解かないで済みそうだな
483デフォルトの名無しさん
2019/03/03(日) 20:19:21.58ID:ot+8d2KD それが一番シンプルそうだな
484デフォルトの名無しさん
2019/03/03(日) 20:23:33.79ID:8CruhG40 プログラム的には円同士の位置関係で場合分けして、あとは計算一発だから二次方程式をいやがる必要もなくない?
485デフォルトの名無しさん
2019/03/03(日) 21:06:33.77ID:XGcp5yLx486デフォルトの名無しさん
2019/03/03(日) 22:28:24.90ID:XGcp5yLx487デフォルトの名無しさん
2019/03/04(月) 01:00:55.59ID:q2TdavLp 乙
488デフォルトの名無しさん
2019/03/04(月) 07:57:27.52ID:7HyVHUwF お題:不等間隔で与えられる関数表から1次とか2次で補間をしなさい。
489デフォルトの名無しさん
2019/03/04(月) 11:04:59.42ID:9wLIIjqc お題: 2つの任意の英数字からなる芸術的なアスキーアートを出力しろ
490デフォルトの名無しさん
2019/03/04(月) 11:07:25.78ID:9wLIIjqc お題: アスキーアートで芸術的な直線を出力しろ
491デフォルトの名無しさん
2019/03/04(月) 12:15:59.00ID:9wLIIjqc お題: アスキーアートで芸術的な木のアスキーアートを出力しろ
492デフォルトの名無しさん
2019/03/04(月) 13:00:20.39ID:enTqHBl5 お題: このバカをどうにかしろ
493デフォルトの名無しさん
2019/03/04(月) 13:06:53.32ID:mOK2oiAk494デフォルトの名無しさん
2019/03/04(月) 18:59:01.31ID:R4eMfGlu お題 全角空白区切のCSV
カレントディレクトリにあるCSVファイルを読み込み、指定されたカラム名のデータの合計を求める。
1レコード目にはカラム名がある。
区切り記号は全角空白とする。 データの数字は全てASCII数字だとする。
CSVファイル内のデータ例
カラム1 カラム2 カラム3 カラム4
1,0 2.0 3.0 4.0
2.1 3.1 4.1 5.1
------データ例終わり
出題 カラム3 の合計を求めよ。
解答例 カラム3 = 7.1
カレントディレクトリにあるCSVファイルを読み込み、指定されたカラム名のデータの合計を求める。
1レコード目にはカラム名がある。
区切り記号は全角空白とする。 データの数字は全てASCII数字だとする。
CSVファイル内のデータ例
カラム1 カラム2 カラム3 カラム4
1,0 2.0 3.0 4.0
2.1 3.1 4.1 5.1
------データ例終わり
出題 カラム3 の合計を求めよ。
解答例 カラム3 = 7.1
495さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/04(月) 19:01:33.11ID:wk4fvbO+ カンマとピリオド間違えたら死ぬぞ。気を付けれ。
496デフォルトの名無しさん
2019/03/04(月) 19:03:32.42ID:rdjSvZ2C497さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/04(月) 19:10:24.71ID:wk4fvbO+ 日本やアメリカでは、ピリオドは文の終わりや小数点として使う。
カンマは文章途中の区切りや複数の項目の区切りに使う。
カンマは文章途中の区切りや複数の項目の区切りに使う。
498デフォルトの名無しさん
2019/03/04(月) 19:12:27.62ID:rdjSvZ2C >>497 問題に関係ないことを言うなよ。
499デフォルトの名無しさん
2019/03/04(月) 19:12:28.56ID:TpCWsYE8 >>494
awk。-F オプションで指定しているのが全角スペースね。OSやシェルの違いによってはシングルクオーテーションではなくダブルクォーテーションにする必要がある。入力はファイル名指定するか標準入力から読ませる。
awk -F' ' 'BEGIN{getline}{n+=$3}END{print n}'
awk。-F オプションで指定しているのが全角スペースね。OSやシェルの違いによってはシングルクオーテーションではなくダブルクォーテーションにする必要がある。入力はファイル名指定するか標準入力から読ませる。
awk -F' ' 'BEGIN{getline}{n+=$3}END{print n}'
500デフォルトの名無しさん
2019/03/04(月) 19:15:20.56ID:TpCWsYE8 awkはデータフォーマットがおかしくても適当に0ってことにしちゃったりしてエラーにならんのでデータ異常まで調べたいなら他の言語使った方が良いだろうな。
501デフォルトの名無しさん
2019/03/04(月) 19:16:48.51ID:rdjSvZ2C >>499 カラム名を指定してよ。カラム名は指定された名前であり固定ではない。
502デフォルトの名無しさん
2019/03/04(月) 19:22:30.38ID:TpCWsYE8 >>501
あー。じゃあ後で他の言語で作るか。
あー。じゃあ後で他の言語で作るか。
503デフォルトの名無しさん
2019/03/04(月) 19:42:58.86ID:0eAiVVhP お題:端末の横幅が与えられるので(*´ω`*)を端末の中央に表示せよ
504デフォルトの名無しさん
2019/03/04(月) 20:14:28.23ID:/O719wMt このバカどうにかしろ
あとチンポジ代わりに直せ
あとチンポジ代わりに直せ
505デフォルトの名無しさん
2019/03/04(月) 21:14:51.56ID:x+RRe849506デフォルトの名無しさん
2019/03/05(火) 01:17:51.32ID:irQmeRjm 茨木 保健
貴老沢 風花
鬼塚 海鈴
鬼埜 可恋
儀賀沢 一愛
嫌沢 宮子
己問 彩姫
寺沢 七彩
寿川 瑞紀
樹木山 美咲
宗田 純
女ケ沢 美優
女ケ澤 飛鳥
女鹿沢 祐奈
貴老沢 風花
鬼塚 海鈴
鬼埜 可恋
儀賀沢 一愛
嫌沢 宮子
己問 彩姫
寺沢 七彩
寿川 瑞紀
樹木山 美咲
宗田 純
女ケ沢 美優
女ケ澤 飛鳥
女鹿沢 祐奈
507デフォルトの名無しさん
2019/03/05(火) 03:28:01.02ID:CZi591h7 >>494
Ruby で
require 'csv'
# 全角空白区切りで、ヘッダー有り
options = { :headers => true, :col_sep => " " }
# CSV ファイルを、1行ずつ処理する
puts CSV.foreach( "input.csv", options )
.map{ |row| row[ 2 ].to_f }.inject( :+ )
Ruby で
require 'csv'
# 全角空白区切りで、ヘッダー有り
options = { :headers => true, :col_sep => " " }
# CSV ファイルを、1行ずつ処理する
puts CSV.foreach( "input.csv", options )
.map{ |row| row[ 2 ].to_f }.inject( :+ )
508デフォルトの名無しさん
2019/03/05(火) 07:59:44.57ID:0SMIqw+w >>507 カラム名サーチが入っていないみたいだけど。
例えば ”カラム3” と言うカラム名が指定されたとして書いてみて。3列目と言うことじゃないからね。
カラム4 カラム2 カラム1 カラム3
かも知れない。
例えば ”カラム3” と言うカラム名が指定されたとして書いてみて。3列目と言うことじゃないからね。
カラム4 カラム2 カラム1 カラム3
かも知れない。
509デフォルトの名無しさん
2019/03/05(火) 08:10:31.80ID:utDz1VTj 変な流れが続いていたから、バカっぽいお題をいくつか出した後に一見まともそうなお題のふりして宿題をやってもらおうという腹かと勘ぐってしまう。
510デフォルトの名無しさん
2019/03/05(火) 09:08:51.84ID:BKNc7BtY511デフォルトの名無しさん
2019/03/05(火) 09:12:40.32ID:DIrFqE8l >>510
宿題は自分でやれカス
宿題は自分でやれカス
512デフォルトの名無しさん
2019/03/05(火) 09:42:11.28ID:BKNc7BtY >>511
お前の宿題だが
お前の宿題だが
513デフォルトの名無しさん
2019/03/05(火) 09:45:18.09ID:DIrFqE8l 死ね
514デフォルトの名無しさん
2019/03/05(火) 11:33:12.77ID:7U5lBe0C だから言語制限なしで通すとやっぱネタギレじゃん
515デフォルトの名無しさん
2019/03/05(火) 12:09:12.75ID:KQ31R4yU お題1: テトリスタイリング問題を解決しろ
ここでテトリスタイリング問とは任意の図形のアスキーアートを入力すると
全てのテトリスのブロックに隣接するブロックの種類が異なるようにタイリングしたアスキーアートを出力する
問題である
お題2: テトリスタイリングNブロックス問題を解決しろ
ここでこの問題は上の問題でブロックの種類の数Nを最小にする問題である
例:
入力:
****
****
****
出力:
1002
1002
1122
ここでテトリスタイリング問とは任意の図形のアスキーアートを入力すると
全てのテトリスのブロックに隣接するブロックの種類が異なるようにタイリングしたアスキーアートを出力する
問題である
お題2: テトリスタイリングNブロックス問題を解決しろ
ここでこの問題は上の問題でブロックの種類の数Nを最小にする問題である
例:
入力:
****
****
****
出力:
1002
1002
1122
516デフォルトの名無しさん
2019/03/05(火) 12:21:13.18ID:WJ/srpVX517デフォルトの名無しさん
2019/03/05(火) 12:23:52.27ID:KQ31R4yU >>516
それでもええで
それでもええで
518デフォルトの名無しさん
2019/03/05(火) 23:56:55.78ID:0SMIqw+w >>515 ボクちゃんわかんない。
何で縦の列は1とか同じ種類が許されてるの? なんか上から下へとか言う動きを前提にしてるの?
何で縦の列は1とか同じ種類が許されてるの? なんか上から下へとか言う動きを前提にしてるの?
519デフォルトの名無しさん
2019/03/06(水) 01:19:54.96ID:tTGpH/KM >>518
https://upload.wikimedia.org/wikipedia/commons/9/9a/Tetrominoes_letter_oriented.png
片面テトロミノ(画像参照)を回転させて指定の形に詰め込め
ただし、同じテトロミノを隣接させてはいけない。 ってことじゃろ
515の出力例でいうと、
0は画像の水色、1は黄色、2は紫色の奴ってこと
https://upload.wikimedia.org/wikipedia/commons/9/9a/Tetrominoes_letter_oriented.png
片面テトロミノ(画像参照)を回転させて指定の形に詰め込め
ただし、同じテトロミノを隣接させてはいけない。 ってことじゃろ
515の出力例でいうと、
0は画像の水色、1は黄色、2は紫色の奴ってこと
520デフォルトの名無しさん
2019/03/06(水) 08:04:05.66ID:bBth0ZZS521デフォルトの名無しさん
2019/03/06(水) 10:13:54.30ID:Z0o65K/P522デフォルトの名無しさん
2019/03/06(水) 11:44:29.70ID:cM1JcwP7523デフォルトの名無しさん
2019/03/06(水) 11:58:00.89ID:OdnfdSEH524デフォルトの名無しさん
2019/03/06(水) 12:34:51.62ID:cM1JcwP7525デフォルトの名無しさん
2019/03/06(水) 12:44:07.40ID:OdnfdSEH527デフォルトの名無しさん
2019/03/06(水) 12:57:33.38ID:FCOQEIBI わかっても今のところ解く気は起きない
528デフォルトの名無しさん
2019/03/06(水) 12:58:29.33ID:Z0o65K/P >>522
あなた、前に書き込んでた中卒の人?
あなた、前に書き込んでた中卒の人?
530デフォルトの名無しさん
2019/03/06(水) 13:08:31.07ID:URj2ByGk >>524
>どうして4個固定なのか?
テトリスってゲームがあってそれに出てくるブロックが>>519
>>515
>全てのテトリスのブロック
https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AA%E3%82%B9
テトリス
>4つの正方形を組み合わせて作られた、片面型テトロミノ状のブロックピース
>(以下の7種、本作ではこれらを「テトリミノ」(Tetrimino)と呼ぶ)
>がフィールド上方からランダムに1種類ずつ落下してくる。
>どうして4個固定なのか?
テトリスってゲームがあってそれに出てくるブロックが>>519
>>515
>全てのテトリスのブロック
https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AA%E3%82%B9
テトリス
>4つの正方形を組み合わせて作られた、片面型テトロミノ状のブロックピース
>(以下の7種、本作ではこれらを「テトリミノ」(Tetrimino)と呼ぶ)
>がフィールド上方からランダムに1種類ずつ落下してくる。
531デフォルトの名無しさん
2019/03/06(水) 13:09:30.85ID:f/NWPYTA532デフォルトの名無しさん
2019/03/06(水) 13:50:33.24ID:cM1JcwP7 >>530 片面テトリミノの基本は4個だけどこれを使う前提なら、3x5とか4の倍数の面積にならない図形は解けないよね。
聞いてるのは3x5はどうするのと言う話。
聞いてるのは3x5はどうするのと言う話。
533デフォルトの名無しさん
2019/03/06(水) 14:02:02.94ID:URj2ByGk >>532
「解けない」でいいんだろ
「解けない」でいいんだろ
534デフォルトの名無しさん
2019/03/06(水) 16:31:44.46ID:OdnfdSEH >>532
この問題は君の思ってる小学校の算数とは違うんだよ
この問題は君の思ってる小学校の算数とは違うんだよ
535デフォルトの名無しさん
2019/03/06(水) 18:11:04.36ID:+4ROOaYr 問題の難しさと、問題の曖昧さは関係ないけどな。
難しい問題の条件が曖昧だと鼻から解く気になれない。
難しい問題の条件が曖昧だと鼻から解く気になれない。
536デフォルトの名無しさん
2019/03/06(水) 18:18:58.86ID:OdnfdSEH 考えればわかることまでいちいち書かないのは常識
それを曖昧とは言わない
それを曖昧とは言わない
537デフォルトの名無しさん
2019/03/06(水) 19:39:35.98ID:RlXQ9XDp 数学者は常識人
538デフォルトの名無しさん
2019/03/06(水) 19:40:44.95ID:L0cGL7i+ 当たり前のことでもいちいち全部書くのがこの業界の常識だが
539デフォルトの名無しさん
2019/03/06(水) 19:57:47.15ID:2Etc0l5z 仕様書をやりとりしてみれば如何に他人に解らせることが難しいか理解できると思うけどな。 多分出題者は余り経験していないんだろう。
仕様をいい加減で進めても後で痛い目を見るのは自分。
(最初は完全でないのは当然、打ち合わせで抜けを詰めていけば良い話)
仕様をいい加減で進めても後で痛い目を見るのは自分。
(最初は完全でないのは当然、打ち合わせで抜けを詰めていけば良い話)
540デフォルトの名無しさん
2019/03/06(水) 20:41:28.07ID:OdnfdSEH541デフォルトの名無しさん
2019/03/06(水) 20:51:34.66ID:Xwbjxxrc お題の面白さに共感しなければ趣味だから解かない。
542デフォルトの名無しさん
2019/03/06(水) 21:21:50.81ID:FCOQEIBI そういや安かったのでPS4用のテトリスを何気なく買って連日やってたら慣れてきちゃってレベル15の40ライン消しが楽にできるようになってしまったなあ。
今さらテトリスうまくなってどうすんだ俺w
今さらテトリスうまくなってどうすんだ俺w
543デフォルトの名無しさん
2019/03/07(木) 03:21:20.86ID:QS9GxyX4 >>494
Kotlin
https://paiza.io/projects/w5ywqyfGfQpwllH68rmt5A
入力はカラム名の行が最初にあり、次の行からはデータが続き「# カラム名」の行で終わり、
そこで指定したカラム名の列の合計値が出力される。
エラーはデータが数値として解釈できない文字列、項目数がカラム名の数と一致しない行、
同一カラム名があった場合に出る。一度エラーになると # の行まで読み飛ばされる。
Kotlin
https://paiza.io/projects/w5ywqyfGfQpwllH68rmt5A
入力はカラム名の行が最初にあり、次の行からはデータが続き「# カラム名」の行で終わり、
そこで指定したカラム名の列の合計値が出力される。
エラーはデータが数値として解釈できない文字列、項目数がカラム名の数と一致しない行、
同一カラム名があった場合に出る。一度エラーになると # の行まで読み飛ばされる。
544デフォルトの名無しさん
2019/03/07(木) 17:22:14.11ID:bbRk4M8e お題
R言語にandmaginsとうう関数がある。
m行n列の行列を渡すと行ごとの合計と列ごとの合計を追加して
(m+1)行(n+1)列の行列を返す。
同様の関数をつくる。
1 2 3
4 5 6
が
1 2 3 6
4 5 6 15
5 7 9 21
となる
R言語にandmaginsとうう関数がある。
m行n列の行列を渡すと行ごとの合計と列ごとの合計を追加して
(m+1)行(n+1)列の行列を返す。
同様の関数をつくる。
1 2 3
4 5 6
が
1 2 3 6
4 5 6 15
5 7 9 21
となる
545デフォルトの名無しさん
2019/03/07(木) 19:35:31.07ID:gyMjU+f2546デフォルトの名無しさん
2019/03/07(木) 23:35:37.41ID:bSfNx8gZ >>544 Squeak/Pharo Smalltalk
| fn |
fn := [:arr | arr, {arr sum} collect: [:row | row, {row sum}]].
fn value: #(
(1 2 3)
(4 5 6)
).
"=> #(
(1 2 3 6)
(4 5 6 15)
(5 7 9 21)
) "
| fn |
fn := [:arr | arr, {arr sum} collect: [:row | row, {row sum}]].
fn value: #(
(1 2 3)
(4 5 6)
).
"=> #(
(1 2 3 6)
(4 5 6 15)
(5 7 9 21)
) "
547デフォルトの名無しさん
2019/03/08(金) 00:35:43.62ID:N66/0TP0 大文字小文字だけが異なる、ファイル名を見つける
入力
aB.txt
Ab.txt
xx
cd
cD
CD
出力
aB.txt : Ab.txt
cd : cD : CD
入力
aB.txt
Ab.txt
xx
cd
cD
CD
出力
aB.txt : Ab.txt
cd : cD : CD
548デフォルトの名無しさん
2019/03/08(金) 04:41:32.92ID:JrzgN4oN #!/bin/sh
infile="aB.txt Ab.txt xx cd cD CD"
for f in ${infile}; do
echo $f $(echo $f | tr [:lower:] [:upper:])
done | awk '
{ save[$2] = save[$2] " : " $1 }
END {
for (i in save) print save[i]
}' | sed 's/^ : //' | sort | awk 'NF > 1 {print}'
infile="aB.txt Ab.txt xx cd cD CD"
for f in ${infile}; do
echo $f $(echo $f | tr [:lower:] [:upper:])
done | awk '
{ save[$2] = save[$2] " : " $1 }
END {
for (i in save) print save[i]
}' | sed 's/^ : //' | sort | awk 'NF > 1 {print}'
549デフォルトの名無しさん
2019/03/08(金) 09:23:36.88ID:iTwHpxzE >>547 Squeak Smalltalk
| fn |
fn := [:arr |
| groups |
groups := arr groupBy: #asLowercase having: [:group | group size > 1].
groups values collect: #asArray
].
fn value: #('aB.txt' 'Ab.txt' 'xx' 'cd' 'cD' 'CD').
"=> #(('cd' 'cD' 'CD') ('aB.txt' 'Ab.txt')) "
| fn |
fn := [:arr |
| groups |
groups := arr groupBy: #asLowercase having: [:group | group size > 1].
groups values collect: #asArray
].
fn value: #('aB.txt' 'Ab.txt' 'xx' 'cd' 'cD' 'CD').
"=> #(('cd' 'cD' 'CD') ('aB.txt' 'Ab.txt')) "
550デフォルトの名無しさん
2019/03/08(金) 09:47:13.60ID:pv8HlopZ551547
2019/03/08(金) 11:48:57.26ID:N66/0TP0 同一フォルダ内での、大文字小文字だけが異なるファイル名は、Windows では作れないけど、
Linux では作れてしまうので、それをチェックする目的です
Linuxでも、こういうファイル名は作らない方がよい
Linux では作れてしまうので、それをチェックする目的です
Linuxでも、こういうファイル名は作らない方がよい
552デフォルトの名無しさん
2019/03/08(金) 16:35:28.24ID:VhFMuL/G >>551
死ね
死ね
553デフォルトの名無しさん
2019/03/08(金) 17:12:36.80ID:qP6cz7Aj 時々死ねと言うやついるけど同じやつなのか? いい加減で大人になれ。
554デフォルトの名無しさん
2019/03/08(金) 18:19:49.57ID:aY8HpC9F イ`
555デフォルトの名無しさん
2019/03/08(金) 18:42:00.27ID:eAQ60MzF お題: 1=2を証明しろ
証明出来ないは無しで
証明出来ないは無しで
556デフォルトの名無しさん
2019/03/08(金) 18:49:56.10ID:qP6cz7Aj >>555 それは言語によるんじゃないの? 論理的にはあり得ない。
一般的には、0がFalse でそれ以外がTrueと言うだけでは?
一般的には、0がFalse でそれ以外がTrueと言うだけでは?
557さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/08(金) 18:58:42.07ID:8R2ZaOuQ 整数のオーバーフロー使えば楽に証明できるけど、それはもはや基礎数学の整数じゃないし。
558デフォルトの名無しさん
2019/03/08(金) 19:14:26.55ID:2owB+W9f559デフォルトの名無しさん
2019/03/08(金) 19:17:05.52ID:ru9qZk5w お題:
N人の人物がある部屋に出入りしています。
i番目の人は時刻a[i]に入室し、時刻b[i]に退室します。(1 <= a[i] < b[i])
すべての人は入退室時に以下の通り行動します。
・入室時に、照明がOFFならば照明をONにする。
・退室時に、室内に自分以外に誰もいなければ照明をOFFにする。
最初は照明がOFFになっていて室内には誰もいません。
複数の人物が同時に入退室することはないものとします。
照明がONになっている時間の合計を求めなさい。
a={1,3,5}
b={2,4,6}
=> 3
a={1,2}
b={5,6}
=> 5
a={100,1,2}
b={105,3,4}
=> 8
N人の人物がある部屋に出入りしています。
i番目の人は時刻a[i]に入室し、時刻b[i]に退室します。(1 <= a[i] < b[i])
すべての人は入退室時に以下の通り行動します。
・入室時に、照明がOFFならば照明をONにする。
・退室時に、室内に自分以外に誰もいなければ照明をOFFにする。
最初は照明がOFFになっていて室内には誰もいません。
複数の人物が同時に入退室することはないものとします。
照明がONになっている時間の合計を求めなさい。
a={1,3,5}
b={2,4,6}
=> 3
a={1,2}
b={5,6}
=> 5
a={100,1,2}
b={105,3,4}
=> 8
560デフォルトの名無しさん
2019/03/08(金) 20:42:26.76ID:q/o0JPH8561デフォルトの名無しさん
2019/03/08(金) 20:42:27.70ID:AweN/YnK ★ぁりがdヾ(。・ω・。)ノぁりがd★
562デフォルトの名無しさん
2019/03/08(金) 20:54:42.10ID:2owB+W9f563デフォルトの名無しさん
2019/03/08(金) 21:22:26.01ID:QMcItLTV564デフォルトの名無しさん
2019/03/08(金) 21:55:03.73ID:2owB+W9f565デフォルトの名無しさん
2019/03/09(土) 08:53:56.42ID:irV15TzB566562
2019/03/09(土) 09:29:27.51ID:8CAUa/TL >>559 ruby
すこーしすっきり
f = ->a, b {a.zip(b).map {|c| (c.first...c.last).to_a}.inject(:|).size}
↓
f = ->a, b {a.zip(b).map {|c, d| [*c...d]}.inject(:|).size}
すこーしすっきり
f = ->a, b {a.zip(b).map {|c| (c.first...c.last).to_a}.inject(:|).size}
↓
f = ->a, b {a.zip(b).map {|c, d| [*c...d]}.inject(:|).size}
567547
2019/03/09(土) 10:58:09.02ID:GVs3bbIF >>564
たった2行とは、素晴らしい!
JavaScript(JS)とか、関数型プログラミングだね
f(&:upcase), f(&:chomp)
関数型でも、こういうように呼ぶ関数名が明確にわかる点では、Ruby はJS をしのぐ!
漏れが以下で作ったけど、手続き型の処理で、10行以上も掛かったw
情けない
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/234
たった2行とは、素晴らしい!
JavaScript(JS)とか、関数型プログラミングだね
f(&:upcase), f(&:chomp)
関数型でも、こういうように呼ぶ関数名が明確にわかる点では、Ruby はJS をしのぐ!
漏れが以下で作ったけど、手続き型の処理で、10行以上も掛かったw
情けない
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/234
568デフォルトの名無しさん
2019/03/09(土) 12:51:20.88ID:C6v7oEvs クソみてーな恣意的な記号使いはperl譲りだな
569デフォルトの名無しさん
2019/03/09(土) 13:17:28.26ID:capoU8RA アンダースコア_はprologの時点であるんじゃね
それに記号なら恣意的だろ
それに記号なら恣意的だろ
570デフォルトの名無しさん
2019/03/09(土) 19:25:50.03ID:hBO8FWAE >>544
Haskell
main = mapM_ print $ newxss ++ [zipWith (+) (newxss!!0) (newxss!!1)]
xss = [[1,2,3],[4,5,6]]
newxss = map (\xs -> xs ++ [sum xs]) xss
Haskell
main = mapM_ print $ newxss ++ [zipWith (+) (newxss!!0) (newxss!!1)]
xss = [[1,2,3],[4,5,6]]
newxss = map (\xs -> xs ++ [sum xs]) xss
571デフォルトの名無しさん
2019/03/09(土) 19:49:27.50ID:R3sqYFdd お題:文字列と数値nが与えられるのでn番目の文字とそれ以外の文字を上下にスライドさせて表示する
入力
abc 2
出力
*b*
a*c
入力
abc 2
出力
*b*
a*c
572デフォルトの名無しさん
2019/03/09(土) 19:57:53.65ID:C6v7oEvs お題か出力のどっちかが間違っている
日本語勉強した方がいい
日本語勉強した方がいい
573デフォルトの名無しさん
2019/03/09(土) 19:58:57.39ID:hBO8FWAE >>544,570
任意の数の行列だったか。。。
修正
main = mapM_ print $ newxss ++ [lastxs]
xss = [[1,2,3],[4,5,6],[7,8,9]]
newxss = map (\xs -> xs ++ [sum xs]) xss
lastxs = map sum $ retsu newxss
retsu ([]:xs) = []
retsu xss = map head xss:retsu (map tail xss)
任意の数の行列だったか。。。
修正
main = mapM_ print $ newxss ++ [lastxs]
xss = [[1,2,3],[4,5,6],[7,8,9]]
newxss = map (\xs -> xs ++ [sum xs]) xss
lastxs = map sum $ retsu newxss
retsu ([]:xs) = []
retsu xss = map head xss:retsu (map tail xss)
574デフォルトの名無しさん
2019/03/09(土) 20:10:49.99ID:0OOZ8KrR >>557
オーバーフローは数学ですらないだろ。こっちは数学。
宇宙を支えていたのは、驚異のたし算だった
私がこのたし算を知ったのは20歳のころでした。その衝撃は、私の運命を変えるまでの威力を持っていました。
私の大学は2年生で所属学科を決めるシステムになっており、私はアインシュタインに憧れて物理学科に進もうとしていました。
その私が出会ったのがラマヌジャン(1887-1920)です。彼が描いた2つの絵を見た瞬間、私の中で何かが変わりました。
http://jbpress.ismedia.jp/mwimgs/4/b/400/img_4b7f33022b840f792a0324a10b89a24d369437.jpg
http://jbpress.ismedia.jp/articles/-/46939
オーバーフローは数学ですらないだろ。こっちは数学。
宇宙を支えていたのは、驚異のたし算だった
私がこのたし算を知ったのは20歳のころでした。その衝撃は、私の運命を変えるまでの威力を持っていました。
私の大学は2年生で所属学科を決めるシステムになっており、私はアインシュタインに憧れて物理学科に進もうとしていました。
その私が出会ったのがラマヌジャン(1887-1920)です。彼が描いた2つの絵を見た瞬間、私の中で何かが変わりました。
http://jbpress.ismedia.jp/mwimgs/4/b/400/img_4b7f33022b840f792a0324a10b89a24d369437.jpg
http://jbpress.ismedia.jp/articles/-/46939
576デフォルトの名無しさん
2019/03/09(土) 20:25:11.72ID:hBO8FWAE577デフォルトの名無しさん
2019/03/09(土) 20:38:18.94ID:1xJckQ5D >>544
kotlin
https://paiza.io/projects/cL6xIQA--yDFZ1pjndvzAw
Double型でやったら出力に小数点以下が付加されたが値として間違ってるわけではないのでそのままにする。
kotlin
https://paiza.io/projects/cL6xIQA--yDFZ1pjndvzAw
Double型でやったら出力に小数点以下が付加されたが値として間違ってるわけではないのでそのままにする。
578デフォルトの名無しさん
2019/03/10(日) 01:41:18.58ID:5A3UW8N7 >>544 Python
import numpy as np
# 何行何列でも良い
ar =[
[1,2,3,4],
[4,5,6,7],
[7,8,9,10]
]
#縦に足して行を追加
r=np.vstack((ar,np.sum(ar,axis=0)))
#横に足して列を追加
ans=np.hstack((r,np.sum(r,axis=1).reshape((-1,1))))
print('ans=\n',ans)
'''
ans=
[[ 1 2 3 4 10]
[ 4 5 6 7 22]
[ 7 8 9 10 34]
[12 15 18 21 66]]
'''
import numpy as np
# 何行何列でも良い
ar =[
[1,2,3,4],
[4,5,6,7],
[7,8,9,10]
]
#縦に足して行を追加
r=np.vstack((ar,np.sum(ar,axis=0)))
#横に足して列を追加
ans=np.hstack((r,np.sum(r,axis=1).reshape((-1,1))))
print('ans=\n',ans)
'''
ans=
[[ 1 2 3 4 10]
[ 4 5 6 7 22]
[ 7 8 9 10 34]
[12 15 18 21 66]]
'''
579デフォルトの名無しさん
2019/03/10(日) 03:08:27.84ID:LqrBe0vy >>571 ruby
s = "abc"
n = 2
t = "*" * s.length
t[n - 1] = s[n - 1]
u = s.clone
u[n - 1] = "*"
puts(t, u)
s = "abc"
n = 2
t = "*" * s.length
t[n - 1] = s[n - 1]
u = s.clone
u[n - 1] = "*"
puts(t, u)
580デフォルトの名無しさん
2019/03/10(日) 11:57:40.70ID:e6SI07pl581デフォルトの名無しさん
2019/03/10(日) 13:31:21.17ID:vqbsu7fW >>571
Haskell
main = do
putStrLn $ seclet "abc" (==) 2
putStrLn $ seclet "abc" (/=) 2
seclet lst func num = seclet' lst func 1 num
where
seclet' [] _ _ _ = []
seclet' (x:xs) f n a | f n a = x: seclet' xs f (n + 1) a
seclet' (_:xs) f n a = '*': seclet' xs f (n + 1) a
Haskell
main = do
putStrLn $ seclet "abc" (==) 2
putStrLn $ seclet "abc" (/=) 2
seclet lst func num = seclet' lst func 1 num
where
seclet' [] _ _ _ = []
seclet' (x:xs) f n a | f n a = x: seclet' xs f (n + 1) a
seclet' (_:xs) f n a = '*': seclet' xs f (n + 1) a
582デフォルトの名無しさん
2019/03/10(日) 13:56:33.99ID:vqbsu7fW583デフォルトの名無しさん
2019/03/10(日) 17:19:36.82ID:lsf+n+kn >>571 Perl5
($s, $n)= qw{abc 2};
@s = split'',$s;
@t = qw{*} x @s;
$n--;
($s[$n], $t[$n]) = ($t[$n], $s[$n]);
print @t, "\n", @s, "\n";
実行結果
~ $ perl 13_571.pl
*b*
a*c
($s, $n)= qw{abc 2};
@s = split'',$s;
@t = qw{*} x @s;
$n--;
($s[$n], $t[$n]) = ($t[$n], $s[$n]);
print @t, "\n", @s, "\n";
実行結果
~ $ perl 13_571.pl
*b*
a*c
584デフォルトの名無しさん
2019/03/10(日) 17:47:53.28ID:lsf+n+kn >>544 Perl5
@a = ([1, 2, 3,],
[4, 5, 6]);
use List::Util sum;
push @$_, sum(@$_) for @a;
for $i (0..$#{$a[0]}) {
push @b, sum(map{$a[$_][$i]} 0..$#a)
}
print "@$_\n" for @a;
print "@b\n";
実行結果
~ $ perl 13_544.pl
1 2 3 6
4 5 6 15
5 7 9 21
@a = ([1, 2, 3,],
[4, 5, 6]);
use List::Util sum;
push @$_, sum(@$_) for @a;
for $i (0..$#{$a[0]}) {
push @b, sum(map{$a[$_][$i]} 0..$#a)
}
print "@$_\n" for @a;
print "@b\n";
実行結果
~ $ perl 13_544.pl
1 2 3 6
4 5 6 15
5 7 9 21
585デフォルトの名無しさん
2019/03/10(日) 20:48:09.83ID:z5UigTCL586デフォルトの名無しさん
2019/03/10(日) 21:12:33.92ID:ObNpfzdX ここっておっさんが多いイメージ
587デフォルトの名無しさん
2019/03/10(日) 21:16:39.36ID:KcIurEvX588デフォルトの名無しさん
2019/03/10(日) 21:20:18.73ID:z5UigTCL589デフォルトの名無しさん
2019/03/10(日) 21:46:22.59ID:KcIurEvX590デフォルトの名無しさん
2019/03/10(日) 21:59:51.08ID:5renFNS0591567
2019/03/10(日) 22:01:14.30ID:bEzyp4mc >>588
余談だが、Ruby のString#lines の所を見たら、chomp: true で改行も削除できる!
Rubyは、色々と便利なものを作っている
p ary = <<"EOT".lines( chomp: true ) # 配列
a
b
EOT
#=> ["a", "b"]
余談だが、Ruby のString#lines の所を見たら、chomp: true で改行も削除できる!
Rubyは、色々と便利なものを作っている
p ary = <<"EOT".lines( chomp: true ) # 配列
a
b
EOT
#=> ["a", "b"]
592デフォルトの名無しさん
2019/03/10(日) 22:14:16.51ID:SJp/1k7U593デフォルトの名無しさん
2019/03/10(日) 22:19:23.44ID:KcIurEvX594デフォルトの名無しさん
2019/03/10(日) 22:19:48.10ID:KcIurEvX ごめん間違えた
>>571です
>>571です
595デフォルトの名無しさん
2019/03/10(日) 23:51:29.55ID:THpHptm5596デフォルトの名無しさん
2019/03/11(月) 00:57:47.40ID:HrDBQthw >>571 Squeak/Pharo Smalltalk。nを複数指定可で
| fn |
fn := [:str :ns |
| ans |
ans := (String new: str size withAll: $*), String cr, str.
ns do: [:n | ans swap: n with: n + str size + 1].
ans
].
fn value: 'abc' value: #(2). "=>
'*b*
a*c' "
fn value: 'abcdef' value: #(2 3 5). "=>
'*bc*e*
a**d*f' "
| fn |
fn := [:str :ns |
| ans |
ans := (String new: str size withAll: $*), String cr, str.
ns do: [:n | ans swap: n with: n + str size + 1].
ans
].
fn value: 'abc' value: #(2). "=>
'*b*
a*c' "
fn value: 'abcdef' value: #(2 3 5). "=>
'*bc*e*
a**d*f' "
597デフォルトの名無しさん
2019/03/11(月) 01:39:23.53ID:+Nlo5Elt598デフォルトの名無しさん
2019/03/11(月) 02:41:21.51ID:+Nlo5Elt599デフォルトの名無しさん
2019/03/11(月) 07:59:46.54ID:hFtMxxmn >>547 Perl5
https://ideone.com/Mbj5Hz
push @{$h{lc $_}}, $_ for <STDIN>;
print "@{$_}" for grep{@$_ > 1} values %h;
https://ideone.com/Mbj5Hz
push @{$h{lc $_}}, $_ for <STDIN>;
print "@{$_}" for grep{@$_ > 1} values %h;
600デフォルトの名無しさん
2019/03/11(月) 09:18:51.69ID:D2PSGRy3 >>571 Python
def split3(s,p=1) :
r0= s[:p]+'*'+s[p+1:]
r1= '*'*p + s[p] + '*'*(len(s)-(p+1))
return r0+'\n'+r1
print(split3('abcd',2))
print(split3('abc',0))
'''結果
ab*d
**c*
*bc
a**
'''
def split3(s,p=1) :
r0= s[:p]+'*'+s[p+1:]
r1= '*'*p + s[p] + '*'*(len(s)-(p+1))
return r0+'\n'+r1
print(split3('abcd',2))
print(split3('abc',0))
'''結果
ab*d
**c*
*bc
a**
'''
601デフォルトの名無しさん
2019/03/11(月) 10:48:42.57ID:u4Ymakq9 お題: 下の例のような入力から例の出力のアスキーアートを出力する。それ以外は自由
例:
入力: >>>>>vvvvv<<<<^^^^
出力:
>>>>>
^****v
^****v
^****v
^****v
<<<<v
例:
入力: >>>>>vvvvv<<<<^^^^
出力:
>>>>>
^****v
^****v
^****v
^****v
<<<<v
602デフォルトの名無しさん
2019/03/11(月) 11:00:20.46ID:JmszPBJl これって一歩目はなんでもいいよね
603デフォルトの名無しさん
2019/03/11(月) 11:35:10.21ID:AGCERQh7 >>571 Io
f := method(s,n,
"*" repeated(s size)atPut(n - 1, s at(n - 1)) println
s asMutable atPut(n - 1, 42)println
)
f("abc",2)
実行結果
*b*
a*c
f := method(s,n,
"*" repeated(s size)atPut(n - 1, s at(n - 1)) println
s asMutable atPut(n - 1, 42)println
)
f("abc",2)
実行結果
*b*
a*c
604デフォルトの名無しさん
2019/03/11(月) 11:45:13.16ID:+cahZmCl >>601
それ3番目と4番目は必ず1番目と2番目の長さ-1になってるの?
それ3番目と4番目は必ず1番目と2番目の長さ-1になってるの?
605デフォルトの名無しさん
2019/03/11(月) 11:48:56.08ID:u4Ymakq9606デフォルトの名無しさん
2019/03/11(月) 13:45:52.04ID:+cahZmCl >>605
仕様をきっちり決めないと解釈の違いから沢山の違った回答が出てくる可能性があるのだが、それで良いと。
仕様をきっちり決めないと解釈の違いから沢山の違った回答が出てくる可能性があるのだが、それで良いと。
607デフォルトの名無しさん
2019/03/11(月) 15:42:22.28ID:7+lrfCi1608デフォルトの名無しさん
2019/03/11(月) 16:07:33.07ID:5vEtkzIB >>605 何でこれ以外の形は許さんと言えないんだ?
自由にどうぞなんて問題じゃ無いだろ。
自由にどうぞなんて問題じゃ無いだろ。
609デフォルトの名無しさん
2019/03/11(月) 16:18:14.19ID:ZVqwh3rP >>606,608
こいつらホント掃き溜めのゴミだな
こいつらホント掃き溜めのゴミだな
610デフォルトの名無しさん
2019/03/11(月) 16:19:55.06ID:+cahZmCl611デフォルトの名無しさん
2019/03/11(月) 16:25:40.59ID:+cahZmCl612デフォルトの名無しさん
2019/03/11(月) 16:58:12.79ID:PGatxMde >>601
出力おかしくねぇ?最初と最後の行は5列だけど
間の行ぜんぶ6列になってるぞ?
出力:
>>>>>
^****v
^****v
^****v
^****v
<<<<v
こうじゃね?
>>>>>
^***v
^***v
^***v
^***v
<<<<v
出力おかしくねぇ?最初と最後の行は5列だけど
間の行ぜんぶ6列になってるぞ?
出力:
>>>>>
^****v
^****v
^****v
^****v
<<<<v
こうじゃね?
>>>>>
^***v
^***v
^***v
^***v
<<<<v
613デフォルトの名無しさん
2019/03/11(月) 17:14:58.23ID:+cahZmCl ま、いいや。よくわかんない問題は放っておこう。
614デフォルトの名無しさん
2019/03/11(月) 19:21:39.70ID:PGatxMde >>601 javascript
長くなっちった
https://ideone.com/vzncKq
入力: <<<<^^^^>>>>>vv<<<<<<<<<<<vvv>>>^^^^^^^>>>>>>>>>>vvvvvv
出力:
***^>>>>>>>>>>
***^*********v
***^**^>>>>>*v
***^**^****v*v
<<<^<<<<<<<v*v
v**^**^******v
v**^**<<<<***v
v>>>**********
長くなっちった
https://ideone.com/vzncKq
入力: <<<<^^^^>>>>>vv<<<<<<<<<<<vvv>>>^^^^^^^>>>>>>>>>>vvvvvv
出力:
***^>>>>>>>>>>
***^*********v
***^**^>>>>>*v
***^**^****v*v
<<<^<<<<<<<v*v
v**^**^******v
v**^**<<<<***v
v>>>**********
615デフォルトの名無しさん
2019/03/11(月) 19:36:33.05ID:/Vx80pKW お題
m×nマスのチェス盤を考える。
1つのナイトが最も左上のマスにあり、そこから任意の回数動かすことができる。
ナイトが訪れることのできるマスの個数を求めよ。
m=1, n=1
=> 1
m=3, n=3
=> 8 (真ん中のマスを訪れることができない)
m=4, n=4
=> 16
m×nマスのチェス盤を考える。
1つのナイトが最も左上のマスにあり、そこから任意の回数動かすことができる。
ナイトが訪れることのできるマスの個数を求めよ。
m=1, n=1
=> 1
m=3, n=3
=> 8 (真ん中のマスを訪れることができない)
m=4, n=4
=> 16
616デフォルトの名無しさん
2019/03/11(月) 19:36:35.88ID:DXpwYxNa617デフォルトの名無しさん
2019/03/11(月) 20:02:17.74ID:JmszPBJl いや、その通りに歩くんだろ
618デフォルトの名無しさん
2019/03/11(月) 20:07:58.88ID:5vEtkzIB 出題通り以外の回答はやめてほしいな。
それ以外の回答をする場合は、解説文も日本語で書いてくれよ。
不慣れなプログラムもあることだろうし、長いプログラムなんて見る気にもならないし、プログラムを見ればわかるというのは無し。
それ以外の回答をする場合は、解説文も日本語で書いてくれよ。
不慣れなプログラムもあることだろうし、長いプログラムなんて見る気にもならないし、プログラムを見ればわかるというのは無し。
619デフォルトの名無しさん
2019/03/11(月) 21:26:59.93ID:ALw/TkKR620デフォルトの名無しさん
2019/03/11(月) 21:31:45.37ID:1OBeL2+Y621デフォルトの名無しさん
2019/03/11(月) 22:12:51.52ID:+V1dboU8 >>>v<^^>>
の場合
*^>>
>^>
*<v
の場合
*^>>
>^>
*<v
622デフォルトの名無しさん
2019/03/11(月) 22:40:32.65ID:6pdTomDX >>571 octave 複数列指定可能版
https://ideone.com/UqKcNb
h = @(m, n) cell2mat(arrayfun(@(c, i) {['*'; c] [c; '*']}(1 + (i == n)), m, 1:numel(m)));
↓
h = @(m, n) cell2mat(arrayfun(@(c, i) {['*'; c] [c; '*']}(1 + any(i == n)), m, 1:numel(m)));
https://ideone.com/UqKcNb
h = @(m, n) cell2mat(arrayfun(@(c, i) {['*'; c] [c; '*']}(1 + (i == n)), m, 1:numel(m)));
↓
h = @(m, n) cell2mat(arrayfun(@(c, i) {['*'; c] [c; '*']}(1 + any(i == n)), m, 1:numel(m)));
623デフォルトの名無しさん
2019/03/11(月) 23:02:42.18ID:GdRfR4uu 以下の整形式の.ini ファイルから、すべての値を取得して、
「セクション名 : キー名 : 値」で表示する
[sec1]
key1=val1
[sec2]
key2=val2
「セクション名 : キー名 : 値」で表示する
[sec1]
key1=val1
[sec2]
key2=val2
624デフォルトの名無しさん
2019/03/11(月) 23:51:36.77ID:/Vx80pKW625デフォルトの名無しさん
2019/03/12(火) 00:26:56.22ID:XpXqAgCh >>623 Perl5
while (<DATA>) {
$s = $1 if /\[(\w+)\]/;
print "$s:$k:$v\n"
if ($k, $v) = /(\w+)=(\w+)/;
}
__DATA__
[sec1]
key1=val1
[sec2]
key2=val2
実行結果
~ $ perl 13_623.pl
sec1:key1:val1
sec2:key2:val2
while (<DATA>) {
$s = $1 if /\[(\w+)\]/;
print "$s:$k:$v\n"
if ($k, $v) = /(\w+)=(\w+)/;
}
__DATA__
[sec1]
key1=val1
[sec2]
key2=val2
実行結果
~ $ perl 13_623.pl
sec1:key1:val1
sec2:key2:val2
626デフォルトの名無しさん
2019/03/12(火) 00:37:42.27ID:XpXqAgCh >>625 も少し簡潔に書けるんだった…
while (<DATA>) {
$s = $1 if /\[(\w+)\]/;
print "$s:$1:$2\n" if /(\w+)=(\w+)/;
}
__DATA__
[sec1]
key1=val1
[sec2]
key2=val2
while (<DATA>) {
$s = $1 if /\[(\w+)\]/;
print "$s:$1:$2\n" if /(\w+)=(\w+)/;
}
__DATA__
[sec1]
key1=val1
[sec2]
key2=val2
627デフォルトの名無しさん
2019/03/12(火) 01:38:34.08ID:nghHbW0D >>623 javascript(es2018 named capture groups)
`
[sec1]
key1=val1
[sec2]
key2=val2
`.replace(/\[(?<section>.+)\]\n(?<key>.+)=(?<value>.+)\n/g, '$<section>:$<key>:$<value>').trim();
結果:
sec1:key1:val1
sec2:key2:val2
`
[sec1]
key1=val1
[sec2]
key2=val2
`.replace(/\[(?<section>.+)\]\n(?<key>.+)=(?<value>.+)\n/g, '$<section>:$<key>:$<value>').trim();
結果:
sec1:key1:val1
sec2:key2:val2
628デフォルトの名無しさん
2019/03/12(火) 05:56:44.85ID:KPetEW8/ >>547
Haskell
import Data.Char
main = (mapM_ print.filename) ["a","aB.txt","Ab.txt","xx","aBc.txt","cd","cD","CD","ab.txt","z"]
filename [] = []
filename (xs:xss)| length a > 1 = a:filename b
where
a = func (==)
b = func (/=)
func f = filter (f (map toUpper xs).map toUpper) (xs:xss)
filename (_:xss) = filename xss
Haskell
import Data.Char
main = (mapM_ print.filename) ["a","aB.txt","Ab.txt","xx","aBc.txt","cd","cD","CD","ab.txt","z"]
filename [] = []
filename (xs:xss)| length a > 1 = a:filename b
where
a = func (==)
b = func (/=)
func f = filter (f (map toUpper xs).map toUpper) (xs:xss)
filename (_:xss) = filename xss
629デフォルトの名無しさん
2019/03/12(火) 17:03:25.03ID:+VdOvnK/ >>615
0 <= m,n <=10億 と仮定して
int64_t cal(int m, int n){
if( m>n ) swap(m, n);
if( m<=1 ) return m;
if( m==2 ) return (n + 1) / 2;
if( n==3 && m==3) return 8;
return (int64_t)n * m;
}
0 <= m,n <=10億 と仮定して
int64_t cal(int m, int n){
if( m>n ) swap(m, n);
if( m<=1 ) return m;
if( m==2 ) return (n + 1) / 2;
if( n==3 && m==3) return 8;
return (int64_t)n * m;
}
630デフォルトの名無しさん
2019/03/12(火) 18:21:10.69ID:MLSq27aG631デフォルトの名無しさん
2019/03/12(火) 18:30:10.82ID:M/w6PjEF >>619
出題通りなのかどうかがわからんのだが。どう解釈したら出題通りとなるのか?
出題通りなのかどうかがわからんのだが。どう解釈したら出題通りとなるのか?
632デフォルトの名無しさん
2019/03/12(火) 19:26:28.38ID:mUEXbKn8 お題
数列a[i]を考える。
a[0] = p
a[i+1] = q * a[i] + r
[入力]
p q r n
(p,q,r,nは整数)
(0≦p,q,r≦99)
(0≦n≦10^10)
[出力]
a[n] mod 13 を求めよ
1 2 0 8
=> 9 (2^8 mod 13)
1 0 99 0
=> 1
1 2 3 2
=> 0 (a[0]=1, a[1]=2*1+3=5, a[2]=2*5+3=13)
1 3 5 10000000000
=> ?
数列a[i]を考える。
a[0] = p
a[i+1] = q * a[i] + r
[入力]
p q r n
(p,q,r,nは整数)
(0≦p,q,r≦99)
(0≦n≦10^10)
[出力]
a[n] mod 13 を求めよ
1 2 0 8
=> 9 (2^8 mod 13)
1 0 99 0
=> 1
1 2 3 2
=> 0 (a[0]=1, a[1]=2*1+3=5, a[2]=2*5+3=13)
1 3 5 10000000000
=> ?
633デフォルトの名無しさん
2019/03/12(火) 20:52:19.49ID:2hm/Dong つまらん
634デフォルトの名無しさん
2019/03/12(火) 21:03:21.90ID:KPetEW8/635デフォルトの名無しさん
2019/03/12(火) 21:07:56.58ID:KPetEW8/ >>632
マシンパワーがあれば式を入れればいいだけってのはね。。。
解くのに頭使う。解いてみたら案外簡単(アルゴリズムが浮かぶのがキモ)。あえて難しくて最適化の道がある。とかが望ましい。
いあ、無茶振りだろうから、どれか2つ満たせればおkだが。
マシンパワーがあれば式を入れればいいだけってのはね。。。
解くのに頭使う。解いてみたら案外簡単(アルゴリズムが浮かぶのがキモ)。あえて難しくて最適化の道がある。とかが望ましい。
いあ、無茶振りだろうから、どれか2つ満たせればおkだが。
636デフォルトの名無しさん
2019/03/12(火) 21:12:06.00ID:KPetEW8/ 例えば[[1,2,3],[4,5,6],[7,8,9]]みたいな任意のn*nなリスト(または配列)を非破壊的に作れ。とか。
637デフォルトの名無しさん
2019/03/12(火) 21:43:25.40ID:rf03pH6k >>636
一般的なミューテートするカウンタも使っちゃダメってことかな?
一般的なミューテートするカウンタも使っちゃダメってことかな?
638623
2019/03/12(火) 22:49:08.83ID:oX4bYoPv639デフォルトの名無しさん
2019/03/12(火) 23:03:23.82ID:oX4bYoPv お題
現行規格のISBN (ISBN-13) のcheck digit は、JANコードと同じく、
「モジュラス10 ウェイト3・1(モジュラス10 ウェイト3)」という計算法にて算出される
一番右側の? の所のcheck digitを除いて、数字以外は無視して、
一番左側の桁から順に、1、3、1、3…を掛けて、それらの和を取る。
和を10で割って出た余りを、10から引く。
ただし、10で割って出た余りの下1桁が0の場合は、check digitを0とする
ISBN 978-4-10-109205-?
9×1 + 7×3 + 8×1 + 4×3 + 1×1 + 0×3 + 1×1 + 0×3 + 9×1 + 2×3 + 0×1 + 5×3
= 9 + 21 + 8 + 12 + 1 + 0 + 1 + 0 + 9 + 6 + 0 + 15 = 82
82 ÷ 10 = 8 あまり 2
10 - 2 = 8
幾つかのISBN-13 で、計算してみて!
現行規格のISBN (ISBN-13) のcheck digit は、JANコードと同じく、
「モジュラス10 ウェイト3・1(モジュラス10 ウェイト3)」という計算法にて算出される
一番右側の? の所のcheck digitを除いて、数字以外は無視して、
一番左側の桁から順に、1、3、1、3…を掛けて、それらの和を取る。
和を10で割って出た余りを、10から引く。
ただし、10で割って出た余りの下1桁が0の場合は、check digitを0とする
ISBN 978-4-10-109205-?
9×1 + 7×3 + 8×1 + 4×3 + 1×1 + 0×3 + 1×1 + 0×3 + 9×1 + 2×3 + 0×1 + 5×3
= 9 + 21 + 8 + 12 + 1 + 0 + 1 + 0 + 9 + 6 + 0 + 15 = 82
82 ÷ 10 = 8 あまり 2
10 - 2 = 8
幾つかのISBN-13 で、計算してみて!
640デフォルトの名無しさん
2019/03/12(火) 23:07:31.93ID:+VdOvnK/ >>632
https://ideone.com/Y4N5oM c++
小さい数値は力技(bf2)で確認してみたが……
https://ideone.com/Y4N5oM c++
小さい数値は力技(bf2)で確認してみたが……
641デフォルトの名無しさん
2019/03/12(火) 23:27:43.44ID:LDiZRGdZ >>601 Common Lisp
>>620のリファクタリング
ついでに * を空白に、開始地点を A、終了地点を Z にしてみた
https://ideone.com/zMHal6
Python
https://pastebin.com/NAGHLtcu
実行結果 https://webmshare.com/Ma3gZ
>>620のリファクタリング
ついでに * を空白に、開始地点を A、終了地点を Z にしてみた
https://ideone.com/zMHal6
Python
https://pastebin.com/NAGHLtcu
実行結果 https://webmshare.com/Ma3gZ
642デフォルトの名無しさん
2019/03/12(火) 23:42:34.93ID:2FAQzMGK >>632 C
https://ideone.com/m3vejt
エクセルとかで実際に数列を計算してみると、長さ12(剰余の数-1)以下の周期になるっぽいのでそれで求められる。
普通に計算するとq * a[i] + r はどんどん大きくなるけど、
毎回 (q * a[i] + r) mod 13としても、計算に影響はないようなので、オーバーフローもせずに計算できる。
だたし、数学的に正しいか保証しかねるが。
https://ideone.com/m3vejt
エクセルとかで実際に数列を計算してみると、長さ12(剰余の数-1)以下の周期になるっぽいのでそれで求められる。
普通に計算するとq * a[i] + r はどんどん大きくなるけど、
毎回 (q * a[i] + r) mod 13としても、計算に影響はないようなので、オーバーフローもせずに計算できる。
だたし、数学的に正しいか保証しかねるが。
643デフォルトの名無しさん
2019/03/13(水) 00:12:22.73ID:rGhbMCbu644デフォルトの名無しさん
2019/03/13(水) 00:29:04.16ID:Eq+ygVqk645デフォルトの名無しさん
2019/03/13(水) 00:51:17.73ID:vPzmbHWs646デフォルトの名無しさん
2019/03/13(水) 00:54:41.38ID:bUFEpZHr >>638
> セクション名・キー名・値は、特定の文字列ではありません!
> 特別な記号以外の、任意の文字列です
えぇ…
入力:
[あああ]
いいい=ううう
[えええ]
おおお=かかか
出力:
あああ:いいい:ううう
えええ:おおお:かかか
少なくとも任意の文字列には対応してるじゃん。不当指摘だ!
> セクション名・キー名・値は、特定の文字列ではありません!
> 特別な記号以外の、任意の文字列です
えぇ…
入力:
[あああ]
いいい=ううう
[えええ]
おおお=かかか
出力:
あああ:いいい:ううう
えええ:おおお:かかか
少なくとも任意の文字列には対応してるじゃん。不当指摘だ!
647デフォルトの名無しさん
2019/03/13(水) 01:18:15.16ID:FktqEJYT >>645 javascript
const seqSqArr = n => Array.from({length: n}).map((v, i) => Array.from({length: n}, (v, j) => n * i + j + 1));
console.log(seqSqArr(3));
//=> [[1,2,3],[4,5,6],[7,8,9]]
console.log(seqSqArr(7));
//=> [[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],[22,23,24,25,26,27,28],[29,30,31,32,33,34,35],[36,37,38,39,40,41,42],[43,44,45,46,47,48,49]]
const seqSqArr = n => Array.from({length: n}).map((v, i) => Array.from({length: n}, (v, j) => n * i + j + 1));
console.log(seqSqArr(3));
//=> [[1,2,3],[4,5,6],[7,8,9]]
console.log(seqSqArr(7));
//=> [[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],[22,23,24,25,26,27,28],[29,30,31,32,33,34,35],[36,37,38,39,40,41,42],[43,44,45,46,47,48,49]]
649デフォルトの名無しさん
2019/03/13(水) 05:11:02.02ID:36vLAC/n >>639 J
f =: 3 : 0
10 | 10 - 10 | +/ (12 $ 1 3) * "."0 }: y -. '-'
)
f '978-4-10-109205-8'
8
f '978-4873115870'
0
f =: 3 : 0
10 | 10 - 10 | +/ (12 $ 1 3) * "."0 }: y -. '-'
)
f '978-4-10-109205-8'
8
f '978-4873115870'
0
650デフォルトの名無しさん
2019/03/13(水) 06:35:32.94ID:vPzmbHWs >>636,637,645,647
Haskell
main = ps 3 >> putStrLn "" >> ps 7
where ps = print.seqSqList
seqSqList n = (take n.iterate (map (+ n))) [1..n]
out:
[[1,2,3],[4,5,6],[7,8,9]]
[[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],[22,23,24,25,26,27,28],[29,30,31,32,33,34,35],[36,37,38,39,40,41,42],[43,44,45,46,47,48,49]]
Haskell
main = ps 3 >> putStrLn "" >> ps 7
where ps = print.seqSqList
seqSqList n = (take n.iterate (map (+ n))) [1..n]
out:
[[1,2,3],[4,5,6],[7,8,9]]
[[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],[22,23,24,25,26,27,28],[29,30,31,32,33,34,35],[36,37,38,39,40,41,42],[43,44,45,46,47,48,49]]
651デフォルトの名無しさん
2019/03/13(水) 20:01:04.25ID:loIc2/nm652デフォルトの名無しさん
2019/03/13(水) 22:22:09.99ID:H95Q/dPG こうかな?
;; Common Lisp
(defun seq-sq-list (n)
(labels ((sub (i r)
(if (zerop i)
r
(sub (1- i) (if (zerop (mod i n))
(cons (list i) r)
(cons (cons i (car r)) (cdr r)))))))
(sub (* n n) nil)))
;; Common Lisp
(defun seq-sq-list (n)
(labels ((sub (i r)
(if (zerop i)
r
(sub (1- i) (if (zerop (mod i n))
(cons (list i) r)
(cons (cons i (car r)) (cdr r)))))))
(sub (* n n) nil)))
653さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/13(水) 23:29:50.59ID:KwyST1w4 お題: ピリオド区切りの二つのバージョン番号を比較し、大小関係を判定した結果を-1, 0, 1のいずれとして返せ。
0.1.2 > 0.0: 1
1.2.3 < 1.3: -1
0.0.0 == 0.0: 0
0.1.2 > 0.0: 1
1.2.3 < 1.3: -1
0.0.0 == 0.0: 0
654デフォルトの名無しさん
2019/03/14(木) 00:08:08.19ID:TPG8S2ma >>653
手抜きHaskell
main = mapM_ pc $ [("0.1.2", "0.0"), ("1.2.3", "1.3"), ("0.0.0", "0.0")]
where pc = print.uncurry mycompare
mycompare "0.0.0" "0.0" = 0
mycompare "0.0" "0.0.0" = 0
mycompare xs ys |xs `compare` ys == EQ = 0
|xs `compare` ys == GT = 1
|xs `compare` ys == LT = -1
手抜きHaskell
main = mapM_ pc $ [("0.1.2", "0.0"), ("1.2.3", "1.3"), ("0.0.0", "0.0")]
where pc = print.uncurry mycompare
mycompare "0.0.0" "0.0" = 0
mycompare "0.0" "0.0.0" = 0
mycompare xs ys |xs `compare` ys == EQ = 0
|xs `compare` ys == GT = 1
|xs `compare` ys == LT = -1
655デフォルトの名無しさん
2019/03/14(木) 01:08:57.36ID:vRIsxo2e >>601 Perl5
$s = '>>>>>vvvvv<<<<^^^^';
($i, $y) = (0, 0);
for (split'',$s) {
$i++ if />/;
$i-- if /</;
$j++ if /v/;
$j-- if /\^/;
push @t, [$i, $j, $_];
}
use List::Util qw{min max};
($i, $j) = (min(map{$$_[0]} @t), min(map{$$_[1]} @t));
$$_[0] -= $i, $$_[1] -= $j for @t;
($i, $j) = (max(map{$$_[0]} @t), max(map{$$_[1]} @t));
push @m, [('*')x($i + 1)] for 0..$j;
$m[$$_[1]][$$_[0]] = $$_[2] for @t;
use feature say;
say @$_ for @m;
実行結果
~ $ perl 13_601.pl
>>>>>
^***v
^***v
^***v
^***v
<<<<v
$s = '>>>>>vvvvv<<<<^^^^';
($i, $y) = (0, 0);
for (split'',$s) {
$i++ if />/;
$i-- if /</;
$j++ if /v/;
$j-- if /\^/;
push @t, [$i, $j, $_];
}
use List::Util qw{min max};
($i, $j) = (min(map{$$_[0]} @t), min(map{$$_[1]} @t));
$$_[0] -= $i, $$_[1] -= $j for @t;
($i, $j) = (max(map{$$_[0]} @t), max(map{$$_[1]} @t));
push @m, [('*')x($i + 1)] for 0..$j;
$m[$$_[1]][$$_[0]] = $$_[2] for @t;
use feature say;
say @$_ for @m;
実行結果
~ $ perl 13_601.pl
>>>>>
^***v
^***v
^***v
^***v
<<<<v
656デフォルトの名無しさん
2019/03/14(木) 01:16:23.50ID:vRIsxo2e >>638 Perl5
$r = qr/[^][=]/;
while (<DATA>) {
chomp;
$s = $1 if /\[($r+)\]/;
print "$s:$1:$2\n" if /($r+)=($r+)/;
}
__DATA__
[sec1]
key1=val1
[sec2]
key2=val2
実行結果
~ $ perl 13_638.pl
sec1:key1:val1
sec2:key2:val2
$r = qr/[^][=]/;
while (<DATA>) {
chomp;
$s = $1 if /\[($r+)\]/;
print "$s:$1:$2\n" if /($r+)=($r+)/;
}
__DATA__
[sec1]
key1=val1
[sec2]
key2=val2
実行結果
~ $ perl 13_638.pl
sec1:key1:val1
sec2:key2:val2
657デフォルトの名無しさん
2019/03/14(木) 06:43:00.64ID:3EvgP48J >>653
0.0.1 > 0.0 でいいのか?
0.0.1 > 0.0 でいいのか?
659デフォルトの名無しさん
2019/03/14(木) 10:42:18.54ID:YiVNNcx0 >>653 javascript
const vComp = (a, b) => {
const [semA, semB] = [a, b].map(v => {
const {major, minor = 0, patch = 0} = /(?<major>\d+)(\.(?<minor>\d+)(\.(?<patch>\d+))?)?/.exec(v).groups;
return {major, minor, patch};
});
const majorComp = semA.major - semB.major;
if (majorComp) return Math.sign(majorComp);
const minorComp = semA.minor - semB.minor;
if (minorComp) return Math.sign(minorComp);
const patchComp = semA.patch - semB.patch;
return Math.sign(patchComp);
};
console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
結果:
1
-1
0
(おまけ)ソート:
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
結果:
["0.0", "0.0.0", "0.0", "0.1.2", "1.2.3", "1.3"]
const vComp = (a, b) => {
const [semA, semB] = [a, b].map(v => {
const {major, minor = 0, patch = 0} = /(?<major>\d+)(\.(?<minor>\d+)(\.(?<patch>\d+))?)?/.exec(v).groups;
return {major, minor, patch};
});
const majorComp = semA.major - semB.major;
if (majorComp) return Math.sign(majorComp);
const minorComp = semA.minor - semB.minor;
if (minorComp) return Math.sign(minorComp);
const patchComp = semA.patch - semB.patch;
return Math.sign(patchComp);
};
console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
結果:
1
-1
0
(おまけ)ソート:
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
結果:
["0.0", "0.0.0", "0.0", "0.1.2", "1.2.3", "1.3"]
660さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/14(木) 10:59:38.01ID:PwP2txgq661デフォルトの名無しさん
2019/03/14(木) 11:23:19.67ID:YiVNNcx0 ごめん勝手にsemverかと思い込んでた
662さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/14(木) 11:35:04.68ID:1+g2CCuw LaTeXのバージョンシステムはちょっと特殊で、円周率に近付くようになってる。この場合は文字列として比較しないといけない。
一般的なバージョンシステムはドットで区切られた整数を先頭から順に互いに比較して大小関係を定義する。
まれにアルファとかベータとか「限定版」とか訳のわからない文字列が付くことがあるが、これは常識がなければ大小関係を機械的に判定するのは難しい。
一般的なバージョンシステムはドットで区切られた整数を先頭から順に互いに比較して大小関係を定義する。
まれにアルファとかベータとか「限定版」とか訳のわからない文字列が付くことがあるが、これは常識がなければ大小関係を機械的に判定するのは難しい。
663さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/14(木) 11:47:43.06ID:1+g2CCuw 一番確実なバージョン大小判定方法は、リリースごとに年月日とバージョン情報を記録しておくことだ。
664デフォルトの名無しさん
2019/03/14(木) 13:52:35.97ID:uKED8jms665デフォルトの名無しさん
2019/03/14(木) 15:56:35.04ID:TPG8S2ma >>547
Haskell
内包表記の方が何をやってるか分かり易いと気付いて書き換えた。
import Data.Char
main = (mapM_ print.filename) ["aB.txt","Ab.txt","xx","cd","cD","CD","ab.txt"]
filename [] = []
filename (xs:xss)| length a > 1 = a:filename b
where
a = func (==)
b = func (/=)
func f = [xs' | xs' <- (xs:xss), map toLower xs `f` map toLower xs']
filename (_:xss) = filename xss
Haskell
内包表記の方が何をやってるか分かり易いと気付いて書き換えた。
import Data.Char
main = (mapM_ print.filename) ["aB.txt","Ab.txt","xx","cd","cD","CD","ab.txt"]
filename [] = []
filename (xs:xss)| length a > 1 = a:filename b
where
a = func (==)
b = func (/=)
func f = [xs' | xs' <- (xs:xss), map toLower xs `f` map toLower xs']
filename (_:xss) = filename xss
666デフォルトの名無しさん
2019/03/14(木) 18:00:35.68ID:38t26SL0 お題: 何も出力しないプログラム自身のコードをソートするとhello worldを出力するプログラムを作れ
667デフォルトの名無しさん
2019/03/14(木) 18:07:12.84ID:YPV07ntD >>653 # Python
def cmp(v0,v1):
if v0==v1: return 0
else: return 1 if (v0 > v1) else -1
print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.3','1.3')
)
# 1 1 0 -1
def cmp(v0,v1):
if v0==v1: return 0
else: return 1 if (v0 > v1) else -1
print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.3','1.3')
)
# 1 1 0 -1
668さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/14(木) 18:11:49.83ID:1+g2CCuw >>667
バージョン番号の各整数の数字は2個以上になることがある。'10.0'と'9.1'を比較せよ。
バージョン番号の各整数の数字は2個以上になることがある。'10.0'と'9.1'を比較せよ。
669デフォルトの名無しさん
2019/03/14(木) 18:14:06.49ID:YPV07ntD670デフォルトの名無しさん
2019/03/14(木) 18:32:38.72ID:YPV07ntD >>667 訂正 Python
def cmp(v0,v1):
v0 = list( map(int , v0.split('.') ) )
v1 = list( map(int , v1.split('.') ) )
if v0==v1: return 0
else: return 1 if (v0 > v1) else -1
print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('1.1.0', '1.1') ,
cmp('10.0','9.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.3','1.3') ,
cmp('1.1', '1.1.0') ,
)
# 1 1 1 1 0 -1 -1
def cmp(v0,v1):
v0 = list( map(int , v0.split('.') ) )
v1 = list( map(int , v1.split('.') ) )
if v0==v1: return 0
else: return 1 if (v0 > v1) else -1
print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('1.1.0', '1.1') ,
cmp('10.0','9.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.3','1.3') ,
cmp('1.1', '1.1.0') ,
)
# 1 1 1 1 0 -1 -1
671さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/14(木) 18:44:00.25ID:1+g2CCuw >>670
残念だが不正解。比較できる桁がなければゼロと見なす、すなわち、2.0.0は2に等しいと見なす決まりがある。
残念だが不正解。比較できる桁がなければゼロと見なす、すなわち、2.0.0は2に等しいと見なす決まりがある。
672デフォルトの名無しさん
2019/03/14(木) 18:50:17.55ID:dvZ8z+Z0673デフォルトの名無しさん
2019/03/14(木) 18:58:38.18ID:dvZ8z+Z0674さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/14(木) 18:59:00.09ID:1+g2CCuw ソフトウェア開発におけるバージョン管理は、製造メーカーにおける型番管理と同じくらい重要である。
検査逃れのために型番や履歴をごまかしたり、型番管理がなっていないメーカーはメーカー失格である。
インターネット全盛の現在では、型番はウェブ検索しやすいものでなければ、国際競争に負けてしまう。
検査逃れのために型番や履歴をごまかしたり、型番管理がなっていないメーカーはメーカー失格である。
インターネット全盛の現在では、型番はウェブ検索しやすいものでなければ、国際競争に負けてしまう。
675デフォルトの名無しさん
2019/03/14(木) 18:59:16.90ID:38t26SL0 お題: 3つの数の最小値を1回の分岐で決めろ!
676デフォルトの名無しさん
2019/03/14(木) 19:55:29.27ID:YiVNNcx0 >>660 javascript
const vComp = (a, b) => {
const verA = a.split`.`;
const verB = b.split`.`;
const shorter = verA.length - verB.length < 0 ? verA : verB;
const cmps = shorter.map((v, i) => Math.sign(verA[i] - verB[i]));
return cmps.reduce((acc, v, i) => Math.sign(acc + v * 2 ** (shorter.length - i)), 0);
};
console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
結果:
1
-1
0
(おまけ)ソート:
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
結果:
["0.0", "0.0.0", "0.0", "0.1.2", "1.2.3", "1.3"]
const vComp = (a, b) => {
const verA = a.split`.`;
const verB = b.split`.`;
const shorter = verA.length - verB.length < 0 ? verA : verB;
const cmps = shorter.map((v, i) => Math.sign(verA[i] - verB[i]));
return cmps.reduce((acc, v, i) => Math.sign(acc + v * 2 ** (shorter.length - i)), 0);
};
console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
結果:
1
-1
0
(おまけ)ソート:
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
結果:
["0.0", "0.0.0", "0.0", "0.1.2", "1.2.3", "1.3"]
677デフォルトの名無しさん
2019/03/14(木) 19:59:51.70ID:YiVNNcx0 あっ間違えた
家帰ってから直す
家帰ってから直す
678デフォルトの名無しさん
2019/03/14(木) 20:14:25.92ID:vvVzV1YI >>671 どこにそんな決まりがあるの?
普通 ver.1 が出て、その後ver.1.0 が出れば、ver.1.0 の方が新しいのは明らかだろ。
総称として、ver.1という場合もあるが、その場合はver.1.9も含まれる。
普通 ver.1 が出て、その後ver.1.0 が出れば、ver.1.0 の方が新しいのは明らかだろ。
総称として、ver.1という場合もあるが、その場合はver.1.9も含まれる。
679デフォルトの名無しさん
2019/03/14(木) 20:14:59.41ID:ko69m/9G 見つけた
RPM::VersionSort - RPM version sorting algorithm, in perl XS - metacpan.org
https://metacpan.org/pod/RPM::VersionSort
RPM::VersionSort - RPM version sorting algorithm, in perl XS - metacpan.org
https://metacpan.org/pod/RPM::VersionSort
680デフォルトの名無しさん
2019/03/14(木) 20:16:24.45ID:vvVzV1YI とにかくバージョン番号が異なれば別のバージョンとみなすのが普通だろ。
同じと思う方がおかしい。
同じと思う方がおかしい。
681デフォルトの名無しさん
2019/03/14(木) 20:16:49.16ID:0tbf1s3D お題:“木”という漢字を使って以下のようなフラクタル図形を描け
n=0
木
n=1
-木
木木
n=2
---木
--木木
-木--木
木木木木
n=3
-------木
------木木
-----木--木
----木木木木
---木------木
--木木----木木
-木--木--木--木
木木木木木木木木
※ハイフンはスペースだと思ってください
n=0
木
n=1
-木
木木
n=2
---木
--木木
-木--木
木木木木
n=3
-------木
------木木
-----木--木
----木木木木
---木------木
--木木----木木
-木--木--木--木
木木木木木木木木
※ハイフンはスペースだと思ってください
682さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/14(木) 20:26:23.57ID:1+g2CCuw >>678
Win32の固定幅のバージョン情報では4つの整数をドットで区切ったものを使用する。VerInstallFile関数はバージョン番号を比較する。0.0と0.0.0.0が違うバージョンだとアウトだ。
Win32の固定幅のバージョン情報では4つの整数をドットで区切ったものを使用する。VerInstallFile関数はバージョン番号を比較する。0.0と0.0.0.0が違うバージョンだとアウトだ。
683デフォルトの名無しさん
2019/03/14(木) 20:45:22.76ID:vvVzV1YI >>682 そんなローカルールなんて知るかよ。 もしそういう意図なら問題を訂正しろよ。 いちいち誰かのいちゃもんに付き合ってる暇はない。
684デフォルトの名無しさん
2019/03/14(木) 20:52:19.11ID:YiVNNcx0 >>660 の修正
const vComp = (a, b) => {
let verA = a.split `.`;
let verB = b.split `.`;
const len = Math.max(verA.length, verB.length);
verA = [...verA, ...'0'.repeat(len - verA.length)];
verB = [...verB, ...'0'.repeat(len - verB.length)];
const cmps = verA.map((v, i) => Math.sign(verA[i] - verB[i]));
return Math.sign(cmps.reduce((acc, v, i) => acc + v * 2 ** (len - i)), 0);
};
console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
//いいかげん結果省略
const vComp = (a, b) => {
let verA = a.split `.`;
let verB = b.split `.`;
const len = Math.max(verA.length, verB.length);
verA = [...verA, ...'0'.repeat(len - verA.length)];
verB = [...verB, ...'0'.repeat(len - verB.length)];
const cmps = verA.map((v, i) => Math.sign(verA[i] - verB[i]));
return Math.sign(cmps.reduce((acc, v, i) => acc + v * 2 ** (len - i)), 0);
};
console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
//いいかげん結果省略
685デフォルトの名無しさん
2019/03/14(木) 22:10:39.99ID:8oAE3RnG >>683
例に0.0.0と0.0が等しいって書いてあるんだが
例に0.0.0と0.0が等しいって書いてあるんだが
686デフォルトの名無しさん
2019/03/14(木) 23:16:14.88ID:3EvgP48J687デフォルトの名無しさん
2019/03/14(木) 23:41:35.78ID:nI5lwjDU >>653 Squeak Smalltalk
| fn |
fn := [:strs | (strs collect: [:str | (str subStrings: '.') polynomialEval: 1/1e4]) reduce: #<=>].
fn value: #('0.1.2' '0.0'). "=> 1 "
fn value: #('1.2.3' '1.3'). "=> -1 "
fn value: #('0.0.0' '0.0'). "=> 0 "
| fn |
fn := [:strs | (strs collect: [:str | (str subStrings: '.') polynomialEval: 1/1e4]) reduce: #<=>].
fn value: #('0.1.2' '0.0'). "=> 1 "
fn value: #('1.2.3' '1.3'). "=> -1 "
fn value: #('0.0.0' '0.0'). "=> 0 "
688デフォルトの名無しさん
2019/03/15(金) 00:00:24.31ID:27sSd34q >>653 Perl5
use feature current_sub;
@is = (['0.1.2', '0.0'], ['1.2.3', '1.3'], ['0.0.0', '0.0']);
for (@is) {
($l, $r) = @$_;
@l = split'\.', $l;
@r = split'\.', $r;
$z = sub {
my $a = shift @l;
my $b = shift @r;
if (defined $a or defined $b) {
$a //= 0;
$b //= 0;
$a <=> $b or __SUB__->()
} else {
0
}
}->();
%d = (-1 => ' <', 0 => '==', 1 => '> ');
print "$l $d{$z} $r : $z\n";
}
実行結果
~ $ perl 13_653.pl
0.1.2 > 0.0 : 1
1.2.3 < 1.3 : -1
0.0.0 == 0.0 : 0
use feature current_sub;
@is = (['0.1.2', '0.0'], ['1.2.3', '1.3'], ['0.0.0', '0.0']);
for (@is) {
($l, $r) = @$_;
@l = split'\.', $l;
@r = split'\.', $r;
$z = sub {
my $a = shift @l;
my $b = shift @r;
if (defined $a or defined $b) {
$a //= 0;
$b //= 0;
$a <=> $b or __SUB__->()
} else {
0
}
}->();
%d = (-1 => ' <', 0 => '==', 1 => '> ');
print "$l $d{$z} $r : $z\n";
}
実行結果
~ $ perl 13_653.pl
0.1.2 > 0.0 : 1
1.2.3 < 1.3 : -1
0.0.0 == 0.0 : 0
689デフォルトの名無しさん
2019/03/15(金) 00:10:49.43ID:27sSd34q >>673 Perl5
@f = (0, 1);
push @f, $f[-2] + $f[-1] while @f < 10;
print "@f\n";
実行結果
~ $ perl 13_673_fib10.pl
0 1 1 2 3 5 8 13 21 34
Prel6、いいな…
@f = (0, 1);
push @f, $f[-2] + $f[-1] while @f < 10;
print "@f\n";
実行結果
~ $ perl 13_673_fib10.pl
0 1 1 2 3 5 8 13 21 34
Prel6、いいな…
691デフォルトの名無しさん
2019/03/15(金) 00:45:04.99ID:GUP5tEyB 2回分岐してるように見えるが
692デフォルトの名無しさん
2019/03/15(金) 00:50:01.20ID:ltf0XXfV693デフォルトの名無しさん
2019/03/15(金) 00:52:36.60ID:J+j6Qj2a694デフォルトの名無しさん
2019/03/15(金) 01:15:34.20ID:T0clmjRI >>673 Squeak Smalltalk
| fibGen |
fibGen := [:a :b | Generator on: [:g | [g yield: a. b := a + b. a := b - a] repeat]].
(fibGen value: 0 value: 1) next: 10.
"=> an OrderedCollection(0 1 1 2 3 5 8 13 21 34) "
| fibGen |
fibGen := [:a :b | Generator on: [:g | [g yield: a. b := a + b. a := b - a] repeat]].
(fibGen value: 0 value: 1) next: 10.
"=> an OrderedCollection(0 1 1 2 3 5 8 13 21 34) "
695デフォルトの名無しさん
2019/03/15(金) 01:34:55.02ID:4EriVrie >>681 Squeak Smalltalk
| sp fn |
sp := $-. "sp := Character space."
fn := [:n |
| tree |
tree := [:lines :count |
(lines collectWithIndex: [:line :idx |
line, (String new: idx - 1 * 2 withAll: sp), line
]), lines
].
(((1 to: n) inject: #('木') into: tree) collectWithIndex: [:line :idx |
(String new: idx - 1 withAll: sp), line
]) reversed asStringWithCr
].
fn value: 0. "=>
'木' "
fn value: 1. "=>
'-木
木木' "
fn value: 2. "=>
'---木
--木木
-木--木
木木木木' "
| sp fn |
sp := $-. "sp := Character space."
fn := [:n |
| tree |
tree := [:lines :count |
(lines collectWithIndex: [:line :idx |
line, (String new: idx - 1 * 2 withAll: sp), line
]), lines
].
(((1 to: n) inject: #('木') into: tree) collectWithIndex: [:line :idx |
(String new: idx - 1 withAll: sp), line
]) reversed asStringWithCr
].
fn value: 0. "=>
'木' "
fn value: 1. "=>
'-木
木木' "
fn value: 2. "=>
'---木
--木木
-木--木
木木木木' "
696デフォルトの名無しさん
2019/03/15(金) 01:51:53.98ID:Fj/79Ht+ >>673 javascript
const take = n => function*(iterable) {
const iterator = iterable[Symbol.iterator]();
for (let i = 0; i < n; i++) {
const {value, done} = iterator.next();
if (done) break;
yield value;
}
};
const fibo = function*() {
const memo = [0n, 1n];
const fib = n => n in memo ? memo[n] : memo[n] = fib(n - 2) + fib(n - 1);
for(let i = 0; ; i++) yield fib(i);
}();
console.log([...take(10)(fibo)]);
結果:
[0n, 1n, 1n, 2n, 3n, 5n, 8n, 13n, 21n, 34n]
const take = n => function*(iterable) {
const iterator = iterable[Symbol.iterator]();
for (let i = 0; i < n; i++) {
const {value, done} = iterator.next();
if (done) break;
yield value;
}
};
const fibo = function*() {
const memo = [0n, 1n];
const fib = n => n in memo ? memo[n] : memo[n] = fib(n - 2) + fib(n - 1);
for(let i = 0; ; i++) yield fib(i);
}();
console.log([...take(10)(fibo)]);
結果:
[0n, 1n, 1n, 2n, 3n, 5n, 8n, 13n, 21n, 34n]
697デフォルトの名無しさん
2019/03/15(金) 08:40:18.32ID:VdqhZ9XO698デフォルトの名無しさん
2019/03/15(金) 10:29:40.47ID:4uXCwYPV699デフォルトの名無しさん
2019/03/15(金) 10:50:31.62ID:ltf0XXfV700デフォルトの名無しさん
2019/03/15(金) 10:54:07.06ID:EVqxIhVf701デフォルトの名無しさん
2019/03/15(金) 11:30:37.72ID:gesJPCRi >>670 訂正 Python
def ver (v):
s = list( map(int , v.split('.') ) )
for _ in s:
if s[-1] == 0 :s.pop(-1)
return s
def cmp(v0,v1):
v0 = ver(v0)
v1 = ver(v1)
if v0==v1: return 0
else: return 1 if (v0 > v1) else -1
print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('10.0','9.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.0.0','1.2.0') ,
cmp('1.2.3','1.3')
)
# 1 1 1 0 0 -1
def ver (v):
s = list( map(int , v.split('.') ) )
for _ in s:
if s[-1] == 0 :s.pop(-1)
return s
def cmp(v0,v1):
v0 = ver(v0)
v1 = ver(v1)
if v0==v1: return 0
else: return 1 if (v0 > v1) else -1
print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('10.0','9.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.0.0','1.2.0') ,
cmp('1.2.3','1.3')
)
# 1 1 1 0 0 -1
702デフォルトの名無しさん
2019/03/15(金) 12:06:15.98ID:phFelL6J >>666
「ソートすると」ではなく「ソートしてからその出力を実行またはコンパイルして実行すると」なのでは?
「ソートすると」ではなく「ソートしてからその出力を実行またはコンパイルして実行すると」なのでは?
703デフォルトの名無しさん
2019/03/15(金) 13:00:31.13ID:1zMWa3GW >>702
せやで
せやで
704デフォルトの名無しさん
2019/03/15(金) 13:38:24.99ID:CRw2aIHX そーっとしておこう
705デフォルトの名無しさん
2019/03/15(金) 15:16:52.97ID:1zMWa3GW お題: プログラムのコードの文字を縦読みしたコードが実行可能なコード
706デフォルトの名無しさん
2019/03/15(金) 17:37:30.24ID:g4S7Lu9n お題
2桁16進数化したものをつなげた形でIPアドレスが与えられる。(例:192.168.0.1 -> C0A80001)
与えられたIPアドレスからホスト名を逆引きせよ。
例
08080808 -> google-public-dns-a.google.com
9da6e21a -> www.cnn.com
2桁16進数化したものをつなげた形でIPアドレスが与えられる。(例:192.168.0.1 -> C0A80001)
与えられたIPアドレスからホスト名を逆引きせよ。
例
08080808 -> google-public-dns-a.google.com
9da6e21a -> www.cnn.com
707デフォルトの名無しさん
2019/03/15(金) 18:51:48.50ID:phFelL6J708673
2019/03/15(金) 19:08:00.81ID:3zDqFokC709デフォルトの名無しさん
2019/03/15(金) 19:13:09.78ID:4uXCwYPV >>706 node
const reverse = hexIP => require('dns').reverse(hexIP
.split(/^(..)(..)(..)(..)$/g)
.map(xx => parseInt(xx, 16) || '')
.join('.').replace(/^\.|\.$/g, ''),
(err, hostnames) => {
console.log(hostnames);
});
console.log(reverse('08080808')); //=> [ 'google-public-dns-a.google.com' ]
console.log(reverse('9da6e21a')); //=> [ 'www.cnn.com' ]
const reverse = hexIP => require('dns').reverse(hexIP
.split(/^(..)(..)(..)(..)$/g)
.map(xx => parseInt(xx, 16) || '')
.join('.').replace(/^\.|\.$/g, ''),
(err, hostnames) => {
console.log(hostnames);
});
console.log(reverse('08080808')); //=> [ 'google-public-dns-a.google.com' ]
console.log(reverse('9da6e21a')); //=> [ 'www.cnn.com' ]
710デフォルトの名無しさん
2019/03/16(土) 01:04:28.66ID:moiau3OK >>688 もっと簡潔に書けるんだった…
>>653 Perl5
use feature current_sub;
@is = (['0.1.2', '0.0'], ['1.2.3', '1.3'], ['0.0.0', '0.0']);
for (@is) {
($l, $r) = @$_;
@l = split'\.', $l;
@r = split'\.', $r;
$z = sub {
my $a = shift @l;
my $b = shift @r;
(defined $a or defined $b) ? ($a <=> $b or __SUB__->()) : 0
}->();
%d = qw{-1 < 0 == 1 >};
print "$l $d{$z} $r : $z\n";
}
実行結果
~ $ perl 13_653.pl
0.1.2 > 0.0 : 1
1.2.3 < 1.3 : -1
0.0.0 == 0.0 : 0
>>653 Perl5
use feature current_sub;
@is = (['0.1.2', '0.0'], ['1.2.3', '1.3'], ['0.0.0', '0.0']);
for (@is) {
($l, $r) = @$_;
@l = split'\.', $l;
@r = split'\.', $r;
$z = sub {
my $a = shift @l;
my $b = shift @r;
(defined $a or defined $b) ? ($a <=> $b or __SUB__->()) : 0
}->();
%d = qw{-1 < 0 == 1 >};
print "$l $d{$z} $r : $z\n";
}
実行結果
~ $ perl 13_653.pl
0.1.2 > 0.0 : 1
1.2.3 < 1.3 : -1
0.0.0 == 0.0 : 0
711デフォルトの名無しさん
2019/03/16(土) 02:33:36.77ID:ksQagb59712デフォルトの名無しさん
2019/03/16(土) 06:51:03.68ID:x9tnPyz1 >>666
Haskell
空文字は出力しないと動かないから許して。(動く場合はmain =でパターンマッチして出力文埋め込むだけだけど)
ソートした自身の書き込み先、実行先は自身じゃ無いといけないとは書いてない。
import System.Process
main = putStr "" >> readFile "runmyself.hs" >>= \f -> writeFile "runmyself2.hs" ((replace.unlines.qsort.lines) f) >> callCommand "runghc runmyself2.hs"
replace [] = []
replace (p:u:t:s:t2:r:x:y:z:xs) | (p:u:t:s:t2:r:x:y:z:[]) == "putStr \"\"" = "putStrLn \"Hello World\"" ++ replace xs
replace (a1:a2:a3:a4:a5:a6:a7:a8:a9:a10:a11:a12:a13:a14:a15:a16:a17:a18:a19:a20:a21:a22:a23:a24:a25:a26:a27:a28:a29:a30:a31:a32:a33:a34:a35:a36:a37:xs) |
(a1:a2:a3:a4:a5:a6:a7:a8:a9:a10:a11:a12:a13:a14:a15:a16:a17:a18:a19:a20:a21:a22:a23:a24:a25:a26:a27:a28:a29:a30:a31:a32:a33:a34:a35:a36:a37:[]) == ">> callCommand \"runghc runmyself2.hs\"" = "" ++ replace xs
replace (x:xs) = x:replace xs
qsort [] = []
qsort (x:xs) = qsort [s| s <- xs, s <= x] ++ [x] ++ qsort [l| l <- xs, l > x]
Haskell
空文字は出力しないと動かないから許して。(動く場合はmain =でパターンマッチして出力文埋め込むだけだけど)
ソートした自身の書き込み先、実行先は自身じゃ無いといけないとは書いてない。
import System.Process
main = putStr "" >> readFile "runmyself.hs" >>= \f -> writeFile "runmyself2.hs" ((replace.unlines.qsort.lines) f) >> callCommand "runghc runmyself2.hs"
replace [] = []
replace (p:u:t:s:t2:r:x:y:z:xs) | (p:u:t:s:t2:r:x:y:z:[]) == "putStr \"\"" = "putStrLn \"Hello World\"" ++ replace xs
replace (a1:a2:a3:a4:a5:a6:a7:a8:a9:a10:a11:a12:a13:a14:a15:a16:a17:a18:a19:a20:a21:a22:a23:a24:a25:a26:a27:a28:a29:a30:a31:a32:a33:a34:a35:a36:a37:xs) |
(a1:a2:a3:a4:a5:a6:a7:a8:a9:a10:a11:a12:a13:a14:a15:a16:a17:a18:a19:a20:a21:a22:a23:a24:a25:a26:a27:a28:a29:a30:a31:a32:a33:a34:a35:a36:a37:[]) == ">> callCommand \"runghc runmyself2.hs\"" = "" ++ replace xs
replace (x:xs) = x:replace xs
qsort [] = []
qsort (x:xs) = qsort [s| s <- xs, s <= x] ++ [x] ++ qsort [l| l <- xs, l > x]
713デフォルトの名無しさん
2019/03/16(土) 14:50:17.74ID:0dLFyPZP >>681 Perl5
use feature say;
$n = 0;
@t = ('木');
say "n=$n\n$t[0]";
for $n (1..2) {
$l = '-' x 2**($n-1);
@u = map{$l . $_ . $l} @t;
@w = map{$t[$_].$t[$_]} 0..$#t;
@t = (@u, @w);
say "n=$n";
say for @t;
}
実行例
~ $ perl 13_681.pl
n=0
木
n=1
-木-
木木
n=2
---木---
--木木--
-木--木-
木木木木
注) 正直者には、-はスペースに見えます。
use feature say;
$n = 0;
@t = ('木');
say "n=$n\n$t[0]";
for $n (1..2) {
$l = '-' x 2**($n-1);
@u = map{$l . $_ . $l} @t;
@w = map{$t[$_].$t[$_]} 0..$#t;
@t = (@u, @w);
say "n=$n";
say for @t;
}
実行例
~ $ perl 13_681.pl
n=0
木
n=1
-木-
木木
n=2
---木---
--木木--
-木--木-
木木木木
注) 正直者には、-はスペースに見えます。
714デフォルトの名無しさん
2019/03/16(土) 16:51:50.43ID:EVMD7h0V お題: プログラム言語をなにも知らない人にもプログラムの意味が理解できるコメント無しのhello worldを出力するコプログラム
715デフォルトの名無しさん
2019/03/16(土) 17:11:38.87ID:0dLFyPZP わかりません><
716デフォルトの名無しさん
2019/03/16(土) 17:16:48.87ID:EVMD7h0V お題: 文字列に丁度いい具合にグリッチを入れて超かっこいい文字列を作るプログラム
717さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/16(土) 17:18:04.51ID:PQISp+Pa グリッチは広辞苑には載っていません。説明して下さい。
718デフォルトの名無しさん
2019/03/16(土) 17:21:14.90ID:EVMD7h0V >>717
いやです
いやです
719デフォルトの名無しさん
2019/03/16(土) 17:36:13.64ID:0dLFyPZP720デフォルトの名無しさん
2019/03/16(土) 20:05:38.53ID:INaBYg0f721707
2019/03/17(日) 01:26:35.49ID:5dC2feuc >>706
Kotlin
https://paiza.io/projects/PHrLKrBMqZYA6AC9bUWDcg
何故か 9da6e21a の方はホスト名になってくれず IP アドレスの文字列になる。
Kotlin
https://paiza.io/projects/PHrLKrBMqZYA6AC9bUWDcg
何故か 9da6e21a の方はホスト名になってくれず IP アドレスの文字列になる。
722707
2019/03/17(日) 02:33:00.06ID:5dC2feuc >>706
C
https://paiza.io/projects/ZW4sJq_ea_wQQxe_vOlGjQ
gethostbyname() や gethostbyaddr() ではなく getnameinfo() 使ってみました。
C
https://paiza.io/projects/ZW4sJq_ea_wQQxe_vOlGjQ
gethostbyname() や gethostbyaddr() ではなく getnameinfo() 使ってみました。
723デフォルトの名無しさん
2019/03/17(日) 06:18:59.33ID:k04EM+xl 2桁までの足し算の筆算を表示せよ。
例:
29
+15
----
14
3
----
44
29
+ 5
----
14
2
----
34
例:
29
+15
----
14
3
----
44
29
+ 5
----
14
2
----
34
724デフォルトの名無しさん
2019/03/17(日) 06:20:05.97ID:5dC2feuc725デフォルトの名無しさん
2019/03/17(日) 07:23:54.75ID:1ggb6IGK お題
実数a,b (0<a<b)が与えられたとき、平面座標(a,b),(0,0),(a,-b)の3点を通る円の半径を求める。
実数a,b (0<a<b)が与えられたとき、平面座標(a,b),(0,0),(a,-b)の3点を通る円の半径を求める。
726デフォルトの名無しさん
2019/03/17(日) 07:27:24.80ID:vfP8HMqf 余弦定理と正弦定理1回ずつ使うだけだな
727デフォルトの名無しさん
2019/03/17(日) 07:31:01.10ID:OwOB9RAr 数学で解けてもコードに落とせない人っているよね
728デフォルトの名無しさん
2019/03/17(日) 08:41:45.83ID:k04EM+xl >>727
居るけど、そういう人って機械自体が苦手な人。
機械と数学に強くてコードに落とせない人には会ったことがない。
機械には強いけど数学苦手だからコードに落とせないって人は(自分含め)沢山いるが。
居るけど、そういう人って機械自体が苦手な人。
機械と数学に強くてコードに落とせない人には会ったことがない。
機械には強いけど数学苦手だからコードに落とせないって人は(自分含め)沢山いるが。
729デフォルトの名無しさん
2019/03/17(日) 12:19:22.82ID:gm8A83sV 自転車修理屋さんが機械に強いけどコードなんて、かけなさそう
730デフォルトの名無しさん
2019/03/17(日) 12:38:59.54ID:TUY5K+QC >>723 Perl5
for (<DATA>) {
($l, $o, $r) = split;
@l = $l =~ /(\d?)(\d)/;
@r = $r =~ /(\d?)(\d)/;
$a1 = $l[0] + $r[0];
$a0 = $l[1] + $r[1];
@a1 = $a1 =~ /(\d?)(\d)/;
@a0 = $a0 =~ /(\d?)(\d)/;
$a = 10*$a1 + $a0;
$" = '';
print <<"EOF";
@l
$o@r
---
@a1
@a0
---
$a
EOF
}
__DATA__
29 + 15
29 + 5
for (<DATA>) {
($l, $o, $r) = split;
@l = $l =~ /(\d?)(\d)/;
@r = $r =~ /(\d?)(\d)/;
$a1 = $l[0] + $r[0];
$a0 = $l[1] + $r[1];
@a1 = $a1 =~ /(\d?)(\d)/;
@a0 = $a0 =~ /(\d?)(\d)/;
$a = 10*$a1 + $a0;
$" = '';
print <<"EOF";
@l
$o@r
---
@a1
@a0
---
$a
EOF
}
__DATA__
29 + 15
29 + 5
731デフォルトの名無しさん
2019/03/17(日) 12:40:50.32ID:TUY5K+QC732デフォルトの名無しさん
2019/03/17(日) 12:41:06.87ID:PfKDQB+U733デフォルトの名無しさん
2019/03/17(日) 13:19:09.72ID:k04EM+xl >>723
掛け算に対応したり、1桁どうしの計算用フォーマット作ったりしてたら規模がでかくなった(・ω・`)
1
* 2
-----
2
10
* 0
-----
0
Haskell
https://ideone.com/SCzGKq
掛け算に対応したり、1桁どうしの計算用フォーマット作ったりしてたら規模がでかくなった(・ω・`)
1
* 2
-----
2
10
* 0
-----
0
Haskell
https://ideone.com/SCzGKq
734デフォルトの名無しさん
2019/03/17(日) 13:39:28.89ID:yIqzgq0g735デフォルトの名無しさん
2019/03/17(日) 18:42:43.38ID:7j/Zhhp5 >>723 ネタ回答: WolframAlpha API / node
// index.js
const {get} = require('http');
const appid = '<<YOUR WolframAlpha APP ID>>';
process.stdin.on('data', data => {
get(`http://api.wolframalpha.com/v2/query?appid=${appid}&input=${encodeURIComponent(data.toString().trim())}&podstate=Result__Step-by-step+solution&format=image&output=json`, res => {
res.setEncoding('utf8');
let body = '';
res.on('data', chunk => {body += chunk;});
res.on('end', () => {
get(JSON.parse(body).queryresult.pods.filter(({title}) => title === 'Results')[0].subpods.filter(({title}) => title === 'Possible intermediate steps')[0].img.src, res => {
res.on('data', data => {process.stdout.write(data)});
});
});
});
});
$ echo 29+15 | node . > ./test1.gif
https://i.imgur.com/QxolfNz.gif
$ echo 29+5 | node . > ./test2.gif
https://i.imgur.com/D0r3sSg.gif
$ echo 29*15 | node . > ./test3.gif
https://i.imgur.com/imvQO5g.gif
試しに一桁×一桁やってみたらなんだか微妙な計算過程に…
$ echo 5*5 | node . > ./test.gif
https://i.imgur.com/8z3kZPf.gif
あと割り算はAPIからでは計算過程のURL取れなかった
// index.js
const {get} = require('http');
const appid = '<<YOUR WolframAlpha APP ID>>';
process.stdin.on('data', data => {
get(`http://api.wolframalpha.com/v2/query?appid=${appid}&input=${encodeURIComponent(data.toString().trim())}&podstate=Result__Step-by-step+solution&format=image&output=json`, res => {
res.setEncoding('utf8');
let body = '';
res.on('data', chunk => {body += chunk;});
res.on('end', () => {
get(JSON.parse(body).queryresult.pods.filter(({title}) => title === 'Results')[0].subpods.filter(({title}) => title === 'Possible intermediate steps')[0].img.src, res => {
res.on('data', data => {process.stdout.write(data)});
});
});
});
});
$ echo 29+15 | node . > ./test1.gif
https://i.imgur.com/QxolfNz.gif
$ echo 29+5 | node . > ./test2.gif
https://i.imgur.com/D0r3sSg.gif
$ echo 29*15 | node . > ./test3.gif
https://i.imgur.com/imvQO5g.gif
試しに一桁×一桁やってみたらなんだか微妙な計算過程に…
$ echo 5*5 | node . > ./test.gif
https://i.imgur.com/8z3kZPf.gif
あと割り算はAPIからでは計算過程のURL取れなかった
736デフォルトの名無しさん
2019/03/17(日) 19:54:31.54ID:k04EM+xl >>735
こうやって足し算の筆算とは言え、人間の思考過程をプログラムで再現してみると小学生から結構複雑な処理してるんだなと思う。
もっと人間の処理に近づけるなら文字列として認識して、1桁目を数字に変換して〜みたいになるんだろうけど。
こうやって足し算の筆算とは言え、人間の思考過程をプログラムで再現してみると小学生から結構複雑な処理してるんだなと思う。
もっと人間の処理に近づけるなら文字列として認識して、1桁目を数字に変換して〜みたいになるんだろうけど。
737デフォルトの名無しさん
2019/03/17(日) 22:48:25.97ID:t+AGMGYK >>494
(CSVはコンマ区切りの値だよ)
(CSVはコンマ区切りの値だよ)
738デフォルトの名無しさん
2019/03/17(日) 23:32:46.95ID:wEirTeMQ >>737
カンマを逆から読むとマンコですよ
カンマを逆から読むとマンコですよ
739デフォルトの名無しさん
2019/03/17(日) 23:33:11.60ID:wEirTeMQ 致命的なミスを犯しました
740デフォルトの名無しさん
2019/03/17(日) 23:35:38.92ID:QL30OvU4 許さないからな
741デフォルトの名無しさん
2019/03/18(月) 00:38:16.94ID:9+FFV4Nx >>494 >>496 Perl5
use feature say;
@data = <DATA>;
chomp @data;
@tags = split' ', shift @data;
%idx = map{$_ => $n++} @tags;
@sum = 0 x $n;
for (@data) {
@fs = split' ';
for (0..$n-1) {
$v = $fs[$_];
if ($v =~ /^(\d+\.\d*|\d*\.\d+|\d+)$/) {
$sum[$_] += $v;
} else {
warn "変なデータが紛れ込んでいます_ノ乙(、ン、)_`$v'\n";
}
}
}
for (@tags) {
say "$_ の合計 = ", $sum[$idx{$_}];
}
__DATA__
カラム1 カラム2 カラム3 カラム4
1,0 2.0 3.0 4.0
2.1 3.1 4.1 5.1
~ $ perl 13_494.pl
変なデータが紛れ込んでいます_ノ乙(、ン、)_`1,0'
カラム1 の合計 = 2.1
カラム2 の合計 = 5.1
カラム3 の合計 = 7.1
カラム4 の合計 = 9.1
use feature say;
@data = <DATA>;
chomp @data;
@tags = split' ', shift @data;
%idx = map{$_ => $n++} @tags;
@sum = 0 x $n;
for (@data) {
@fs = split' ';
for (0..$n-1) {
$v = $fs[$_];
if ($v =~ /^(\d+\.\d*|\d*\.\d+|\d+)$/) {
$sum[$_] += $v;
} else {
warn "変なデータが紛れ込んでいます_ノ乙(、ン、)_`$v'\n";
}
}
}
for (@tags) {
say "$_ の合計 = ", $sum[$idx{$_}];
}
__DATA__
カラム1 カラム2 カラム3 カラム4
1,0 2.0 3.0 4.0
2.1 3.1 4.1 5.1
~ $ perl 13_494.pl
変なデータが紛れ込んでいます_ノ乙(、ン、)_`1,0'
カラム1 の合計 = 2.1
カラム2 の合計 = 5.1
カラム3 の合計 = 7.1
カラム4 の合計 = 9.1
742デフォルトの名無しさん
2019/03/18(月) 01:13:14.07ID:4b49AUHf >>738
マンコ・カパックは、インカ神話によるクスコ王国の初代国王である。
マンコ・カパックは、インカ神話によるクスコ王国の初代国王である。
743デフォルトの名無しさん
2019/03/21(木) 03:20:09.08ID:ZuEvTwkR744デフォルトの名無しさん
2019/03/21(木) 05:20:06.50ID:ZuEvTwkR >>675
Kotlin
https://paiza.io/projects/SlCrKgxVJRghtvESdUMR_A
リストの中の最小値をループして探し出しように作っただけなんだけど、こんなんで良いのか?
(MutableListなのでsort()しちゃうという手抜きワザもあったがそれだと表面上分岐が一つもない状態になるので止めた)。
Kotlin
https://paiza.io/projects/SlCrKgxVJRghtvESdUMR_A
リストの中の最小値をループして探し出しように作っただけなんだけど、こんなんで良いのか?
(MutableListなのでsort()しちゃうという手抜きワザもあったがそれだと表面上分岐が一つもない状態になるので止めた)。
745デフォルトの名無しさん
2019/03/21(木) 11:30:55.91ID:4Lv8Ku6J >>494 Squeak Smalltalk。コンマを分割と見なしそれぞれについての和を出力させてみた
| fn |
fn := [:columnName |
FileStream oldFileNamed: 'data.txt' do: [:file |
| index sum |
index := (file nextLine subStrings: ' ') indexOf: columnName.
sum := 0.
[file atEnd] whileFalse: [
| next |
next := ((file nextLine subStrings: ' ') at: index) subStrings: ','.
sum := sum + (next size = 1 ifTrue: [next anyOne] ifFalse: [next])].
sum
]
].
fn value: 'カラム3'. "=> 7.1 "
fn value: 'カラム1'. "=> #(3.1 2.1) "
| fn |
fn := [:columnName |
FileStream oldFileNamed: 'data.txt' do: [:file |
| index sum |
index := (file nextLine subStrings: ' ') indexOf: columnName.
sum := 0.
[file atEnd] whileFalse: [
| next |
next := ((file nextLine subStrings: ' ') at: index) subStrings: ','.
sum := sum + (next size = 1 ifTrue: [next anyOne] ifFalse: [next])].
sum
]
].
fn value: 'カラム3'. "=> 7.1 "
fn value: 'カラム1'. "=> #(3.1 2.1) "
746デフォルトの名無しさん
2019/03/21(木) 13:37:55.15ID:p+hkSRzH お題
長方形の盤で左上から上下左右に一マスずつ移動して全てのマスを
辿る。
移動の順番を表した数字を向きと終点を表す文字(↑↓←→★、
上下左右終、UDLRG、^V<>Gなど)に変換する。
入力
1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11
出力
↓→→↓
→↑↓←
↓←→↓
★↑←←
長方形の盤で左上から上下左右に一マスずつ移動して全てのマスを
辿る。
移動の順番を表した数字を向きと終点を表す文字(↑↓←→★、
上下左右終、UDLRG、^V<>Gなど)に変換する。
入力
1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11
出力
↓→→↓
→↑↓←
↓←→↓
★↑←←
747デフォルトの名無しさん
2019/03/21(木) 14:37:03.32ID:Krn8F3T2 >>746 Perl5
@a = map{[split]} <DATA>;
for $y (0..$#a) {
$h{$a[$y][$_]} = [$y,$_,''] for 0..$#a;
}
@s = keys %h;
%r = qw{-1,0 ↑ 1,0 ↓ 0,-1 ← 0,1 →};
for $i (1..@s) {
if ($i == @s) {
$d = '★'
} else {
$y = $h{$i+1}->[0] - $h{$i}->[0];
$x = $h{$i+1}->[1] - $h{$i}->[1];
$d = $r{"$y,$x"}
}
$h{$i}->[2] = $d;
}
($y, $x, $d) = @$_, $a[$y][$x] = $d for values %h;
use feature say;
say "@$_" for @a;
__DATA__
1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11
実行結果
~ $ perl 13_746.pl
↓ → → ↓
→ ↑ ↓ ←
↓ ← → ↓
★ ↑ ← ←
@a = map{[split]} <DATA>;
for $y (0..$#a) {
$h{$a[$y][$_]} = [$y,$_,''] for 0..$#a;
}
@s = keys %h;
%r = qw{-1,0 ↑ 1,0 ↓ 0,-1 ← 0,1 →};
for $i (1..@s) {
if ($i == @s) {
$d = '★'
} else {
$y = $h{$i+1}->[0] - $h{$i}->[0];
$x = $h{$i+1}->[1] - $h{$i}->[1];
$d = $r{"$y,$x"}
}
$h{$i}->[2] = $d;
}
($y, $x, $d) = @$_, $a[$y][$x] = $d for values %h;
use feature say;
say "@$_" for @a;
__DATA__
1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11
実行結果
~ $ perl 13_746.pl
↓ → → ↓
→ ↑ ↓ ←
↓ ← → ↓
★ ↑ ← ←
748デフォルトの名無しさん
2019/03/21(木) 22:33:42.92ID:4Lv8Ku6J >>723 Squeak Smalltalk
| fn |
fn := [:int1 :int2 |
| strings width digits interms ans max line |
strings := {int1. int2} collect: #asString.
width := (strings detectMax: #size) size.
digits := strings collect: [:str |
(str forceTo: width paddingStartWith: $0) reversed asArray collect: #asString].
interms := (digits reduce: #+) collectWithIndex: [:interm :idx |
interm, (String new: idx-1 withAll: Character space)].
ans := interms polynomialEval: '10'.
strings atLast: 1 put: '+ ', strings last.
max := ((strings, {ans}) collect: #size) max.
line := String new: max withAll: $-.
(strings, {line}, interms, {line. ans} collect: [:str |
(str forceTo: max paddingStartWith: Character space) withoutTrailingBlanks
]) asStringWithCr
].
fn value: 987 value: 65. "=>
' 987
+ 65
----
12
14
9
----
1052' "
| fn |
fn := [:int1 :int2 |
| strings width digits interms ans max line |
strings := {int1. int2} collect: #asString.
width := (strings detectMax: #size) size.
digits := strings collect: [:str |
(str forceTo: width paddingStartWith: $0) reversed asArray collect: #asString].
interms := (digits reduce: #+) collectWithIndex: [:interm :idx |
interm, (String new: idx-1 withAll: Character space)].
ans := interms polynomialEval: '10'.
strings atLast: 1 put: '+ ', strings last.
max := ((strings, {ans}) collect: #size) max.
line := String new: max withAll: $-.
(strings, {line}, interms, {line. ans} collect: [:str |
(str forceTo: max paddingStartWith: Character space) withoutTrailingBlanks
]) asStringWithCr
].
fn value: 987 value: 65. "=>
' 987
+ 65
----
12
14
9
----
1052' "
749デフォルトの名無しさん
2019/03/22(金) 05:04:29.93ID:NMDgNTgg750デフォルトの名無しさん
2019/03/22(金) 12:12:43.26ID:bmKj2SZK >>746 Squeak Smalltalk
| fn |
fn := [:str |
| map range sign goal position next atEnd |
map := str lines collect: [:line | line subStrings collect: #asInteger].
range := 1@1 extent: map first size @ map size.
sign := (0 asPoint fourNeighbors with: #(→ ↓ ← ↑) collect: #->) as: Dictionary.
goal := #★.
position := 1@1. next := 2. atEnd := false.
[atEnd] whileFalse: [
| found |
found := position fourNeighbors detect: [:neighPos |
(range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next]
] ifNone: [atEnd := true. Float nan].
(map at: position y) at: position x put: (sign at: found - position ifAbsent: goal).
position := found. next := next + 1.
].
(map collect: #join) asStringWithCr
].
fn value: '1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11'
"=>
'↓→→↓
→↑↓←
↓←→↓
★↑←←' "
| fn |
fn := [:str |
| map range sign goal position next atEnd |
map := str lines collect: [:line | line subStrings collect: #asInteger].
range := 1@1 extent: map first size @ map size.
sign := (0 asPoint fourNeighbors with: #(→ ↓ ← ↑) collect: #->) as: Dictionary.
goal := #★.
position := 1@1. next := 2. atEnd := false.
[atEnd] whileFalse: [
| found |
found := position fourNeighbors detect: [:neighPos |
(range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next]
] ifNone: [atEnd := true. Float nan].
(map at: position y) at: position x put: (sign at: found - position ifAbsent: goal).
position := found. next := next + 1.
].
(map collect: #join) asStringWithCr
].
fn value: '1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11'
"=>
'↓→→↓
→↑↓←
↓←→↓
★↑←←' "
751デフォルトの名無しさん
2019/03/22(金) 20:50:59.33ID:KB/r9SyN752デフォルトの名無しさん
2019/03/22(金) 21:14:53.89ID:97922Y7I まだ見にくいなあ。線を繋いで矢印を入れることはできないかな。
753デフォルトの名無しさん
2019/03/22(金) 21:41:47.96ID:nZ/OoXFx 罫線
│┌─┐
└┘┌┘
┌┐└┐
★└─┘
直線部に矢印
│┌→┐
└┘┌┘
┌┐└┐
★└←┘
こんな感じ?
│┌─┐
└┘┌┘
┌┐└┐
★└─┘
直線部に矢印
│┌→┐
└┘┌┘
┌┐└┐
★└←┘
こんな感じ?
754デフォルトの名無しさん
2019/03/22(金) 21:43:03.63ID:nZ/OoXFx スタート部も矢印に出来るやん…
↓┌→┐
└┘┌┘
┌┐└┐
★└←┘
↓┌→┐
└┘┌┘
┌┐└┐
★└←┘
755747
2019/03/22(金) 23:30:54.68ID:DMg7GUli code、プリーズ
756デフォルトの名無しさん
2019/03/23(土) 01:24:21.91ID:Bvojjkpo757デフォルトの名無しさん
2019/03/23(土) 01:27:24.77ID:Bvojjkpo 罫線や矢印が半角で★が全角で表示されてしまうとずれるな。
ま、しょうがないか。
ま、しょうがないか。
758デフォルトの名無しさん
2019/03/23(土) 02:35:34.66ID:FcxASXew759デフォルトの名無しさん
2019/03/23(土) 05:47:57.62ID:ZlGSstH0 >>754 Squeak Smalltalk
| fn |
fn := [:str |
| map range signs sign goal position from next atEnd |
map := str lines collect: [:line | line subStrings collect: #asInteger].
range := 1@1 extent: map first size @ map size.
goal := #★. signs := #(┌ ┌ ← → └ └ ┐ ┐ ↑ ↓ ┘ ┘) readStream.
sign := Dictionary new.
0 asPoint fourNeighbors combinations: 2 atATimeDo: [:combi |
sign at: combi copy put: signs next; at: combi reversed put: signs next].
position := 1@1. from := nil. next := 2. atEnd := false.
[atEnd] whileFalse: [
| found delta |
found := position fourNeighbors detect: [:neighPos |
(range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next]
] ifNone: [atEnd := true. Float nan].
delta := found - position.
(map at: position y) at: position x put: (sign at: {from ifNil: [delta negated]. delta} ifAbsent: goal).
position := found. from := delta negated. next := next + 1].
(map collect: #join) asStringWithCr
].
fn value: '1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11' .
"=>
'↓┌→┐
└┘┌┘
┌┐└┐
★└←┘' "
| fn |
fn := [:str |
| map range signs sign goal position from next atEnd |
map := str lines collect: [:line | line subStrings collect: #asInteger].
range := 1@1 extent: map first size @ map size.
goal := #★. signs := #(┌ ┌ ← → └ └ ┐ ┐ ↑ ↓ ┘ ┘) readStream.
sign := Dictionary new.
0 asPoint fourNeighbors combinations: 2 atATimeDo: [:combi |
sign at: combi copy put: signs next; at: combi reversed put: signs next].
position := 1@1. from := nil. next := 2. atEnd := false.
[atEnd] whileFalse: [
| found delta |
found := position fourNeighbors detect: [:neighPos |
(range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next]
] ifNone: [atEnd := true. Float nan].
delta := found - position.
(map at: position y) at: position x put: (sign at: {from ifNil: [delta negated]. delta} ifAbsent: goal).
position := found. from := delta negated. next := next + 1].
(map collect: #join) asStringWithCr
].
fn value: '1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11' .
"=>
'↓┌→┐
└┘┌┘
┌┐└┐
★└←┘' "
760デフォルトの名無しさん
2019/03/23(土) 06:18:42.67ID:ZlGSstH0 >>759 758の入力例を拝借
fn value: '1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9'.
"=>
'→→→→┐
┌→→┐↓
↑┌★↓↓
↑└←┘↓
└←←←┘' "
fn value: '1 4 5 8 9 12
2 3 6 7 10 11'.
"=>
'↓┌┐┌┐★
└┘└┘└┘' "
fn value: '1 4 5 6
2 3 8 7
16 14 9 10
15 13 12 11' .
"=> 繋げられるところまでで終点にする。
'↓┌→┐
└┘┌┘
16★└┐
15└←┘' "
fn value: '1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9'.
"=>
'→→→→┐
┌→→┐↓
↑┌★↓↓
↑└←┘↓
└←←←┘' "
fn value: '1 4 5 8 9 12
2 3 6 7 10 11'.
"=>
'↓┌┐┌┐★
└┘└┘└┘' "
fn value: '1 4 5 6
2 3 8 7
16 14 9 10
15 13 12 11' .
"=> 繋げられるところまでで終点にする。
'↓┌→┐
└┘┌┘
16★└┐
15└←┘' "
761デフォルトの名無しさん
2019/03/23(土) 22:17:53.61ID:4V4ijAbJ S : Start
E : End
X : 行けない所
で、表す方がよいかも
E : End
X : 行けない所
で、表す方がよいかも
762デフォルトの名無しさん
2019/03/23(土) 23:35:50.10ID:4ExQ31KE 縦読み
763デフォルトの名無しさん
2019/03/23(土) 23:49:28.93ID:5/UQAxw+ >>761
セックス!
セックス!
764デフォルトの名無しさん
2019/03/24(日) 01:17:54.50ID:TWBa+gHA765デフォルトの名無しさん
2019/03/24(日) 13:31:32.22ID:Vlgf6sT0 お題 :次のようなジョブパラメータで表されるジョブ(製造工程)があります。全て完成するための最小時間とマシンスケジュールを求めてください。貧乏なので同じ番号のマシンは一台しかありません。{A, B}とあれば;Aマシン番号、B:所要時間
int job_param[JOBNUM][STP][2] = {
{{3, 10}, {4, 10}, {2, 12}, {0, 18}, {1, 4}},
{{1, 11}, {2, 6}, {3, 2}, {4, 8}, {0, 15}},
{{2, 10}, {4, 16}, {3, 2}, {1, 8}, {0, 14}},
{{2, 15}, {1, 12}, {0, 16}, {3, 6}, {4, 17}},
{{4, 14}, {0, 2}, {1, 15}, {2, 6}, {3, 10}}};
int job_param[JOBNUM][STP][2] = {
{{3, 10}, {4, 10}, {2, 12}, {0, 18}, {1, 4}},
{{1, 11}, {2, 6}, {3, 2}, {4, 8}, {0, 15}},
{{2, 10}, {4, 16}, {3, 2}, {1, 8}, {0, 14}},
{{2, 15}, {1, 12}, {0, 16}, {3, 6}, {4, 17}},
{{4, 14}, {0, 2}, {1, 15}, {2, 6}, {3, 10}}};
766デフォルトの名無しさん
2019/03/24(日) 13:50:50.08ID:ynFGlX0q767デフォルトの名無しさん
2019/03/24(日) 13:56:04.93ID:xOvhcY6B >>766
5つのタスクでそれぞれ5つの工程があるってことだろう
5つのタスクでそれぞれ5つの工程があるってことだろう
768デフォルトの名無しさん
2019/03/24(日) 14:40:55.72ID:ynFGlX0q >>767
その辺の制限やルールが書かれていないからどうやれば良いのかが分からない、ということ。
順序も何もかも(マシン番号と所要時間も)入れ替えて構わないなら0〜4のマシン全体に所要時間を平均的に
詰め込むだけになると思うが、わざわざジョブとか分けてるんだからどうやらそうではなさそうだよな。
どうやら順序や入れ替えには制限があるように見える。しかしその制限が書かれていない。
その辺の制限やルールが書かれていないからどうやれば良いのかが分からない、ということ。
順序も何もかも(マシン番号と所要時間も)入れ替えて構わないなら0〜4のマシン全体に所要時間を平均的に
詰め込むだけになると思うが、わざわざジョブとか分けてるんだからどうやらそうではなさそうだよな。
どうやら順序や入れ替えには制限があるように見える。しかしその制限が書かれていない。
769デフォルトの名無しさん
2019/03/24(日) 17:03:38.93ID:Ou399CfX770デフォルトの名無しさん
2019/03/24(日) 17:35:40.10ID:Ou399CfX >>769
途中結果
Solution 4
COST_TIME: 95
0 : ( 3, 0, 10), ( 4, 15, 25), ( 2, 27, 39), ( 0, 46, 64), ( 1, 65, 69)
1 : ( 1, 0, 11), ( 2, 40, 46), ( 3, 54, 56), ( 4, 57, 65), ( 0, 80, 95)
2 : ( 2, 16, 26), ( 4, 27, 43), ( 3, 44, 46), ( 1, 47, 55), ( 0, 65, 79)
3 : ( 2, 0, 15), ( 1, 16, 28), ( 0, 29, 45), ( 3, 47, 53), ( 4, 66, 83)
4 : ( 4, 0, 14), ( 0, 15, 17), ( 1, 29, 44), ( 2, 47, 53), ( 3, 57, 67)
MACHIN Schedule
0 : (46, 64), (80, 95), (65, 79), (29, 45), (15, 17)
1 : (65, 69), ( 0, 11), (47, 55), (16, 28), (29, 44)
2 : (27, 39), (40, 46), (16, 26), ( 0, 15), (47, 53)
3 : ( 0, 10), (54, 56), (44, 46), (47, 53), (57, 67)
4 : (15, 25), (57, 65), (27, 43), (66, 83), ( 0, 14)
途中結果
Solution 4
COST_TIME: 95
0 : ( 3, 0, 10), ( 4, 15, 25), ( 2, 27, 39), ( 0, 46, 64), ( 1, 65, 69)
1 : ( 1, 0, 11), ( 2, 40, 46), ( 3, 54, 56), ( 4, 57, 65), ( 0, 80, 95)
2 : ( 2, 16, 26), ( 4, 27, 43), ( 3, 44, 46), ( 1, 47, 55), ( 0, 65, 79)
3 : ( 2, 0, 15), ( 1, 16, 28), ( 0, 29, 45), ( 3, 47, 53), ( 4, 66, 83)
4 : ( 4, 0, 14), ( 0, 15, 17), ( 1, 29, 44), ( 2, 47, 53), ( 3, 57, 67)
MACHIN Schedule
0 : (46, 64), (80, 95), (65, 79), (29, 45), (15, 17)
1 : (65, 69), ( 0, 11), (47, 55), (16, 28), (29, 44)
2 : (27, 39), (40, 46), (16, 26), ( 0, 15), (47, 53)
3 : ( 0, 10), (54, 56), (44, 46), (47, 53), (57, 67)
4 : (15, 25), (57, 65), (27, 43), (66, 83), ( 0, 14)
771デフォルトの名無しさん
2019/03/24(日) 20:02:05.47ID:TWBa+gHA772デフォルトの名無しさん
2019/03/24(日) 22:58:01.17ID:3fqiTHWE773デフォルトの名無しさん
2019/03/25(月) 12:18:06.31ID:7aW5s/71 ……プログラミングやっててガントチャートしらないヤツもいるのか
勉強になった
勉強になった
774デフォルトの名無しさん
2019/03/25(月) 12:23:06.98ID:T0osdeZX 名前知らなかっただけでは?
775デフォルトの名無しさん
2019/03/25(月) 12:26:24.36ID:VWPF1Bqz ロシア国防省「東アジアの地震の多い某国は数十年にわたり、地震を偽装した地下核実験を繰り返している」
https://rosie.5ch.net/test/read.cgi/liveplus/1550888671/l50
自衛隊の中に熊本人工地震を発生させた連中がいることは震源地が自衛隊駐屯地地下であることから自明。
http://open.mixi.jp/user/38378433/diary/1953066799
そればかりか、いま熊本の地下から出ている放射線量が「謎の赤丸急上昇中」だというのだ。
https://quasimoto2.exblog.jp/22729487/
今、自民党政権が、原発再稼働を進めている本当の理由は、核武装計画だけである。
経済的にとっくに破綻した原子力発電など、最初から眼中にないのだ。
東海アマブログentry-688.html
https://rosie.5ch.net/test/read.cgi/liveplus/1550888671/l50
自衛隊の中に熊本人工地震を発生させた連中がいることは震源地が自衛隊駐屯地地下であることから自明。
http://open.mixi.jp/user/38378433/diary/1953066799
そればかりか、いま熊本の地下から出ている放射線量が「謎の赤丸急上昇中」だというのだ。
https://quasimoto2.exblog.jp/22729487/
今、自民党政権が、原発再稼働を進めている本当の理由は、核武装計画だけである。
経済的にとっくに破綻した原子力発電など、最初から眼中にないのだ。
東海アマブログentry-688.html
776デフォルトの名無しさん
2019/03/25(月) 14:02:28.57ID:FL0Sj0Av いちいちガントチャートなんて銘打たんしな
進捗管理するときには普通に使うもんだ
進捗管理するときには普通に使うもんだ
777デフォルトの名無しさん
2019/03/25(月) 14:57:20.21ID:T0osdeZX みんな名前知らないけど気づいたら作ってるようなものじゃないか?
778デフォルトの名無しさん
2019/03/25(月) 21:13:29.59ID:wbp6GG9F ナップザック問題の一種じゃないの?
779デフォルトの名無しさん
2019/03/26(火) 00:12:39.41ID:xyG5xdoY お題1: 整数値に対して K, M, G 等の単位を付けて人間に読みやすく文字列に変換して出力する。(ls -lh の時の容量の出力と同じで良い)。2^10 = K, 2^20 = M, 2^30 = G とする。
小数点以下を何桁にするかはご自由に。但しあまりあり過ぎると人間には分かり辛いので1桁か2桁が望ましい。
お題2: お題1の逆変換。但し欠落した下位桁があったとしても考慮しなくて良い。
お題3: お題1, お題2 の10^3 = K, 10^6 = M, 10^9 = G 版。
回答のプログラムはまとめた形でも良い。例えばお題1を処理する関数のオプションとして0を与えると2^10単位、1を与えると10^3単位にするなど。
また、K, M, G よりも上の単位ができても良い。
小数点以下を何桁にするかはご自由に。但しあまりあり過ぎると人間には分かり辛いので1桁か2桁が望ましい。
お題2: お題1の逆変換。但し欠落した下位桁があったとしても考慮しなくて良い。
お題3: お題1, お題2 の10^3 = K, 10^6 = M, 10^9 = G 版。
回答のプログラムはまとめた形でも良い。例えばお題1を処理する関数のオプションとして0を与えると2^10単位、1を与えると10^3単位にするなど。
また、K, M, G よりも上の単位ができても良い。
780デフォルトの名無しさん
2019/03/26(火) 03:32:10.56ID:xI3rzKRA いまどき容量系の接頭辞はKi, Mi, Gi使えや
781デフォルトの名無しさん
2019/03/26(火) 03:42:21.20ID:xyG5xdoY >>780
そうしたければそうしてもいいよ。
そうしたければそうしてもいいよ。
782デフォルトの名無しさん
2019/03/26(火) 13:05:28.20ID:8ujFPLE9 お題1と3まとめてswitch-case文って
筋悪いですかねえ
あるいはお題1とお題2をまとめて、enum型でINVERSEとか作るとか、あるいは TRUE / FALSE で分岐とか
筋悪いですかねえ
あるいはお題1とお題2をまとめて、enum型でINVERSEとか作るとか、あるいは TRUE / FALSE で分岐とか
783デフォルトの名無しさん
2019/03/26(火) 19:22:41.61ID:NbUyZWCM 誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 95286
https://you-can-program.hatenablog.jp
https://you-can-program.hatenablog.jp
784デフォルトの名無しさん
2019/03/27(水) 00:34:27.07ID:KJlt8YQv785デフォルトの名無しさん
2019/03/27(水) 23:48:37.99ID:oM4knkxt786さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/28(木) 00:18:20.27ID:JS1PpMcc Windows付属のshlwapi.dllにStrFormatByteSizeという関数があるようだね。
787デフォルトの名無しさん
2019/03/28(木) 17:17:39.60ID:vvqhH31/788デフォルトの名無しさん
2019/03/30(土) 20:23:23.36ID:ghZBhzgh お題
表示画面におさまる最大の正三角形を描画する
表示画面におさまる最大の正三角形を描画する
789デフォルトの名無しさん
2019/03/30(土) 23:07:23.94ID:DyxzEuK/ つまらん次
790デフォルトの名無しさん
2019/03/31(日) 08:20:57.83ID:JrOSOdLx >>788
最大の定義ぐらい書けよ…
最大の定義ぐらい書けよ…
791デフォルトの名無しさん
2019/03/31(日) 13:16:21.13ID:m8dr8/PB792デフォルトの名無しさん
2019/03/31(日) 13:25:41.80ID:+5DxT57L ん?
その場合、一辺は400*2/sqrt(3)になるんじゃない?
その場合、一辺は400*2/sqrt(3)になるんじゃない?
793デフォルトの名無しさん
2019/03/31(日) 13:28:01.88ID:EfWeZY5f >>791
高さ400の正三角形だと一辺461.88じゃね?
高さ400の正三角形だと一辺461.88じゃね?
794デフォルトの名無しさん
2019/03/31(日) 15:30:18.52ID:uX30LzG9 怒涛のツッコミw
795デフォルトの名無しさん
2019/03/31(日) 19:30:51.59ID:KJRyWF55 コンソール画面なら、画面の横幅と縦幅を取得しなきゃならんから言語によってはめんどくさいだろうな
標準でcurses使える言語ってなにがあるかな
標準でcurses使える言語ってなにがあるかな
796デフォルトの名無しさん
2019/03/31(日) 20:25:37.50ID:P4y0w1jO 表示画面が球体だったら…
797デフォルトの名無しさん
2019/04/01(月) 00:15:16.48ID:ucc1UNjR リーマン幾何の多様体上で計算しとけ
なお、サラリーマンのリーンマン じゃないからな。
なお、サラリーマンのリーンマン じゃないからな。
798デフォルトの名無しさん
2019/04/01(月) 01:51:36.50ID://wZRuJn でしゃばんな
799デフォルトの名無しさん
2019/04/01(月) 03:15:46.62ID:Mx+j7LaB Windows環境だとdirectx叩くことになるのかな
VT100とかXとかは全く知らないけど DisplayWidth とか DisplayHeight とか使うのか
あるいは何らかのクラスのメンバー関数を呼ぶのか
VT100とかXとかは全く知らないけど DisplayWidth とか DisplayHeight とか使うのか
あるいは何らかのクラスのメンバー関数を呼ぶのか
800デフォルトの名無しさん
2019/04/01(月) 03:16:52.56ID:Mx+j7LaB >>795
pdcursesがあるじゃないか(あらゆる環境で使えるとは言ってない
pdcursesがあるじゃないか(あらゆる環境で使えるとは言ってない
801デフォルトの名無しさん
2019/04/15(月) 22:24:58.61ID:pFhU6MbP エスケープシーケンスで座標指定とか文字色変更って、今はできないんだっけ?
802デフォルトの名無しさん
2019/04/15(月) 23:06:48.83ID:1nT5zSFt エスケープシーケンス powershell
で、ググってみ
で、ググってみ
803デフォルトの名無しさん
2019/04/16(火) 09:06:19.32ID:wCqxjGzR >>801
文字を出す端末による。
WindowsだったとしてもWSLでUbuntu動かした時のbashの端末では使えてるので多分設定次第なんだろうな。
逆に言うと設定によっては意図した通りに動かない。
文字を出す端末による。
WindowsだったとしてもWSLでUbuntu動かした時のbashの端末では使えてるので多分設定次第なんだろうな。
逆に言うと設定によっては意図した通りに動かない。
804デフォルトの名無しさん
2019/04/16(火) 16:33:57.42ID:wCqxjGzR お題
アミダくじの作成、表示、及び余力があれば実行
・縦線の本数と横線の最大本数は入力できるようにする。
・左右の縦線への横線だけでなく飛び越えて他の縦線へ移動する横線もオプションで作れるようにする。
・表示方法は罫線キャラクタを使っても良いがGUI等他の方法でも良い。
・実行時はアニメーションでも良いし、いきなり結果が出るだけでも良い。
・面倒なら作成して表示するだけで実行しなくても良い。
アミダくじの作成、表示、及び余力があれば実行
・縦線の本数と横線の最大本数は入力できるようにする。
・左右の縦線への横線だけでなく飛び越えて他の縦線へ移動する横線もオプションで作れるようにする。
・表示方法は罫線キャラクタを使っても良いがGUI等他の方法でも良い。
・実行時はアニメーションでも良いし、いきなり結果が出るだけでも良い。
・面倒なら作成して表示するだけで実行しなくても良い。
805デフォルトの名無しさん
2019/04/16(火) 16:45:06.33ID:GDkTCt4E N88-BASIC(86)で出来そうな気がするが
806デフォルトの名無しさん
2019/04/16(火) 17:51:22.60ID:wCqxjGzR ・PC-8001で動作すること。
いや、動かんでもいい。
いや、動かんでもいい。
807デフォルトの名無しさん
2019/04/16(火) 18:37:53.31ID:GDkTCt4E PRINT CHR$(12)
808デフォルトの名無しさん
2019/04/16(火) 18:38:10.10ID:GDkTCt4E CONSOLE 80,25,0,1
だっけ
だっけ
809デフォルトの名無しさん
2019/04/16(火) 18:40:11.47ID:GDkTCt4E 10 WIDTH 80,25
からか…
からか…
810デフォルトの名無しさん
2019/04/16(火) 18:46:35.84ID:GDkTCt4E DEFINTA-Z:PRINT"HOW MANY COLUMNS":INPUTA:A0=160/A
811デフォルトの名無しさん
2019/04/18(木) 19:26:49.12ID:pJc8eu0c お題:要素数が同じふたつの数値配列を受け取り、要素ごとに足した配列を返す。
中級:同様に、三つの配列を受け取る。
上級:同様に、三つの配列を受け取り、掛けて割ったもの返す。
ocaml
https://ideone.com/GyC6yJ
octave
https://ideone.com/NwYyqs
中級:同様に、三つの配列を受け取る。
上級:同様に、三つの配列を受け取り、掛けて割ったもの返す。
ocaml
https://ideone.com/GyC6yJ
octave
https://ideone.com/NwYyqs
812デフォルトの名無しさん
2019/04/18(木) 21:28:55.51ID:47ewAOC/ 簡単過ぎる、次
813デフォルトの名無しさん
2019/04/18(木) 23:26:27.73ID:izaVyiw1 >>811 Squeak/Pharo Smalltalk
#(1 2 3) + #(4 5 6). "=> #(5 7 9) "
#((1 2 3) (4 5 6) (7 8 9)) sum. "=> #(12 15 18) "
#(1 2 3) * #(4 5 6) / #(7 8 9). "=> {(4/7) . (5/4) . 2} "
#(1 2 3) + #(4 5 6). "=> #(5 7 9) "
#((1 2 3) (4 5 6) (7 8 9)) sum. "=> #(12 15 18) "
#(1 2 3) * #(4 5 6) / #(7 8 9). "=> {(4/7) . (5/4) . 2} "
814デフォルトの名無しさん
2019/04/19(金) 00:02:01.58ID:ODUYGH1G お題そのものは簡単でも、マイナー言語での解き方を見るのは面白いね
815デフォルトの名無しさん
2019/04/19(金) 00:09:49.99ID:fWzUUJvd 自演乙
816デフォルトの名無しさん
2019/04/19(金) 07:15:46.60ID:TxABBsFf >>811
main = do
print $ zipWith (+) [1,2,3] [4,5,6]
print $ zipWith3 (\a b c -> a + b + c) [1,2,3] [4,5,6] [7,8,9]
print $ zipWith3 (\a b c -> a * b / c) [1,2,3] [4,5,6] [7,8,9]
Out:
[5,7,9]
[12,15,18]
[0.571428571428571,1.25,2.0]
main = do
print $ zipWith (+) [1,2,3] [4,5,6]
print $ zipWith3 (\a b c -> a + b + c) [1,2,3] [4,5,6] [7,8,9]
print $ zipWith3 (\a b c -> a * b / c) [1,2,3] [4,5,6] [7,8,9]
Out:
[5,7,9]
[12,15,18]
[0.571428571428571,1.25,2.0]
817デフォルトの名無しさん
2019/04/19(金) 08:40:44.50ID:TxABBsFf >>813
Haskellでは%記号が分数を表すので、Data.Ratioをインポートして
import Data.Ratio
main = do
print $ zipWith (+) [1,2,3] [4,5,6]
print $ zipWith3 (\a b c -> a + b + c) [1,2,3] [4,5,6] [7,8,9]
print $ zipWith3 (\a b c -> a * b % c) [1,2,3] [4,5,6] [7,8,9]
Out:
[5,7,9]
[12,15,18]
[4 % 7,5 % 4,2 % 1]
Haskellでは%記号が分数を表すので、Data.Ratioをインポートして
import Data.Ratio
main = do
print $ zipWith (+) [1,2,3] [4,5,6]
print $ zipWith3 (\a b c -> a + b + c) [1,2,3] [4,5,6] [7,8,9]
print $ zipWith3 (\a b c -> a * b % c) [1,2,3] [4,5,6] [7,8,9]
Out:
[5,7,9]
[12,15,18]
[4 % 7,5 % 4,2 % 1]
818デフォルトの名無しさん
2019/04/20(土) 12:21:00.80ID:R45IcBKG お題:円の中心の座標と、円の半径の2乗が与えられる。
この円の円周上にある格子点の数を求めよ。
(X座標 Y座標 半径の2乗)
9/22 5/22 138125/242 => 7
7/38 5/38 785817263725/722 => 77
17/38 13/38 13603053979519731025/722 => 777
9/38 6/38 23959256988683736880737131790625/1444 => ?
12/38 7/38 23959256988683736880737131790625/1444 => ?
15/38 14/38 23959256988683736880737131790625/1444 => ?
この円の円周上にある格子点の数を求めよ。
(X座標 Y座標 半径の2乗)
9/22 5/22 138125/242 => 7
7/38 5/38 785817263725/722 => 77
17/38 13/38 13603053979519731025/722 => 777
9/38 6/38 23959256988683736880737131790625/1444 => ?
12/38 7/38 23959256988683736880737131790625/1444 => ?
15/38 14/38 23959256988683736880737131790625/1444 => ?
819デフォルトの名無しさん
2019/04/20(土) 18:57:22.37ID:4zW2+iPl また数学か・・・
820デフォルトの名無しさん
2019/04/20(土) 19:51:50.54ID:JrfgKJuX しょっちゅう出てくるけどこれ宿題か?
821デフォルトの名無しさん
2019/04/20(土) 23:55:49.29ID:R45IcBKG 宿題じゃないんやけどなー
12/38 7/38 23959256988683736880737131790625/1444 => ? の答えと円周上の格子点一覧…俺が間違えてなければ
https://pastebin.com/pnGbWPfM
12/38 7/38 23959256988683736880737131790625/1444 => ? の答えと円周上の格子点一覧…俺が間違えてなければ
https://pastebin.com/pnGbWPfM
822デフォルトの名無しさん
2019/04/21(日) 00:12:56.57ID:E83GoNC+ コードを出せコードを!
823デフォルトの名無しさん
2019/04/21(日) 01:28:16.84ID:TAIIcaTj プログラムでの解き方が思い付かないわ
円の方程式に整数代入して満たすかみればいいのか?
円の方程式に整数代入して満たすかみればいいのか?
824デフォルトの名無しさん
2019/04/21(日) 02:14:46.56ID:H/Se0iAi 解法を考えるのも回答能力のうちだからね
今の時代、参照・検索も当然 可だけれど
今の時代、参照・検索も当然 可だけれど
825デフォルトの名無しさん
2019/04/21(日) 06:09:56.50ID:/+hkU7cH >>817
割り算が%とか、そのモジュール書いた奴、頭腐ってんじゃないの?
割り算が%とか、そのモジュール書いた奴、頭腐ってんじゃないの?
826デフォルトの名無しさん
2019/04/21(日) 13:14:42.53ID:ay9waDdy827デフォルトの名無しさん
2019/04/21(日) 14:45:56.49ID:/+hkU7cH やっぱ頭腐ってるな。
828デフォルトの名無しさん
2019/04/24(水) 20:43:26.25ID:NALZs80Z お題: 日本語の文章の句読点を , や . に置き換える。
ただし、, や . の直後には半角のスペースを置き、さらに改行の手前や文末のスペースは削除すること。
例:
In < これは、日本語の文章です。ふひひ。
Out > これは, 日本語の文章です. ふひひ.
ただし、, や . の直後には半角のスペースを置き、さらに改行の手前や文末のスペースは削除すること。
例:
In < これは、日本語の文章です。ふひひ。
Out > これは, 日本語の文章です. ふひひ.
829デフォルトの名無しさん
2019/04/24(水) 20:50:03.68ID:WcGowxU3 しょうもな
830デフォルトの名無しさん
2019/04/24(水) 20:51:59.82ID:Y8OSWYHv 文末のスペースが消えてないやん
どっちやねん
どっちやねん
831デフォルトの名無しさん
2019/04/24(水) 20:52:14.50ID:NALZs80Z お題: 簡易なテーブルを綺麗に整形する
余力があればカラムの左揃え、右揃えをオプションで選択できるようにする(出力は中央揃え)
入力:
a|aaaaa|bb
ccc|ddd|ee
出力:
**a***|*aaaaa*|***bb*
------+-------+------
*ccc**|**ddd**|***ee*
余力があればカラムの左揃え、右揃えをオプションで選択できるようにする(出力は中央揃え)
入力:
a|aaaaa|bb
ccc|ddd|ee
出力:
**a***|*aaaaa*|***bb*
------+-------+------
*ccc**|**ddd**|***ee*
832デフォルトの名無しさん
2019/04/24(水) 20:54:35.53ID:NALZs80Z833デフォルトの名無しさん
2019/04/24(水) 21:01:38.43ID:Y8OSWYHv bとeが中央じゃなくね
834デフォルトの名無しさん
2019/04/24(水) 21:05:36.09ID:NALZs80Z >>833
例に使ったスクリプトがバグってた
例に使ったスクリプトがバグってた
835デフォルトの名無しさん
2019/04/24(水) 22:36:14.15ID:lwqMqFKi 左のaとcもおかしい
836デフォルトの名無しさん
2019/04/24(水) 23:50:33.64ID:NSCbK96M 各列の文字数は一致する必要があるのか
837デフォルトの名無しさん
2019/04/25(木) 04:26:28.66ID:D6NtakiX838デフォルトの名無しさん
2019/04/25(木) 05:01:51.18ID:XVamjpPA >>837
ASCIIのみで
ASCIIのみで
839デフォルトの名無しさん
2019/04/25(木) 07:44:22.82ID:XVamjpPA840デフォルトの名無しさん
2019/04/25(木) 10:34:23.81ID:J1W60oTI 「綺麗」とか言うお気持ちワードが入るとダメだな
841デフォルトの名無しさん
2019/04/25(木) 10:41:43.51ID:aGd2Nt87 「楽しいプログラミング」w
「美しく書ける」ww
「美しく書ける」ww
842デフォルトの名無しさん
2019/04/25(木) 12:39:16.14ID:J1W60oTI 何がキレイなのか定義出来ず言うことが主観でコロコロ変わる、マジで今の日本のサイコパス上司そのものだ
「オレの心情をさっしろ」みたいな屑がいいそうなこと
頭が悪いから定義が出来ないし自分の言ってることが支離滅裂になってる
曖昧な用語(綺麗)で押し通そうとする
コレ全部サイコパスの特徴
「オレの心情をさっしろ」みたいな屑がいいそうなこと
頭が悪いから定義が出来ないし自分の言ってることが支離滅裂になってる
曖昧な用語(綺麗)で押し通そうとする
コレ全部サイコパスの特徴
843デフォルトの名無しさん
2019/04/25(木) 13:02:10.38ID:pYdb89HV 美を定義できる人間がいるなら会いたいものだ
844デフォルトの名無しさん
2019/04/25(木) 13:47:48.74ID:BUlwZIC7 >>843
プラトンのスュンポスィオーンって本で定義されてたぞ
プラトンのスュンポスィオーンって本で定義されてたぞ
845デフォルトの名無しさん
2019/04/25(木) 16:18:28.13ID:ThHN2jz5 美しいコードなんて求められてない。小学生でも知ってる。
https://tr.twipple.jp/ps/3f/af4715.html
https://tr.twipple.jp/ps/3f/af4715.html
846デフォルトの名無しさん
2019/04/25(木) 18:30:28.28ID:/IwwINNy 美しい半角カナ
847デフォルトの名無しさん
2019/04/25(木) 18:35:37.23ID:/IwwINNy >>844
倉橋由美子のが面白かったと思っています
倉橋由美子のが面白かったと思っています
849デフォルトの名無しさん
2019/04/25(木) 22:32:18.97ID:siWhi4pR >>847
そんなに日本語使いたいならなでしこでも書いとけ
そんなに日本語使いたいならなでしこでも書いとけ
850デフォルトの名無しさん
2019/04/25(木) 22:33:30.90ID:X6smEgNz851デフォルトの名無しさん
2019/04/25(木) 23:27:23.78ID:jZ4+eHeJ 今時C++とかでも普通に日本語識別子使えるだろ…
852デフォルトの名無しさん
2019/04/25(木) 23:39:11.26ID:D6NtakiX853デフォルトの名無しさん
2019/04/26(金) 18:55:29.49ID:YRtkzMZR >>831
Kotlin
https://paiza.io/projects/RCbBPGrxaB1uoB-tj_1hJg
入力は1行目に 0, 1, 2 の何れかのオプションを指定する。
意味は 0=中央、1=左寄せ、2=右寄せ になっている。
2行目からは | 区切りで文字列を入れる。
空行またはファイルの終わりで表を出力する。
空行だった場合はまた次の表の最初のオプションから入れられる。
Kotlin
https://paiza.io/projects/RCbBPGrxaB1uoB-tj_1hJg
入力は1行目に 0, 1, 2 の何れかのオプションを指定する。
意味は 0=中央、1=左寄せ、2=右寄せ になっている。
2行目からは | 区切りで文字列を入れる。
空行またはファイルの終わりで表を出力する。
空行だった場合はまた次の表の最初のオプションから入れられる。
854デフォルトの名無しさん
2019/04/26(金) 19:49:06.87ID:RVSBatxL855853
2019/04/27(土) 04:31:22.65ID:dVFnhFQW >>854
違うよ。俺はもっと上の方であみだくじのお題を出したやつだよ。
自分でもプログラム作るには作ったけど表示するところまでだな。
しかしブラウザの実行環境で表示すると罫線の幅の問題でずれるので画像で出力しようかと思っている。
これな。
https://paiza.io/projects/2mINZHiEB6ciPWHEpkCJig
違うよ。俺はもっと上の方であみだくじのお題を出したやつだよ。
自分でもプログラム作るには作ったけど表示するところまでだな。
しかしブラウザの実行環境で表示すると罫線の幅の問題でずれるので画像で出力しようかと思っている。
これな。
https://paiza.io/projects/2mINZHiEB6ciPWHEpkCJig
856デフォルトの名無しさん
2019/04/27(土) 15:02:49.57ID:TtYrpMGa お題:ジョブショップスケジューリングの問題です。
int job_param[JOBNUM][STP][2] = {
{{4, 342}, {1, 244}, {2, 351}, {3, 293}, {0, 342}}, // 1572
{{2, 306}, {4, 342}, {3, 386}, {1, 386}, {0, 413}}, // 1833
{{3, 168}, {0, 266}, {2, 182}, {1, 106}, {4, 368}}, // 1090
{{3, 368}, {2, 151}, {4, 284}, {0, 84}, {1, 164}}, // 1051
{{4, 240}, {1, 191}, {0, 351}, {3, 408}, {2, 275}}, // 1465
{{2, 342}, {3, 351}, {4, 191}, {0, 333}, {1, 426}}, // 1643
{{0, 93}, {1, 235}, {2, 422}, {3, 244}, {4, 151}}, // 1145
{{0, 75}, {4, 217}, {1, 111}, {3, 195}, {2, 435}}, // 1033
{{2, 173}, {4, 435}, {3, 186}, {1, 137}, {0, 53}}, // 984
{{1, 93}, {2, 231}, {4, 71}, {3, 115}, {0, 315}}}; // 825
int job_param[JOBNUM][STP][2] = {
{{4, 342}, {1, 244}, {2, 351}, {3, 293}, {0, 342}}, // 1572
{{2, 306}, {4, 342}, {3, 386}, {1, 386}, {0, 413}}, // 1833
{{3, 168}, {0, 266}, {2, 182}, {1, 106}, {4, 368}}, // 1090
{{3, 368}, {2, 151}, {4, 284}, {0, 84}, {1, 164}}, // 1051
{{4, 240}, {1, 191}, {0, 351}, {3, 408}, {2, 275}}, // 1465
{{2, 342}, {3, 351}, {4, 191}, {0, 333}, {1, 426}}, // 1643
{{0, 93}, {1, 235}, {2, 422}, {3, 244}, {4, 151}}, // 1145
{{0, 75}, {4, 217}, {1, 111}, {3, 195}, {2, 435}}, // 1033
{{2, 173}, {4, 435}, {3, 186}, {1, 137}, {0, 53}}, // 984
{{1, 93}, {2, 231}, {4, 71}, {3, 115}, {0, 315}}}; // 825
857デフォルトの名無しさん
2019/04/27(土) 16:10:46.35ID:nhVWQaIp 宿題は自分でやれ
858デフォルトの名無しさん
2019/04/27(土) 16:24:49.19ID:VMurKVDA まずジョブスケジューリングが何か説明してもらおう
859デフォルトの名無しさん
2019/04/27(土) 17:28:59.65ID:PUfIYz8D 適当に詰めて行くプログラムで2928まではなった
h0 0-75 g0 75-168 c1 168-434 e2 434-785 j4 1002-1317 d3 1505-1589 f3 1696-2029 b4 2029-2442 a4 2442-2784 i4 2875-2928
j0 0-93 e1 240-431 h2 457-568 a1 799-1043 g1 1043-1278 c3 1385-1491 b3 1607-1993 d4 1993-2157 f4 2157-2583 i3 2738-2875
f0 0-342 j1 342-573 b0 573-879 i0 879-1052 d1 1052-1203 c2 1203-1385 a2 1385-1736 g2 1736-2158 e4 2158-2433 h4 2433-2868
c0 0-168 d0 168-536 f1 536-887 j3 887-1002 h3 1002-1197 b2 1221-1607 e3 1607-2015 a3 2015-2308 g3 2308-2552 i2 2552-2738
e0 0-240 h1 240-457 a0 457-799 j2 799-870 b1 879-1221 d2 1221-1505 f2 1505-1696 c4 1696-2064 i1 2064-2499 g4 2552-2703
h0 0-75 g0 75-168 c1 168-434 e2 434-785 j4 1002-1317 d3 1505-1589 f3 1696-2029 b4 2029-2442 a4 2442-2784 i4 2875-2928
j0 0-93 e1 240-431 h2 457-568 a1 799-1043 g1 1043-1278 c3 1385-1491 b3 1607-1993 d4 1993-2157 f4 2157-2583 i3 2738-2875
f0 0-342 j1 342-573 b0 573-879 i0 879-1052 d1 1052-1203 c2 1203-1385 a2 1385-1736 g2 1736-2158 e4 2158-2433 h4 2433-2868
c0 0-168 d0 168-536 f1 536-887 j3 887-1002 h3 1002-1197 b2 1221-1607 e3 1607-2015 a3 2015-2308 g3 2308-2552 i2 2552-2738
e0 0-240 h1 240-457 a0 457-799 j2 799-870 b1 879-1221 d2 1221-1505 f2 1505-1696 c4 1696-2064 i1 2064-2499 g4 2552-2703
860デフォルトの名無しさん
2019/04/27(土) 17:44:35.53ID:PUfIYz8D 今2889になってたけどSegmentation faultで落ちてた
前回のやつでJOBNUMとかSTPとかをわざわざ直接5 5とか書いてて
今回どんなコードかもう忘れて片方を適当に10に直したからか元からバグがあったのか分からないけど
結果自体は間違ってなそうだと思うけど
前回のやつでJOBNUMとかSTPとかをわざわざ直接5 5とか書いてて
今回どんなコードかもう忘れて片方を適当に10に直したからか元からバグがあったのか分からないけど
結果自体は間違ってなそうだと思うけど
861818
2019/04/27(土) 18:03:52.53ID:63A0HxGX862デフォルトの名無しさん
2019/04/28(日) 08:12:15.68ID:3xnz0I0C >>856
COST_TIME: 2932
0 : ( 4, 457, 799), ( 1, 800, 1044), ( 2, 1275, 1626), ( 3, 2017, 2310), ( 0, 2417, 2759)
1 : ( 2, 573, 879), ( 4, 880, 1222), ( 3, 1223, 1609), ( 1, 1610, 1996), ( 0, 2004, 2417)
2 : ( 3, 0, 168), ( 0, 784, 1050), ( 2, 1093, 1275), ( 1, 1279, 1385), ( 4, 2389, 2757)
3 : ( 3, 168, 536), ( 2, 942, 1093), ( 4, 1586, 1870), ( 0, 1920, 2004), ( 1, 2473, 2637)
4 : ( 4, 0, 240), ( 1, 241, 432), ( 0, 433, 784), ( 3, 1609, 2017), ( 2, 2221, 2496)
5 : ( 2, 0, 342), ( 3, 536, 887), ( 4, 1395, 1586), ( 0, 1587, 1920), ( 1, 2047, 2473)
6 : ( 0, 75, 168), ( 1, 1044, 1279), ( 2, 1799, 2221), ( 3, 2310, 2554), ( 4, 2757, 2908)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 458, 569), ( 3, 892, 1087), ( 2, 2496, 2931)
8 : ( 2, 1626, 1799), ( 4, 1954, 2389), ( 3, 2554, 2740), ( 1, 2741, 2878), ( 0, 2879, 2932)
9 : ( 1, 0, 93), ( 2, 342, 573), ( 4, 799, 870), ( 3, 1087, 1202), ( 0, 1203, 1518)
MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 433, 784), ( 2, 784, 1050), ( 9, 1203, 1518), ( 5, 1587, 1920), ( 3, 1920, 2004), ( 1, 2004, 2417), ( 0, 2417, 2759), ( 8, 2879, 2932)
1 : ( 9, 0, 93), ( 4, 241, 432), ( 7, 458, 569), ( 0, 800, 1044), ( 6, 1044, 1279), ( 2, 1279, 1385), ( 1, 1610, 1996), ( 5, 2047, 2473), ( 3, 2473, 2637), ( 8, 2741, 2878)
2 : ( 5, 0, 342), ( 9, 342, 573), ( 1, 573, 879), ( 3, 942, 1093), ( 2, 1093, 1275), ( 0, 1275, 1626), ( 8, 1626, 1799), ( 6, 1799, 2221), ( 4, 2221, 2496), ( 7, 2496, 2931)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 892, 1087), ( 9, 1087, 1202), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017, 2310), ( 6, 2310, 2554), ( 8, 2554, 2740)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 0, 457, 799), ( 9, 799, 870), ( 1, 880, 1222), ( 5, 1395, 1586), ( 3, 1586, 1870), ( 8, 1954, 2389), ( 2, 2389, 2757), ( 6, 2757, 2908)
COST_TIME: 2932
0 : ( 4, 457, 799), ( 1, 800, 1044), ( 2, 1275, 1626), ( 3, 2017, 2310), ( 0, 2417, 2759)
1 : ( 2, 573, 879), ( 4, 880, 1222), ( 3, 1223, 1609), ( 1, 1610, 1996), ( 0, 2004, 2417)
2 : ( 3, 0, 168), ( 0, 784, 1050), ( 2, 1093, 1275), ( 1, 1279, 1385), ( 4, 2389, 2757)
3 : ( 3, 168, 536), ( 2, 942, 1093), ( 4, 1586, 1870), ( 0, 1920, 2004), ( 1, 2473, 2637)
4 : ( 4, 0, 240), ( 1, 241, 432), ( 0, 433, 784), ( 3, 1609, 2017), ( 2, 2221, 2496)
5 : ( 2, 0, 342), ( 3, 536, 887), ( 4, 1395, 1586), ( 0, 1587, 1920), ( 1, 2047, 2473)
6 : ( 0, 75, 168), ( 1, 1044, 1279), ( 2, 1799, 2221), ( 3, 2310, 2554), ( 4, 2757, 2908)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 458, 569), ( 3, 892, 1087), ( 2, 2496, 2931)
8 : ( 2, 1626, 1799), ( 4, 1954, 2389), ( 3, 2554, 2740), ( 1, 2741, 2878), ( 0, 2879, 2932)
9 : ( 1, 0, 93), ( 2, 342, 573), ( 4, 799, 870), ( 3, 1087, 1202), ( 0, 1203, 1518)
MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 433, 784), ( 2, 784, 1050), ( 9, 1203, 1518), ( 5, 1587, 1920), ( 3, 1920, 2004), ( 1, 2004, 2417), ( 0, 2417, 2759), ( 8, 2879, 2932)
1 : ( 9, 0, 93), ( 4, 241, 432), ( 7, 458, 569), ( 0, 800, 1044), ( 6, 1044, 1279), ( 2, 1279, 1385), ( 1, 1610, 1996), ( 5, 2047, 2473), ( 3, 2473, 2637), ( 8, 2741, 2878)
2 : ( 5, 0, 342), ( 9, 342, 573), ( 1, 573, 879), ( 3, 942, 1093), ( 2, 1093, 1275), ( 0, 1275, 1626), ( 8, 1626, 1799), ( 6, 1799, 2221), ( 4, 2221, 2496), ( 7, 2496, 2931)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 892, 1087), ( 9, 1087, 1202), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017, 2310), ( 6, 2310, 2554), ( 8, 2554, 2740)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 0, 457, 799), ( 9, 799, 870), ( 1, 880, 1222), ( 5, 1395, 1586), ( 3, 1586, 1870), ( 8, 1954, 2389), ( 2, 2389, 2757), ( 6, 2757, 2908)
863デフォルトの名無しさん
2019/04/28(日) 19:46:09.95ID:4L316qYF COST_TIME: 2868
0 : ( 4, 457, 799), ( 1, 800, 1044), ( 2, 1212, 1563), ( 3, 2017, 2310), ( 0, 2410, 2752)
1 : ( 2, 573, 879), ( 4, 880, 1222), ( 3, 1223, 1609), ( 1, 1610, 1996), ( 0, 1997, 2410)
2 : ( 3, 0, 168), ( 0, 169, 435), ( 2, 1030, 1212), ( 1, 1213, 1319), ( 4, 2326, 2694)
3 : ( 3, 168, 536), ( 2, 879, 1030), ( 4, 1523, 1807), ( 0, 1857, 1941), ( 1, 2703, 2867)
4 : ( 4, 0, 240), ( 1, 241, 432), ( 0, 435, 786), ( 3, 1609, 2017), ( 2, 2158, 2433)
5 : ( 2, 0, 342), ( 3, 536, 887), ( 4, 1332, 1523), ( 0, 1524, 1857), ( 1, 1996, 2422)
6 : ( 0, 75, 168), ( 1, 1319, 1554), ( 2, 1736, 2158), ( 3, 2310, 2554), ( 4, 2694, 2845)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 458, 569), ( 3, 887, 1082), ( 2, 2433, 2868)
8 : ( 2, 1563, 1736), ( 4, 1891, 2326), ( 3, 2379, 2565), ( 1, 2566, 2703), ( 0, 2752, 2805)
9 : ( 1, 0, 93), ( 2, 342, 573), ( 4, 799, 870), ( 3, 1082, 1197), ( 0, 1198, 1513)
MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 169, 435), ( 4, 435, 786), ( 9, 1198, 1513), ( 5, 1524, 1857), ( 3, 1857, 1941), ( 1, 1997, 2410), ( 0, 2410, 2752), ( 8, 2752, 2805)
1 : ( 9, 0, 93), ( 4, 241, 432), ( 7, 458, 569), ( 0, 800, 1044), ( 2, 1213, 1319), ( 6, 1319, 1554), ( 1, 1610, 1996), ( 5, 1996, 2422), ( 8, 2566, 2703), ( 3, 2703, 2867)
2 : ( 5, 0, 342), ( 9, 342, 573), ( 1, 573, 879), ( 3, 879, 1030), ( 2, 1030, 1212), ( 0, 1212, 1563), ( 8, 1563, 1736), ( 6, 1736, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 887, 1082), ( 9, 1082, 1197), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017, 2310), ( 6, 2310, 2554), ( 8, 2379, 2565)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 0, 457, 799), ( 9, 799, 870), ( 1, 880, 1222), ( 5, 1332, 1523), ( 3, 1523, 1807), ( 8, 1891, 2326), ( 2, 2326, 2694), ( 6, 2694, 2845)
0 : ( 4, 457, 799), ( 1, 800, 1044), ( 2, 1212, 1563), ( 3, 2017, 2310), ( 0, 2410, 2752)
1 : ( 2, 573, 879), ( 4, 880, 1222), ( 3, 1223, 1609), ( 1, 1610, 1996), ( 0, 1997, 2410)
2 : ( 3, 0, 168), ( 0, 169, 435), ( 2, 1030, 1212), ( 1, 1213, 1319), ( 4, 2326, 2694)
3 : ( 3, 168, 536), ( 2, 879, 1030), ( 4, 1523, 1807), ( 0, 1857, 1941), ( 1, 2703, 2867)
4 : ( 4, 0, 240), ( 1, 241, 432), ( 0, 435, 786), ( 3, 1609, 2017), ( 2, 2158, 2433)
5 : ( 2, 0, 342), ( 3, 536, 887), ( 4, 1332, 1523), ( 0, 1524, 1857), ( 1, 1996, 2422)
6 : ( 0, 75, 168), ( 1, 1319, 1554), ( 2, 1736, 2158), ( 3, 2310, 2554), ( 4, 2694, 2845)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 458, 569), ( 3, 887, 1082), ( 2, 2433, 2868)
8 : ( 2, 1563, 1736), ( 4, 1891, 2326), ( 3, 2379, 2565), ( 1, 2566, 2703), ( 0, 2752, 2805)
9 : ( 1, 0, 93), ( 2, 342, 573), ( 4, 799, 870), ( 3, 1082, 1197), ( 0, 1198, 1513)
MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 169, 435), ( 4, 435, 786), ( 9, 1198, 1513), ( 5, 1524, 1857), ( 3, 1857, 1941), ( 1, 1997, 2410), ( 0, 2410, 2752), ( 8, 2752, 2805)
1 : ( 9, 0, 93), ( 4, 241, 432), ( 7, 458, 569), ( 0, 800, 1044), ( 2, 1213, 1319), ( 6, 1319, 1554), ( 1, 1610, 1996), ( 5, 1996, 2422), ( 8, 2566, 2703), ( 3, 2703, 2867)
2 : ( 5, 0, 342), ( 9, 342, 573), ( 1, 573, 879), ( 3, 879, 1030), ( 2, 1030, 1212), ( 0, 1212, 1563), ( 8, 1563, 1736), ( 6, 1736, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 887, 1082), ( 9, 1082, 1197), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017, 2310), ( 6, 2310, 2554), ( 8, 2379, 2565)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 0, 457, 799), ( 9, 799, 870), ( 1, 880, 1222), ( 5, 1332, 1523), ( 3, 1523, 1807), ( 8, 1891, 2326), ( 2, 2326, 2694), ( 6, 2694, 2845)
864デフォルトの名無しさん
2019/04/28(日) 23:28:25.99ID:l2GeSHcv >>863
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 887, 1082), ( 9, 1082, 1197), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017 , 2310), ( 6, 2310, 2554), ( 8, 2379, 2565)
( 6, 2310, 2554), ( 8, 2379, 2565)
ここが重複してるから間違ってる
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 887, 1082), ( 9, 1082, 1197), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017 , 2310), ( 6, 2310, 2554), ( 8, 2379, 2565)
( 6, 2310, 2554), ( 8, 2379, 2565)
ここが重複してるから間違ってる
865デフォルトの名無しさん
2019/04/29(月) 05:34:40.52ID:8r4CfxJG >>864
ご指摘ありがとうございます。
ご指摘ありがとうございます。
866デフォルトの名無しさん
2019/05/02(木) 08:14:38.07ID:y6AdJjmd お題:ジョブショップスケジューリングの問題です。
int job_param[JOBNUM][STP][2] = {
{{4, 100}, {1, 100}, {2, 100}, {3, 100}, {0, 100}}, // 500
{{2, 100}, {4, 100}, {3, 100}, {1, 100}, {0, 100}}, // 500
{{3, 100}, {0, 100}, {2, 100}, {1, 100}, {4, 100}}, // 500
{{3, 100}, {2, 100}, {4, 100}, {0, 100}, {1, 100}}, // 500
{{4, 100}, {1, 100}, {0, 100}, {3, 100}, {2, 100}}, // 500
{{2, 100}, {3, 100}, {4, 100}, {0, 100}, {1, 100}}, // 500
{{0, 100}, {1, 100}, {2, 100}, {3, 100}, {4, 100}}, // 500
{{0, 100}, {4, 100}, {1, 100}, {3, 100}, {2, 100}}, // 500
{{2, 100}, {4, 100}, {3, 100}, {1, 100}, {0, 100}}, // 500
{{1, 100}, {2, 100}, {4, 100}, {3, 100}, {0, 100}}}; // 500
int job_param[JOBNUM][STP][2] = {
{{4, 100}, {1, 100}, {2, 100}, {3, 100}, {0, 100}}, // 500
{{2, 100}, {4, 100}, {3, 100}, {1, 100}, {0, 100}}, // 500
{{3, 100}, {0, 100}, {2, 100}, {1, 100}, {4, 100}}, // 500
{{3, 100}, {2, 100}, {4, 100}, {0, 100}, {1, 100}}, // 500
{{4, 100}, {1, 100}, {0, 100}, {3, 100}, {2, 100}}, // 500
{{2, 100}, {3, 100}, {4, 100}, {0, 100}, {1, 100}}, // 500
{{0, 100}, {1, 100}, {2, 100}, {3, 100}, {4, 100}}, // 500
{{0, 100}, {4, 100}, {1, 100}, {3, 100}, {2, 100}}, // 500
{{2, 100}, {4, 100}, {3, 100}, {1, 100}, {0, 100}}, // 500
{{1, 100}, {2, 100}, {4, 100}, {3, 100}, {0, 100}}}; // 500
867デフォルトの名無しさん
2019/05/02(木) 10:15:40.84ID:uedhNxa1 死ね
868デフォルトの名無しさん
2019/05/02(木) 10:36:17.75ID:aiQlF5oy >>866
時間全部同じなら1にしちゃってえーんちゃう?
時間全部同じなら1にしちゃってえーんちゃう?
869デフォルトの名無しさん
2019/05/02(木) 12:40:19.89ID:6TxNQP9X 死んで良し。こんな長たらしいのを貼るなんて迷惑。
どこかに貼ってリンクだけにしろ。
どこかに貼ってリンクだけにしろ。
870デフォルトの名無しさん
2019/05/03(金) 00:09:09.98ID:zqE/J/GT871デフォルトの名無しさん
2019/05/07(火) 18:32:57.10ID:dWjIX09N COST_TIME: 2903
0 : ( 4, 799, 1141), ( 1, 1141, 1385), ( 2, 1385, 1736), ( 3, 2023, 2316), ( 0, 2477, 2819)
1 : ( 2, 0, 306), ( 4, 457, 799), ( 3, 1114, 1500), ( 1, 1500, 1886), ( 0, 1980, 2393)
2 : ( 3, 368, 536), ( 0, 913, 1179), ( 2, 1203, 1385), ( 1, 1385, 1491), ( 4, 2122, 2490)
3 : ( 3, 0, 368), ( 2, 1052, 1203), ( 4, 1838, 2122), ( 0, 2393, 2477), ( 1, 2639, 2803)
4 : ( 4, 0, 240), ( 1, 240, 431), ( 0, 562, 913), ( 3, 1615, 2023), ( 2, 2593, 2868)
5 : ( 2, 306, 648), ( 3, 763, 1114), ( 4, 1141, 1332), ( 0, 1332, 1665), ( 1, 1886, 2312)
6 : ( 0, 75, 168), ( 1, 568, 803), ( 2, 1736, 2158), ( 3, 2508, 2752), ( 4, 2752, 2903)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 457, 568), ( 3, 568, 763), ( 2, 2158, 2593)
8 : ( 2, 879, 1052), ( 4, 1403, 1838), ( 3, 2316, 2502), ( 1, 2502, 2639), ( 0, 2819, 2872)
9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 1332, 1403), ( 3, 1500, 1615), ( 0, 1665, 1980)
MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 562, 913), ( 2, 913, 1179), ( 5, 1332, 1665), ( 9, 1665, 1980), ( 1, 1980, 2393), ( 3, 2393, 2477), ( 0, 2477, 2819), ( 8, 2819, 2872)
1 : ( 9, 0, 93), ( 4, 240, 431), ( 7, 457, 568), ( 6, 568, 803), ( 0, 1141, 1385), ( 2, 1385, 1491), ( 1, 1500, 1886), ( 5, 1886, 2312), ( 8, 2502, 2639), ( 3, 2639, 2803)
2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 3, 1052, 1203), ( 2, 1203, 1385), ( 0, 1385, 1736), ( 6, 1736, 2158), ( 7, 2158, 2593), ( 4, 2593, 2868)
3 : ( 3, 0, 368), ( 2, 368, 536), ( 7, 568, 763), ( 5, 763, 1114), ( 1, 1114, 1500), ( 9, 1500, 1615), ( 4, 1615, 2023), ( 0, 2023, 2316), ( 8, 2316, 2502), ( 6, 2508, 2752)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 1, 457, 799), ( 0, 799, 1141), ( 5, 1141, 1332), ( 9, 1332, 1403), ( 8, 1403, 1838), ( 3, 1838, 2122), ( 2, 2122, 2490), ( 6, 2752, 2903)
0 : ( 4, 799, 1141), ( 1, 1141, 1385), ( 2, 1385, 1736), ( 3, 2023, 2316), ( 0, 2477, 2819)
1 : ( 2, 0, 306), ( 4, 457, 799), ( 3, 1114, 1500), ( 1, 1500, 1886), ( 0, 1980, 2393)
2 : ( 3, 368, 536), ( 0, 913, 1179), ( 2, 1203, 1385), ( 1, 1385, 1491), ( 4, 2122, 2490)
3 : ( 3, 0, 368), ( 2, 1052, 1203), ( 4, 1838, 2122), ( 0, 2393, 2477), ( 1, 2639, 2803)
4 : ( 4, 0, 240), ( 1, 240, 431), ( 0, 562, 913), ( 3, 1615, 2023), ( 2, 2593, 2868)
5 : ( 2, 306, 648), ( 3, 763, 1114), ( 4, 1141, 1332), ( 0, 1332, 1665), ( 1, 1886, 2312)
6 : ( 0, 75, 168), ( 1, 568, 803), ( 2, 1736, 2158), ( 3, 2508, 2752), ( 4, 2752, 2903)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 457, 568), ( 3, 568, 763), ( 2, 2158, 2593)
8 : ( 2, 879, 1052), ( 4, 1403, 1838), ( 3, 2316, 2502), ( 1, 2502, 2639), ( 0, 2819, 2872)
9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 1332, 1403), ( 3, 1500, 1615), ( 0, 1665, 1980)
MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 562, 913), ( 2, 913, 1179), ( 5, 1332, 1665), ( 9, 1665, 1980), ( 1, 1980, 2393), ( 3, 2393, 2477), ( 0, 2477, 2819), ( 8, 2819, 2872)
1 : ( 9, 0, 93), ( 4, 240, 431), ( 7, 457, 568), ( 6, 568, 803), ( 0, 1141, 1385), ( 2, 1385, 1491), ( 1, 1500, 1886), ( 5, 1886, 2312), ( 8, 2502, 2639), ( 3, 2639, 2803)
2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 3, 1052, 1203), ( 2, 1203, 1385), ( 0, 1385, 1736), ( 6, 1736, 2158), ( 7, 2158, 2593), ( 4, 2593, 2868)
3 : ( 3, 0, 368), ( 2, 368, 536), ( 7, 568, 763), ( 5, 763, 1114), ( 1, 1114, 1500), ( 9, 1500, 1615), ( 4, 1615, 2023), ( 0, 2023, 2316), ( 8, 2316, 2502), ( 6, 2508, 2752)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 1, 457, 799), ( 0, 799, 1141), ( 5, 1141, 1332), ( 9, 1332, 1403), ( 8, 1403, 1838), ( 3, 1838, 2122), ( 2, 2122, 2490), ( 6, 2752, 2903)
872デフォルトの名無しさん
2019/05/07(火) 19:09:14.64ID:T//WWibe 死ねやマジで
873デフォルトの名無しさん
2019/05/09(木) 08:23:28.37ID:iHKmUIWi COST_TIME: 2868
0 : ( 4, 970, 1312), ( 1, 1312, 1556), ( 2, 1807, 2158), ( 3, 2177, 2470), ( 0, 2470, 2812)
1 : ( 2, 0, 306), ( 4, 557, 899), ( 3, 1197, 1583), ( 1, 1583, 1969), ( 0, 1969, 2382)
2 : ( 3, 0, 168), ( 0, 394, 660), ( 2, 1474, 1656), ( 1, 1969, 2075), ( 4, 2222, 2590)
3 : ( 3, 168, 536), ( 2, 1656, 1807), ( 4, 1938, 2222), ( 0, 2382, 2466), ( 1, 2696, 2860)
4 : ( 4, 292, 532), ( 1, 532, 723), ( 0, 723, 1074), ( 3, 1583, 1991), ( 2, 2158, 2433)
5 : ( 2, 306, 648), ( 3, 731, 1082), ( 4, 1312, 1503), ( 0, 1512, 1845), ( 1, 2133, 2559)
6 : ( 0, 75, 168), ( 1, 723, 958), ( 2, 1052, 1474), ( 3, 2470, 2714), ( 4, 2714, 2865)
7 : ( 0, 0, 75), ( 4, 75, 292), ( 1, 292, 403), ( 3, 536, 731), ( 2, 2433, 2868)
8 : ( 2, 879, 1052), ( 4, 1503, 1938), ( 3, 1991, 2177), ( 1, 2559, 2696), ( 0, 2812, 2865)
9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 899, 970), ( 3, 1082, 1197), ( 0, 1197, 1512)
MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 394, 660), ( 4, 723, 1074), ( 9, 1197, 1512), ( 5, 1512, 1845), ( 1, 1969, 2382), ( 3, 2382, 2466), ( 0, 2470, 2812), ( 8, 2812, 2865)
1 : ( 9, 0, 93), ( 7, 292, 403), ( 4, 532, 723), ( 6, 723, 958), ( 0, 1312, 1556), ( 1, 1583, 1969), ( 2, 1969, 2075), ( 5, 2133, 2559), ( 8, 2559, 2696), ( 3, 2696, 2860)
2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 6, 1052, 1474), ( 2, 1474, 1656), ( 3, 1656, 1807), ( 0, 1807, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 7, 536, 731), ( 5, 731, 1082), ( 9, 1082, 1197), ( 1, 1197, 1583), ( 4, 1583, 1991), ( 8, 1991, 2177), ( 0, 2177, 2470), ( 6, 2470, 2714)
4 : ( 7, 75, 292), ( 4, 292, 532), ( 1, 557, 899), ( 9, 899, 970), ( 0, 970, 1312), ( 5, 1312, 1503), ( 8, 1503, 1938), ( 3, 1938, 2222), ( 2, 2222, 2590), ( 6, 2714, 2865)
0 : ( 4, 970, 1312), ( 1, 1312, 1556), ( 2, 1807, 2158), ( 3, 2177, 2470), ( 0, 2470, 2812)
1 : ( 2, 0, 306), ( 4, 557, 899), ( 3, 1197, 1583), ( 1, 1583, 1969), ( 0, 1969, 2382)
2 : ( 3, 0, 168), ( 0, 394, 660), ( 2, 1474, 1656), ( 1, 1969, 2075), ( 4, 2222, 2590)
3 : ( 3, 168, 536), ( 2, 1656, 1807), ( 4, 1938, 2222), ( 0, 2382, 2466), ( 1, 2696, 2860)
4 : ( 4, 292, 532), ( 1, 532, 723), ( 0, 723, 1074), ( 3, 1583, 1991), ( 2, 2158, 2433)
5 : ( 2, 306, 648), ( 3, 731, 1082), ( 4, 1312, 1503), ( 0, 1512, 1845), ( 1, 2133, 2559)
6 : ( 0, 75, 168), ( 1, 723, 958), ( 2, 1052, 1474), ( 3, 2470, 2714), ( 4, 2714, 2865)
7 : ( 0, 0, 75), ( 4, 75, 292), ( 1, 292, 403), ( 3, 536, 731), ( 2, 2433, 2868)
8 : ( 2, 879, 1052), ( 4, 1503, 1938), ( 3, 1991, 2177), ( 1, 2559, 2696), ( 0, 2812, 2865)
9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 899, 970), ( 3, 1082, 1197), ( 0, 1197, 1512)
MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 394, 660), ( 4, 723, 1074), ( 9, 1197, 1512), ( 5, 1512, 1845), ( 1, 1969, 2382), ( 3, 2382, 2466), ( 0, 2470, 2812), ( 8, 2812, 2865)
1 : ( 9, 0, 93), ( 7, 292, 403), ( 4, 532, 723), ( 6, 723, 958), ( 0, 1312, 1556), ( 1, 1583, 1969), ( 2, 1969, 2075), ( 5, 2133, 2559), ( 8, 2559, 2696), ( 3, 2696, 2860)
2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 6, 1052, 1474), ( 2, 1474, 1656), ( 3, 1656, 1807), ( 0, 1807, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 7, 536, 731), ( 5, 731, 1082), ( 9, 1082, 1197), ( 1, 1197, 1583), ( 4, 1583, 1991), ( 8, 1991, 2177), ( 0, 2177, 2470), ( 6, 2470, 2714)
4 : ( 7, 75, 292), ( 4, 292, 532), ( 1, 557, 899), ( 9, 899, 970), ( 0, 970, 1312), ( 5, 1312, 1503), ( 8, 1503, 1938), ( 3, 1938, 2222), ( 2, 2222, 2590), ( 6, 2714, 2865)
874デフォルトの名無しさん
2019/05/09(木) 09:37:18.89ID:pu1Iu6no ここはプログラミングのお題スレであって結果と思われる出力を書き込むスレではない。
875デフォルトの名無しさん
2019/05/09(木) 19:00:51.34ID:n0QdGvKz コラッツ数列を作る関数chainを書け
コラッツ数列の定義
任意の自然数から開始する
数が 1ならば 、終了
数が偶数なら 、 2で割る
数が奇数なら 、 3倍して 1を足す
新しい値でこのアルゴリズムを繰り返す
使用例
>chain 10
[ 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]
>chain 1
[ 1 ]
>chain 30
[ 3 0 , 1 5 , 4 6 , 2 3 , 7 0 , 3 5 , 1 0 6 , 5 3 , 1 6 0 , 8 0 , 4 0 , 2 0 , 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]
コラッツ数列の定義
任意の自然数から開始する
数が 1ならば 、終了
数が偶数なら 、 2で割る
数が奇数なら 、 3倍して 1を足す
新しい値でこのアルゴリズムを繰り返す
使用例
>chain 10
[ 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]
>chain 1
[ 1 ]
>chain 30
[ 3 0 , 1 5 , 4 6 , 2 3 , 7 0 , 3 5 , 1 0 6 , 5 3 , 1 6 0 , 8 0 , 4 0 , 2 0 , 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]
876デフォルトの名無しさん
2019/05/09(木) 21:28:06.85ID:V3giiBFx877さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/05/09(木) 22:20:55.24ID:sZO2t0w0 お題: 改行とスペースを含むASCII文字列が与えられる。
改行とスペース以外の各印字可能文字の位置を以下のように順番に出力せよ。
(入力)
a b c
d
(出力)
[a, 0, 0]
[b, 2, 0]
[c, 5, 0]
[d, 0, 2]
改行とスペース以外の各印字可能文字の位置を以下のように順番に出力せよ。
(入力)
a b c
d
(出力)
[a, 0, 0]
[b, 2, 0]
[c, 5, 0]
[d, 0, 2]
878デフォルトの名無しさん
2019/05/10(金) 08:21:41.55ID:Z1uC1A15 >>875
python
def chain(n):
lst = []
if n < 1: raise ValueError("Please n > 0 number")
while n != 1:
lst.append(n)
if n % 2 == 0: n //= 2
else: n = n * 3 + 1
lst.append(1)
return lst
for i in [10,1,30,0]: print(chain(i))
python
def chain(n):
lst = []
if n < 1: raise ValueError("Please n > 0 number")
while n != 1:
lst.append(n)
if n % 2 == 0: n //= 2
else: n = n * 3 + 1
lst.append(1)
return lst
for i in [10,1,30,0]: print(chain(i))
879デフォルトの名無しさん
2019/05/10(金) 08:24:53.49ID:Z1uC1A15 >>875
Haskell
main = mapM_ (print.chain) [10,1,30,0]
chain 1 = [1]
chain n | n < 1 = error "Please n > 0 number"
chain n | even n = n:chain (n `div` 2)
chain n = n:chain (n * 3 + 1)
Haskell
main = mapM_ (print.chain) [10,1,30,0]
chain 1 = [1]
chain n | n < 1 = error "Please n > 0 number"
chain n | even n = n:chain (n `div` 2)
chain n = n:chain (n * 3 + 1)
880デフォルトの名無しさん
2019/05/10(金) 11:11:44.01ID:VtNtFyvg881デフォルトの名無しさん
2019/05/10(金) 11:56:36.34ID:sggjdX/2883デフォルトの名無しさん
2019/05/10(金) 12:30:05.58ID:k7gY5pMP >>877
出力は、行列番号が0から始まるとして
文字,列番号、行番号 だと思うから c の列番号は間違ってるんじゃないの?
(入力)
a b c
d
(出力)
[a, 0, 0]
[b, 2, 0]
[c, 4, 0] << 5じゃなくて4だろ。
[d, 0, 2]
出力は、行列番号が0から始まるとして
文字,列番号、行番号 だと思うから c の列番号は間違ってるんじゃないの?
(入力)
a b c
d
(出力)
[a, 0, 0]
[b, 2, 0]
[c, 4, 0] << 5じゃなくて4だろ。
[d, 0, 2]
884デフォルトの名無しさん
2019/05/10(金) 12:47:01.79ID:6xQjM2XG >>876,880
この問題、入門書から抜粋したけど次に1ー100の間に長さ15以上は何個あるかとか出てるから、
Cだとリストから作らないといけないのは分かるが、リスト返す様にした方が仕様変更に強いと思う。
この問題、入門書から抜粋したけど次に1ー100の間に長さ15以上は何個あるかとか出てるから、
Cだとリストから作らないといけないのは分かるが、リスト返す様にした方が仕様変更に強いと思う。
885デフォルトの名無しさん
2019/05/10(金) 12:53:54.51ID:KAkBQh2y 宿題誘導か
最近のアホは小賢しいな
最近のアホは小賢しいな
886デフォルトの名無しさん
2019/05/10(金) 13:27:19.10ID:k7gY5pMP >>877 python
st = '''a b c
d
'''
line = 0 ; col = 0
for c in st :
__if c == '\n' :
____line += 1
____col = 0
____continue
__if c != ' ' :
____print ('['+c, col,str(line)+']', sep=',')
__col += 1
st = '''a b c
d
'''
line = 0 ; col = 0
for c in st :
__if c == '\n' :
____line += 1
____col = 0
____continue
__if c != ' ' :
____print ('['+c, col,str(line)+']', sep=',')
__col += 1
887デフォルトの名無しさん
2019/05/10(金) 13:40:11.78ID:k7gY5pMP >>886 出力フォーマットが
['a', 0, 0]
['b', 2, 0]
['c', 4, 0]
['d', 0, 2]
でもよければ print文は簡単になる
print ([c, col,line])
['a', 0, 0]
['b', 2, 0]
['c', 4, 0]
['d', 0, 2]
でもよければ print文は簡単になる
print ([c, col,line])
889デフォルトの名無しさん
2019/05/10(金) 15:12:02.76ID:bODSyEKx >>888 手抜きすんな面白くない
890デフォルトの名無しさん
2019/05/10(金) 15:43:29.85ID:aTy0NCJ4891デフォルトの名無しさん
2019/05/10(金) 17:50:33.37ID:58PV3kUA >>875,884 Squeak Smalltalk
| chain |
chain := [:n |
Array streamContents: [:ss |
ss nextPut: n.
[n > 1] whileTrue: [ss nextPut: (n := n even ifTrue: [n / 2] ifFalse: [n * 3 + 1])]
]
].
chain value: 10. "=> #(10 5 16 8 4 2 1) "
(1 to: 100) count: [:n | (chain value: n) size >= 15] "=> 71 "
| chain |
chain := [:n |
Array streamContents: [:ss |
ss nextPut: n.
[n > 1] whileTrue: [ss nextPut: (n := n even ifTrue: [n / 2] ifFalse: [n * 3 + 1])]
]
].
chain value: 10. "=> #(10 5 16 8 4 2 1) "
(1 to: 100) count: [:n | (chain value: n) size >= 15] "=> 71 "
892デフォルトの名無しさん
2019/05/10(金) 20:05:13.80ID:0Zlxa6bH >>875
Perl のワンライナー。
perl -ne '$n=$_;chomp($n);@d=($n);while($n!=1){$n=$n&1?($n*3+1):($n/2);push(@d,$n)}print "[".join(", ", @d)."]\n"'
実行する場合はbash等のシェルから行う(シングルクォートの中がそのままperlに引き渡されさえすれば他のシェルでも良い)。
標準入力から1行1データで入力して結果を出力するようにした。
Perl のワンライナー。
perl -ne '$n=$_;chomp($n);@d=($n);while($n!=1){$n=$n&1?($n*3+1):($n/2);push(@d,$n)}print "[".join(", ", @d)."]\n"'
実行する場合はbash等のシェルから行う(シングルクォートの中がそのままperlに引き渡されさえすれば他のシェルでも良い)。
標準入力から1行1データで入力して結果を出力するようにした。
893デフォルトの名無しさん
2019/05/10(金) 20:29:31.76ID:/+/am3CQ >>890
27のとき112個
31のとき107個
10億くらいまで回したけど、これら以外なくね?
数列の初期値と長さは、初期値が小さいうちは同じくらいだが、初期値を大きくしても数列の長さはさほど伸びない。
ttps://imgur.com/wm0kCEQ
グラフはxが大きくなるほど飛ばす間隔も大きくしてあるからあまり正確ではない。
27のとき112個
31のとき107個
10億くらいまで回したけど、これら以外なくね?
数列の初期値と長さは、初期値が小さいうちは同じくらいだが、初期値を大きくしても数列の長さはさほど伸びない。
ttps://imgur.com/wm0kCEQ
グラフはxが大きくなるほど飛ばす間隔も大きくしてあるからあまり正確ではない。
894デフォルトの名無しさん
2019/05/10(金) 21:48:47.85ID:LM2YqzO0895デフォルトの名無しさん
2019/05/10(金) 22:09:58.71ID:KAkBQh2y ZDDやるなら出来合いのもの使って終わりじゃねえの?
https://github.com/junkawahara/frontier-basic
https://hs-nazuna.github.io/tdzdd-manual/intro.html
https://github.com/junkawahara/frontier-basic
https://hs-nazuna.github.io/tdzdd-manual/intro.html
896デフォルトの名無しさん
2019/05/11(土) 11:54:01.37ID:Ze1v8w/9 >>875 Perl5
sub chain {
my $i = shift;
$i == 1 ? $i : ($i, ($i & 1 ? chain(3*$i + 1) : chain($i / 2)))
}
for (qw{10 1 30}) {
@a = chain $_;
print "[@a]\n";
}
実行
~ $ perl 13_875_collatz.pl
[10 5 16 8 4 2 1]
[1]
[30 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1]
sub chain {
my $i = shift;
$i == 1 ? $i : ($i, ($i & 1 ? chain(3*$i + 1) : chain($i / 2)))
}
for (qw{10 1 30}) {
@a = chain $_;
print "[@a]\n";
}
実行
~ $ perl 13_875_collatz.pl
[10 5 16 8 4 2 1]
[1]
[30 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1]
897デフォルトの名無しさん
2019/05/11(土) 12:16:05.54ID:Ze1v8w/9 >>877 Perl5
@in = map{[split'']} map{split '\n'} <<EOF;
a b c
d
EOF
for $j (0..$#in) {
for $i (0..$#{$in[$j]}) {
$c = $in[$j][$i];
print "[$c,$i,$j]\n" if $c =~ /\w/;
}
}
実行
~ $ perl 13_877.pl
[a,0,0]
[b,2,0]
[c,4,0]
[d,0,2]
@in = map{[split'']} map{split '\n'} <<EOF;
a b c
d
EOF
for $j (0..$#in) {
for $i (0..$#{$in[$j]}) {
$c = $in[$j][$i];
print "[$c,$i,$j]\n" if $c =~ /\w/;
}
}
実行
~ $ perl 13_877.pl
[a,0,0]
[b,2,0]
[c,4,0]
[d,0,2]
898デフォルトの名無しさん
2019/05/11(土) 13:06:48.39ID:bKjSBhWB >>875
Ruby で
module Collatz
def self.next_number( num )
if num.even? # 偶数
num / 2
else # 奇数
num * 3 + 1
end
end
def self.chain( num )
@@results = [ ]
tmp = num
while true
@@results.push tmp
break if tmp == 1
tmp = next_number( tmp )
end
@@results
end
end
[ 1, 27 ].each do | num |
p Collatz.chain( num )
end
Ruby で
module Collatz
def self.next_number( num )
if num.even? # 偶数
num / 2
else # 奇数
num * 3 + 1
end
end
def self.chain( num )
@@results = [ ]
tmp = num
while true
@@results.push tmp
break if tmp == 1
tmp = next_number( tmp )
end
@@results
end
end
[ 1, 27 ].each do | num |
p Collatz.chain( num )
end
899デフォルトの名無しさん
2019/05/11(土) 18:55:11.91ID:fAbbaveG900デフォルトの名無しさん
2019/05/11(土) 20:54:08.94ID:wddfxsLz ideone.comはMATLABに対応してないのね。
書いてみた後で気がついた。
書いてみた後で気がついた。
901デフォルトの名無しさん
2019/05/11(土) 23:44:29.57ID:fAbbaveG902デフォルトの名無しさん
2019/05/12(日) 02:01:10.46ID:FbICTnq7903デフォルトの名無しさん
2019/05/12(日) 06:46:28.87ID:R9TUiFuu >>875
コラッツ樹で作れば出力を減らせる。
コラッツ樹で作れば出力を減らせる。
904デフォルトの名無しさん
2019/05/14(火) 02:59:08.35ID:3xJ0OqNt >>877
Kotlin
https://paiza.io/projects/Aab0mA1WSwXHnHL2049hCA
for や while ループ使わずに forEachIndexed で入れ子にしてみました。
Kotlin
https://paiza.io/projects/Aab0mA1WSwXHnHL2049hCA
for や while ループ使わずに forEachIndexed で入れ子にしてみました。
905デフォルトの名無しさん
2019/05/14(火) 09:26:15.81ID:zeev4Evh >>877
Ruby で
text = <<"EOT"
a b c
d
EOT
re = /[^ ]+/ # 空白以外
text.each_line.with_index do | line, idx | # 1行ずつ処理する
line.strip! # trim
# $~.begin は、マッチした先頭文字の位置
line.scan( re ) { puts "[" + [ $~.to_s, $~.begin(0), idx ].join( ", " ) + "]" }
end
Ruby で
text = <<"EOT"
a b c
d
EOT
re = /[^ ]+/ # 空白以外
text.each_line.with_index do | line, idx | # 1行ずつ処理する
line.strip! # trim
# $~.begin は、マッチした先頭文字の位置
line.scan( re ) { puts "[" + [ $~.to_s, $~.begin(0), idx ].join( ", " ) + "]" }
end
906デフォルトの名無しさん
2019/05/14(火) 10:07:03.30ID:rKVVoOG1907デフォルトの名無しさん
2019/05/14(火) 14:12:15.49ID:8QdSJZ63 >>905
空白以外は\Sでマッチするぞ
空白以外は\Sでマッチするぞ
908デフォルトの名無しさん
2019/05/14(火) 23:52:44.04ID:AtHJrRxM >>877 Squeak Smalltalk
| fn |
fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line reject: #isSeparator) asArray
collect: [:chr | {chr. (line indexOf: chr) - 1. lIdx - 1}]]
) concatenation select: #notEmpty) asStringWithCr
].
fn value: 'a b c
d'
"=>
'#($a 0 0)
#($b 2 0)
#($c 4 0)
#($d 0 2)' "
| fn |
fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line reject: #isSeparator) asArray
collect: [:chr | {chr. (line indexOf: chr) - 1. lIdx - 1}]]
) concatenation select: #notEmpty) asStringWithCr
].
fn value: 'a b c
d'
"=>
'#($a 0 0)
#($b 2 0)
#($c 4 0)
#($d 0 2)' "
909デフォルトの名無しさん
2019/05/15(水) 01:06:44.65ID:tCUIeJeC >>908 smalltalk って全く知らないけど、最後が出力のつもり?
だったらお題の出力フォーマットと似ても似つかないじゃん。
だったらお題の出力フォーマットと似ても似つかないじゃん。
910デフォルトの名無しさん
2019/05/15(水) 03:57:52.07ID:i8y0s24p いや似てる
911デフォルトの名無しさん
2019/05/15(水) 04:50:48.17ID:TsVBVaTo >>877 Squeak/Pharo Smalltalk
出力はともかく同行に同文字があるとダメだった^^;ので>>908 差し替え
| fn |
fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line asArray collectWithIndex: [:chr :cIdx | {chr. cIdx - 1. lIdx - 1}]
) reject: [:each | each first isSeparator]]
) concatenation
select: #notEmpty thenCollect: [:each | '[{1}, {2}, {3}]' format: each]) asStringWithCr
].
fn value: 'a b c
d'
"=>
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2] "
出力はともかく同行に同文字があるとダメだった^^;ので>>908 差し替え
| fn |
fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line asArray collectWithIndex: [:chr :cIdx | {chr. cIdx - 1. lIdx - 1}]
) reject: [:each | each first isSeparator]]
) concatenation
select: #notEmpty thenCollect: [:each | '[{1}, {2}, {3}]' format: each]) asStringWithCr
].
fn value: 'a b c
d'
"=>
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2] "
912905
2019/05/15(水) 09:57:59.71ID:AfKgri37913デフォルトの名無しさん
2019/05/15(水) 23:43:58.92ID:jmndeABE914デフォルトの名無しさん
2019/05/16(木) 01:50:16.53ID:4fy8zsNP >>913
C以外は助長だな
C以外は助長だな
915デフォルトの名無しさん
2019/05/16(木) 03:57:55.40ID:6BLr95cC916デフォルトの名無しさん
2019/05/16(木) 08:25:20.49ID:MujhV/Cm >>913 故意にpython 外しはずるい。
>>877 python
https://ideone.com/yvFuOl
printフォーマットは、コメントにしたpython3.6のf文字列の方がシンプルだが、ideone は3.5しかないのでformat文にした。
>>877 python
https://ideone.com/yvFuOl
printフォーマットは、コメントにしたpython3.6のf文字列の方がシンプルだが、ideone は3.5しかないのでformat文にした。
917デフォルトの名無しさん
2019/05/16(木) 10:18:52.91ID:YVMjr/q8918デフォルトの名無しさん
2019/05/16(木) 14:34:08.16ID:YVMjr/q8919デフォルトの名無しさん
2019/05/16(木) 19:26:40.27ID:ktv4pd0R920デフォルトの名無しさん
2019/05/16(木) 20:28:13.91ID:3sIrlJF4 お題
整数の数列が与えられるので、各値の大小関係を変えないように値をなるべく小さくせよ
ただし1番小さい要素は1にすること
入力
-6 3 9 5 3 -7
出力
2 3 5 4 3 1
整数の数列が与えられるので、各値の大小関係を変えないように値をなるべく小さくせよ
ただし1番小さい要素は1にすること
入力
-6 3 9 5 3 -7
出力
2 3 5 4 3 1
921デフォルトの名無しさん
2019/05/16(木) 21:00:21.83ID:/dAesd8e923デフォルトの名無しさん
2019/05/16(木) 22:59:47.34ID:0eZXbfha >>920 Pharo/Squeak Smalltalk
| fn |
fn := [:arr |
| sorted |
sorted := arr asSet sorted.
arr collect: [:x | sorted indexOf: x]
].
fn value: #(-6 3 9 5 3 -7). "=> #(2 3 5 4 3 1) "
| fn |
fn := [:arr |
| sorted |
sorted := arr asSet sorted.
arr collect: [:x | sorted indexOf: x]
].
fn value: #(-6 3 9 5 3 -7). "=> #(2 3 5 4 3 1) "
924913
2019/05/16(木) 23:00:52.84ID:02wuysYU >>877 ocaml
https://ideone.com/waZZh7
・自分に正直になってrefとforループで書いた
>>914
じょ、助長…
>>916
外しと言うより、たんに不勉強
python書けないんよね(´・ω・`)
https://ideone.com/waZZh7
・自分に正直になってrefとforループで書いた
>>914
じょ、助長…
>>916
外しと言うより、たんに不勉強
python書けないんよね(´・ω・`)
925デフォルトの名無しさん
2019/05/16(木) 23:34:17.56ID:YXKZQo24 >>923 Perl5
@a = qw{-6 3 9 5 3 -7};
$h{$_}=1 for @a;
%o = map{$_=>++$i} sort{$a<=>$b} keys %h;
@b = map{$o{$_}} @a;
print "@a => @b\n";
実行
~ $ perl 13_920.pl
-6 3 9 5 3 -7 => 2 3 5 4 3 1
@a = qw{-6 3 9 5 3 -7};
$h{$_}=1 for @a;
%o = map{$_=>++$i} sort{$a<=>$b} keys %h;
@b = map{$o{$_}} @a;
print "@a => @b\n";
実行
~ $ perl 13_920.pl
-6 3 9 5 3 -7 => 2 3 5 4 3 1
926デフォルトの名無しさん
2019/05/16(木) 23:42:11.94ID:YXKZQo24927デフォルトの名無しさん
2019/05/16(木) 23:44:54.09ID:02wuysYU928デフォルトの名無しさん
2019/05/17(金) 00:26:31.35ID:SI3/qEwo >>888 Pharo/Squeak Smalltalk
| fn |
fn := [:arr |
String streamContents: [:ss |
| cIdx lIdx |
cIdx := lIdx := 0.
arr do: [:spec |
spec third > lIdx ifTrue: [
ss nextPutAll: (String new: spec third - lIdx withAll: Character cr).
lIdx := spec third.
cIdx := 0
].
ss nextPutAll: (String new: spec second - cIdx withAll: Character space).
ss nextPutAll: spec first.
cIdx := spec second + 1.
]
]
].
fn value: #(
(a 0 0)
(b 2 0)
(c 4 0)
(d 0 2)).
"=>
a b c
d "
| fn |
fn := [:arr |
String streamContents: [:ss |
| cIdx lIdx |
cIdx := lIdx := 0.
arr do: [:spec |
spec third > lIdx ifTrue: [
ss nextPutAll: (String new: spec third - lIdx withAll: Character cr).
lIdx := spec third.
cIdx := 0
].
ss nextPutAll: (String new: spec second - cIdx withAll: Character space).
ss nextPutAll: spec first.
cIdx := spec second + 1.
]
]
].
fn value: #(
(a 0 0)
(b 2 0)
(c 4 0)
(d 0 2)).
"=>
a b c
d "
929デフォルトの名無しさん
2019/05/17(金) 00:35:47.85ID:HrEfbPs9930デフォルトの名無しさん
2019/05/17(金) 00:55:59.72ID:TuAgku6e 最近jニキ来ないな
931デフォルトの名無しさん
2019/05/17(金) 01:23:24.98ID:UHIjSpei932デフォルトの名無しさん
2019/05/17(金) 07:54:47.22ID:9a+COZnd >>888
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''
from parse import * #pip install
col2 = 0 ; line2 = 0
for l in s.splitlines():
col = col2 ; line = line2
r=parse('[{},{},{}]',l)
c= r[0]
col2 = int(r[1]) ; line2 = int(r[2])
{print() for _ in range(line2-line) }
{print(' ',end='') for _ in range(col2-col)}
print(c, end='')
col2 += 1
print()
'''#出力
a b c
d
'''
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''
from parse import * #pip install
col2 = 0 ; line2 = 0
for l in s.splitlines():
col = col2 ; line = line2
r=parse('[{},{},{}]',l)
c= r[0]
col2 = int(r[1]) ; line2 = int(r[2])
{print() for _ in range(line2-line) }
{print(' ',end='') for _ in range(col2-col)}
print(c, end='')
col2 += 1
print()
'''#出力
a b c
d
'''
933デフォルトの名無しさん
2019/05/17(金) 08:32:11.25ID:9a+COZnd >>932 parse に型指定追加
>>888 Python
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''
from parse import * #pip install
col2 = 0 ; line2 = 0
for l in s.splitlines():
col = col2 ; line = line2
(c,col2,line2) = parse('[{},{:d},{:d}]',l)
{print() for _ in range(line2-line) }
{print(' ',end='') for _ in range(col2-col)}
print(c, end='')
col2 += 1
print()
'''#出力
a b c
d
'''
>>888 Python
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''
from parse import * #pip install
col2 = 0 ; line2 = 0
for l in s.splitlines():
col = col2 ; line = line2
(c,col2,line2) = parse('[{},{:d},{:d}]',l)
{print() for _ in range(line2-line) }
{print(' ',end='') for _ in range(col2-col)}
print(c, end='')
col2 += 1
print()
'''#出力
a b c
d
'''
934デフォルトの名無しさん
2019/05/17(金) 12:14:50.20ID:8VLhbVxR >>920
は、ランク付けの問題だろ
入力データ
-6 3 9 5 3 -7
出力・ランク
2 3 5 4 3 1
入力データの最も小さい数字を、ランク1 にして、
数字が大きくなるほど、ランクも大きくしていく
同値の場合は、同じランクにして、次のランクも間隔を空けない。
ランク3 が2つあっても、次は、ランク4
つまり、ランクが欠けることはない!
は、ランク付けの問題だろ
入力データ
-6 3 9 5 3 -7
出力・ランク
2 3 5 4 3 1
入力データの最も小さい数字を、ランク1 にして、
数字が大きくなるほど、ランクも大きくしていく
同値の場合は、同じランクにして、次のランクも間隔を空けない。
ランク3 が2つあっても、次は、ランク4
つまり、ランクが欠けることはない!
935デフォルトの名無しさん
2019/05/17(金) 12:23:14.18ID:99nnd/tf >>934
うるせぇ死ね
うるせぇ死ね
936デフォルトの名無しさん
2019/05/17(金) 12:39:09.53ID:L8EHraRu 難しく書いてたけど結局これだけなのか
問題文をわざと複雑に見せかける現代文読解と同じ仕組みじゃないか
問題文をわざと複雑に見せかける現代文読解と同じ仕組みじゃないか
937デフォルトの名無しさん
2019/05/17(金) 12:49:18.63ID:ut9H1r3U プログラム作る前に気づいたので>>931のリンク先のブログラムのタイトルは密かに「順位」にしといたw
938デフォルトの名無しさん
2019/05/17(金) 12:50:56.11ID:l82uGMBO >>936
わざと難しく見せかけているというより、たんに説明が下手なだけだと思う
わざと難しく見せかけているというより、たんに説明が下手なだけだと思う
939デフォルトの名無しさん
2019/05/17(金) 13:23:46.56ID:gFFtTihX 別に難しくない件
940デフォルトの名無しさん
2019/05/17(金) 13:29:01.98ID:L8EHraRu そうですね
難易度は主観ですね
なら短さ長さを比べるとこうなります
・各値の大小関係を変えないように値をなるべく小さくせよ
・ランク付けせよ
もしかしたらこれが要するにただのランク付けだと分かるまで何人が挑戦するかを試してみる社会調査だったのかもしれません
難易度は主観ですね
なら短さ長さを比べるとこうなります
・各値の大小関係を変えないように値をなるべく小さくせよ
・ランク付けせよ
もしかしたらこれが要するにただのランク付けだと分かるまで何人が挑戦するかを試してみる社会調査だったのかもしれません
941デフォルトの名無しさん
2019/05/17(金) 13:36:08.80ID:/5AjAxyT >ランク付けだと分かるまで何人が挑戦するかを試してみる
まさにそうじゃないの?
まさにそうじゃないの?
942デフォルトの名無しさん
2019/05/17(金) 13:44:50.72ID:mxL0YWmq943デフォルトの名無しさん
2019/05/17(金) 14:08:19.69ID:gFFtTihX >>940
アスペ
アスペ
944デフォルトの名無しさん
2019/05/17(金) 14:08:53.72ID:gFFtTihX 問題文を添削しちゃう皆さん
945デフォルトの名無しさん
2019/05/17(金) 14:20:43.10ID:gFFtTihX946デフォルトの名無しさん
2019/05/17(金) 15:06:17.59ID:Jb6joIEA さすがにいちゃもん付け過ぎだろ
元の問題文読めば普通はわかるだろ
元の問題文読めば普通はわかるだろ
947デフォルトの名無しさん
2019/05/17(金) 15:51:11.97ID:99nnd/tf 問題: おっぱいをなるべく小さくせよ。
948デフォルトの名無しさん
2019/05/17(金) 16:00:34.70ID:ut9H1r3U949デフォルトの名無しさん
2019/05/17(金) 16:18:22.99ID:X2USxdO3 お題:自然数を隙間なく自分自身以外の数に対応させよ。
950デフォルトの名無しさん
2019/05/17(金) 16:46:21.83ID:9GdSR9hc >>949 先生、対応させると言う日本語がわかりません。
日本人には難しいです。
日本人には難しいです。
951デフォルトの名無しさん
2019/05/17(金) 17:04:52.99ID:ut9H1r3U >>949
君が何を言っているのかわからない。
君が何を言っているのかわからない。
952デフォルトの名無しさん
2019/05/17(金) 17:24:51.97ID:L8EHraRu >>949
パッ見で分からん
パッ見で分からん
953デフォルトの名無しさん
2019/05/17(金) 18:07:07.73ID:nEasvejW 偶数なら1引く
奇数なら1足すとかでいいんじゃないの
奇数なら1足すとかでいいんじゃないの
954デフォルトの名無しさん
2019/05/17(金) 18:39:31.46ID:9GdSR9hc >>953 良いんじゃないのじゃなくて、他の人が理解できる言葉に翻訳してよ。
これじゃ小学校の国語で平均点以下だろ。
日本語が不自由ならプログラム例を示せば良い。変な言語はダメだけど、C系の素直な言語なら万国共通
これじゃ小学校の国語で平均点以下だろ。
日本語が不自由ならプログラム例を示せば良い。変な言語はダメだけど、C系の素直な言語なら万国共通
955デフォルトの名無しさん
2019/05/17(金) 19:30:38.86ID:Jb6joIEA 要はf: N -> N の∀n∈N f(n) ≠ n かつ全単射な写像を求めろってことでしょ
956デフォルトの名無しさん
2019/05/17(金) 19:35:23.29ID:Jb6joIEA あ、単射じゃなくてもいいか
957デフォルトの名無しさん
2019/05/17(金) 19:40:06.71ID:9GdSR9hc >>955 あのさ、それで人に通じると思ってるの?
そんな仕様書を書いて誰がコーディングするんだよ。
日本語に翻訳して明後日出直してこい。
言語能力にかけてるやつは、自分の頭の中が周りの人からスケスケに見えてると言う妄想を持ってる。
狭い世界で通用しても社会では通用しない。
そんな仕様書を書いて誰がコーディングするんだよ。
日本語に翻訳して明後日出直してこい。
言語能力にかけてるやつは、自分の頭の中が周りの人からスケスケに見えてると言う妄想を持ってる。
狭い世界で通用しても社会では通用しない。
958デフォルトの名無しさん
2019/05/17(金) 19:47:34.60ID:9GdSR9hc ここまで何人もの人がわからんと言ってるのは、その仕様を出した人間の素質が失格という事だろ。
それを何で庇うんだ? 庇う理由を説明してみろよ。 ここがバカばかりと思うならバカに解るように説明しろよな。
バカにわからせなければ、PLは務まらないよ。
と言うか、仕事は一般人としてるのに何をトチ狂ってるんだ? かなり精神を疑うな。
それを何で庇うんだ? 庇う理由を説明してみろよ。 ここがバカばかりと思うならバカに解るように説明しろよな。
バカにわからせなければ、PLは務まらないよ。
と言うか、仕事は一般人としてるのに何をトチ狂ってるんだ? かなり精神を疑うな。
959デフォルトの名無しさん
2019/05/17(金) 19:50:16.70ID:Jb6joIEA 教養のないやつに限ってブチ切れる
960デフォルトの名無しさん
2019/05/17(金) 20:11:05.80ID:KIX3RA0i >>947
桃白白改めミスターポポ改めピラフ改めピッコロさん、くだらない出題はやめてください
桃白白改めミスターポポ改めピラフ改めピッコロさん、くだらない出題はやめてください
961デフォルトの名無しさん
2019/05/17(金) 20:11:56.63ID:9a+COZnd >>959 で、どんな問題なんだ? プログラミングできる仕様として出してくれよ。
963デフォルトの名無しさん
2019/05/17(金) 20:46:06.10ID:Jb6joIEA964デフォルトの名無しさん
2019/05/17(金) 20:48:13.95ID:99nnd/tf 顔射は普通に使う単語ですか?
966デフォルトの名無しさん
2019/05/17(金) 21:06:32.38ID:ut9H1r3U >>964
はい。
はい。
967デフォルトの名無しさん
2019/05/17(金) 21:09:38.99ID:Jb6joIEA968デフォルトの名無しさん
2019/05/17(金) 21:30:53.57ID:0M7uQZeH 920だが、ランク付けだと解が236531と解釈される可能性が有ったので避けた
もっと簡単な書き方があるはそう思う、座圧+1とかでも伝わるだろうし……
もっと簡単な書き方があるはそう思う、座圧+1とかでも伝わるだろうし……
969デフォルトの名無しさん
2019/05/17(金) 22:36:31.21ID:gcMK/Ofn 数値のリストを入力し、値の小さい順に1から順位を付けて、
順位のリストを出力する。同じ値は同じ順位とする
順位のリストを出力する。同じ値は同じ順位とする
970デフォルトの名無しさん
2019/05/17(金) 22:47:54.41ID:TGYryIO4 ほんとそれ
ピラフ改めピッコロはさっさと自害しろ
ピラフ改めピッコロはさっさと自害しろ
971デフォルトの名無しさん
2019/05/17(金) 23:20:58.53ID:L8EHraRu972デフォルトの名無しさん
2019/05/17(金) 23:47:24.37ID:xYITnAAv >>971
あくまで俺の推測だが
一例として、自分自身の数が3のとき自然数から3を除去して
(1) 1, 2, 3, 4, 5, 6, ...
↓
(2) 1, 2, NULL, 4, 5, 6, ...
NULLになった部分をなくすために4以降を左へシフトする
(3) 1, 2, 4, 5, 6, 7, ...
こんな感じで(1)の入力を(3)のような出力にする関数じゃないか?
ただお題の条件としてはもっとゆるくて、入力はオーバーフローしない範囲の自然数、出力は「自分自身の数」を含まない自然数になれば何でもよくて、
定数関数でもハッシュ関数でもいいはず。
ただし、ある入力に対して必ず決まった値にならなければならず、同じ入力で呼び出すたびに出力が違うのはダメ。
あくまで俺の推測だが
一例として、自分自身の数が3のとき自然数から3を除去して
(1) 1, 2, 3, 4, 5, 6, ...
↓
(2) 1, 2, NULL, 4, 5, 6, ...
NULLになった部分をなくすために4以降を左へシフトする
(3) 1, 2, 4, 5, 6, 7, ...
こんな感じで(1)の入力を(3)のような出力にする関数じゃないか?
ただお題の条件としてはもっとゆるくて、入力はオーバーフローしない範囲の自然数、出力は「自分自身の数」を含まない自然数になれば何でもよくて、
定数関数でもハッシュ関数でもいいはず。
ただし、ある入力に対して必ず決まった値にならなければならず、同じ入力で呼び出すたびに出力が違うのはダメ。
973デフォルトの名無しさん
2019/05/18(土) 00:15:42.42ID:w6U4ewGf974デフォルトの名無しさん
2019/05/18(土) 01:03:14.81ID:bbC9YGRR >>942
乙、見事。
乙、見事。
975デフォルトの名無しさん
2019/05/18(土) 01:57:48.06ID:jjK+y75q976デフォルトの名無しさん
2019/05/18(土) 02:15:29.87ID:jjK+y75q977デフォルトの名無しさん
2019/05/18(土) 07:46:37.95ID:w6U4ewGf >>920 Python
ol = [-6, 3, 9, 5, 3, -7]
print([ sorted(set(ol)).index(x)+1 for x in ol ] )
# [2, 3, 5, 4, 3, 1]
ol = [-6, 3, 9, 5, 3, -7]
print([ sorted(set(ol)).index(x)+1 for x in ol ] )
# [2, 3, 5, 4, 3, 1]
978デフォルトの名無しさん
2019/05/18(土) 10:52:55.70ID:0WkfcTHM >>971
1. すべての自然数nに対してf(n)≠n
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)
を満たすような関数f(n)を作れってこと
例えば
1. 入力が1のとき出力は1以外
2. 入力が1のときと2のときで出力が同じになってはダメ
1. すべての自然数nに対してf(n)≠n
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)
を満たすような関数f(n)を作れってこと
例えば
1. 入力が1のとき出力は1以外
2. 入力が1のときと2のときで出力が同じになってはダメ
979デフォルトの名無しさん
2019/05/18(土) 11:06:29.35ID:spo9+l+a980デフォルトの名無しさん
2019/05/18(土) 11:10:21.66ID:vBrA8iCH 単射である必要はない。全射でさえあればよい
981デフォルトの名無しさん
2019/05/18(土) 12:08:52.78ID:R97vL30T 難しすぎて全くわからん…
ハローワールド始めて間もない男にも分かる問題を出してくれぬか
優しく教えて欲しい
ハローワールド始めて間もない男にも分かる問題を出してくれぬか
優しく教えて欲しい
982デフォルトの名無しさん
2019/05/18(土) 12:10:33.89ID:HBaY+7WM >>949
これがあれば1Mbyteのファイルが2byteになっちゃうのか?
これがあれば1Mbyteのファイルが2byteになっちゃうのか?
983デフォルトの名無しさん
2019/05/18(土) 12:48:31.15ID:PrlqGkYa >>978 これのどこがプログラムの問題なのかさっぱりわからん。 小学生の練習問題か?
例えば自然数が 1から4までとした場合、f(n) の出力配列は
f(1) 2,3,4
f(2) 1,3,4
f(3) 1,2,4
f(4) 1,2,3
と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?
例えば自然数が 1から4までとした場合、f(n) の出力配列は
f(1) 2,3,4
f(2) 1,3,4
f(3) 1,2,4
f(4) 1,2,3
と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?
984デフォルトの名無しさん
2019/05/18(土) 14:29:45.05ID:5ij/PJHb985デフォルトの名無しさん
2019/05/18(土) 14:46:59.19ID:0WkfcTHM987デフォルトの名無しさん
2019/05/18(土) 14:57:54.95ID:jXb4UL4k988デフォルトの名無しさん
2019/05/18(土) 15:16:22.17ID:0WkfcTHM >>985
追記
単射なら全射になるのは有限集合の場合だったわ
お詫びにお題
入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ
入力例)
28
2002
216653
出力例)
2^2*7
2*7*11*13
216653
追記
単射なら全射になるのは有限集合の場合だったわ
お詫びにお題
入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ
入力例)
28
2002
216653
出力例)
2^2*7
2*7*11*13
216653
989デフォルトの名無しさん
2019/05/18(土) 15:45:24.30ID:kdcwh9zo >>888 Perl5
@a=([a, 0, 0],
[b, 2, 0],
[c, 4, 0],
[d, 0, 2]);
sub {$t[$_[2]][$_[1]] = $_[0]}->(@$_) for @a;
@b = map{[map{$_ // ' '} @$_]} map{[@$_]} @t;
undef $";
$s = join'', map{"@$_\n"} @b;
print $s;
実行
~ $ perl 13_888.pl
a b c
d
@a=([a, 0, 0],
[b, 2, 0],
[c, 4, 0],
[d, 0, 2]);
sub {$t[$_[2]][$_[1]] = $_[0]}->(@$_) for @a;
@b = map{[map{$_ // ' '} @$_]} map{[@$_]} @t;
undef $";
$s = join'', map{"@$_\n"} @b;
print $s;
実行
~ $ perl 13_888.pl
a b c
d
990デフォルトの名無しさん
2019/05/18(土) 15:57:05.04ID:0itJzGag ハローワールドなら任せて欲しい
991デフォルトの名無しさん
2019/05/18(土) 16:05:30.57ID:5ij/PJHb992デフォルトの名無しさん
2019/05/18(土) 16:32:58.07ID:BaKYgAyw >>990
任せた。
任せた。
993デフォルトの名無しさん
2019/05/18(土) 17:19:27.10ID:4C+see96 >>990
はよ次スレをハローワールドしろや
はよ次スレをハローワールドしろや
994デフォルトの名無しさん
2019/05/18(土) 17:34:28.08ID:BWmpW4IF995デフォルトの名無しさん
2019/05/18(土) 17:35:58.58ID:BWmpW4IF996デフォルトの名無しさん
2019/05/18(土) 17:56:26.22ID:4C+see96 >>995
乙。
乙。
997デフォルトの名無しさん
2019/05/18(土) 21:05:17.15ID:sChpoVCN >>988 Pharo/Squeak Smalltalk
| fn |
fn := [:n |
| m bag |
m := n.
bag := Bag new.
Integer primesUpTo: n sqrt + 1 do: [:prime |
[m isDivisibleBy: prime] whileTrue: [m := m / (bag add: prime)]
].
m > 1 ifTrue: [bag add: m].
String streamContents: [:ss |
bag valuesAndCounts associations sort do: [:assoc |
ss nextPutAll: assoc key asString.
assoc value > 1 ifTrue: [ss nextPutAll: '^', assoc value asString]
] separatedBy: [ss nextPut: $*]
]
].
fn value: 28. "=> '2^2*7' "
fn value: 2002. "=> '2*7*11*13' "
fn value: 216653. "=> '216653' "
| fn |
fn := [:n |
| m bag |
m := n.
bag := Bag new.
Integer primesUpTo: n sqrt + 1 do: [:prime |
[m isDivisibleBy: prime] whileTrue: [m := m / (bag add: prime)]
].
m > 1 ifTrue: [bag add: m].
String streamContents: [:ss |
bag valuesAndCounts associations sort do: [:assoc |
ss nextPutAll: assoc key asString.
assoc value > 1 ifTrue: [ss nextPutAll: '^', assoc value asString]
] separatedBy: [ss nextPut: $*]
]
].
fn value: 28. "=> '2^2*7' "
fn value: 2002. "=> '2*7*11*13' "
fn value: 216653. "=> '216653' "
998デフォルトの名無しさん
2019/05/18(土) 21:18:36.25ID:PrlqGkYa >>987 何か落とし穴があるとしたら、巨大数かなと思い、自然数を増やしてみると、python( iOSのpythonista , ideon )では配列数は 10**7 までだった。
大きな連続数の配列なんて作るバカはいないだろうし、ますます問題の意図がわからん。
一応書いてみたが、lambda 1行のみ ,(def でも何でも良いが)
f978 = lambda x,n:[i for i in range(1,n+1) if i != x]
xが自分の数字、n は自然数の数
https://ideone.com/iMUZ96
呼び出しは、f978(3,10**6) の様に
出力の配列数が大きくなると全ての数のPrint はアホらしいので、
10以上は配列数だけを出してる( これも n-1 だからアホらしいのだが )
out(1,4)
out(2,4)
out(4,4)
out(10**2,10**7)
stdout
個数 n= 4 自数 x= 1 自数以外の数= 3
[2, 3, 4]
個数 n= 4 自数 x= 2 自数以外の数= 3
[1, 3, 4]
個数 n= 4 自数 x= 4 自数以外の数= 3
[1, 2, 3]
個数 n= 10000000 自数 x= 100 自数以外の数= 9999999
大きな連続数の配列なんて作るバカはいないだろうし、ますます問題の意図がわからん。
一応書いてみたが、lambda 1行のみ ,(def でも何でも良いが)
f978 = lambda x,n:[i for i in range(1,n+1) if i != x]
xが自分の数字、n は自然数の数
https://ideone.com/iMUZ96
呼び出しは、f978(3,10**6) の様に
出力の配列数が大きくなると全ての数のPrint はアホらしいので、
10以上は配列数だけを出してる( これも n-1 だからアホらしいのだが )
out(1,4)
out(2,4)
out(4,4)
out(10**2,10**7)
stdout
個数 n= 4 自数 x= 1 自数以外の数= 3
[2, 3, 4]
個数 n= 4 自数 x= 2 自数以外の数= 3
[1, 3, 4]
個数 n= 4 自数 x= 4 自数以外の数= 3
[1, 2, 3]
個数 n= 10000000 自数 x= 100 自数以外の数= 9999999
999デフォルトの名無しさん
2019/05/18(土) 21:29:48.34ID:PrlqGkYa 問題をひねって、不連続のランダムの整数としてもほとんど変わらないだろ。
1000デフォルトの名無しさん
2019/05/18(土) 21:31:36.43ID:gB6Wr8nG (´・_・`)
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 104日 10時間 9分 43秒
新しいスレッドを立ててください。
life time: 104日 10時間 9分 43秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【長野】米価抑制で5キロ2千円台も 小泉農相 [少考さん★]
- 永野芽郁 打ち上げでスピーチ「週刊誌から声かけられたら知りませーん!って言ってくださいね」「ご迷惑をおかけしてすいませーん。ふふふ」★2 [Ailuropoda melanoleuca★]
- 【フジ】第三者委員会 中居正広氏代理人弁護士あてに回答 性暴力断定の証拠は「開示を差し控えます」理由は「守秘義務のため」 [Ailuropoda melanoleuca★]
- 女性が「住みたい街」ランキング2025(首都圏版)。高円寺や荻窪を抑えた1位は“あの駅” [少考さん★]
- 小泉農相、備蓄米の入札中止 スーパーなどに直接売り渡す考えも ★5 [おっさん友の会★]
- 「ダイエー」がPayPayなどのコード決済を終了へ 5月末で [パンナ・コッタ★]
- 【速報】イスラエル大使館員2人が射殺され死亡 アメリカ [597533159]
- コストコのガソリン価格が20円安い理由が「中抜を通さずに直接商社から買ってる」からだった。 [359572271]
- 「祖国を守るために戦争に行く」日本の若者はたった13%で世界最低。諸外国は70%-80%、大丈夫かよこの国.. [512028397]
- 【万博虫】飲食店が悲鳴「沢山の虫さんで悲惨な状況」 [455679766]
- 【絶望】今年のコメ価格、さらに高騰へ…猛暑の影響で害虫「イネカメムシ」が70年ぶりの大発生し超絶不作に [597533159]
- 元日銀副総裁「減反政策をやめれば零細兼業農家が潰れて専業農家に集約されて米価が下がる。できないのはJAの政治力が強いから」 [481941988]