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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 13:53:46 ID:jW5p6F/e.net]
プログラミングのお題スレです。

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

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

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

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

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

876 名前:デフォルトの名無しさん [2020/11/01(日) 01:29:12.30 ID:17LNcGyj.net]
>>835
Kotlin
https://paiza.io/projects/pLXGwy1V_3FlM4eqH2w5tg

877 名前:デフォルトの名無しさん [2020/11/01(日) 01:49:31.61 ID:17LNcGyj.net]
>>835
C
https://paiza.io/projects/hjm6unXa-mcUi6cx1mTJ9g

878 名前:838 mailto:sage [2020/11/01(日) 12:58:01.92 ID:g/v4ZA9S.net]
>>835 Ruby
正規表現を捨てて index+inject に
def trickOrTreat( str )
trick = 'trick'.chars.inject(-1){|r,ch| break r unless r = str.index( ch, r+1 ); r }
treat = 'treat'.chars.inject(-1){|r,ch| break r unless r = str.index( ch, r+1 ); r }
return 'none' unless trick or treat
return 'trick' unless treat
return 'treat' unless trick
return (trick < treat)? 'trick' : 'treat'
end

[ "trick or treat", ". tr ick", "ttrriecatk", "tri kc eat", "my money",
"treat or trick", "treat or trick t",
].each{|s|
puts trickOrTreat( s )
}

879 名前:蟻人間 mailto:sage [2020/11/01(日) 14:40:36.23 ID:wOVD56Lv.net]
お題:大阪都構想が実現すると、現在の大阪市は消滅すると予想される。都構想実現前の住所を実現後の住所に変換しなさい。

880 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 16:05:05.76 ID:+nQAPqAx.net]
次行ってみよう

881 名前:蟻人間 mailto:sage [2020/11/01(日) 16:41:27.74 ID:wOVD56Lv.net]
参考:https://www.asahi.com/articles/ASNBS733ZNBMPTIL00Q.html

882 名前:蟻人間 mailto:sage [2020/11/01(日) 16:44:49.88 ID:wOVD56Lv.net]
これも:https://maidonanews.jp/article/13879682

883 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 16:51:14.83 ID:VQGUeFT5.net]
お前らは競技プログラミングとかやってる?

884 名前:253 mailto:sage [2020/11/01(日) 16:54:48.84 ID:I8lyxV1q.net]
>>868
やろうとしたことはあるがまだ未経験
何か受験勉強みたいになっちゃってるコンテストには魅力を感じない
でも世界トップレベルは年間4000万くらい賞金稼ぐとい話をきいてそういうのにはちょっと惹かれる



885 名前:蟻人間 mailto:sage [2020/11/01(日) 17:00:25.77 ID:wOVD56Lv.net]
>>865
あんまりバカにするなよ。住所変換できないと大坂大混乱になるよ。

886 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 17:18:29.18 ID:EgIfcLXC.net]
バカにしてるのはおまえ
他所の住所変更地の状況知らんのか?50年前の住所でも年賀届くわ
数年〜十数年或いはそれ以上旧住所で配送可能。舐めすぎ

887 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 17:31:11.77 ID:+nQAPqAx.net]
>>870
ここでそのお題といても大混乱が回避できるわけでもなし
そういう問題じゃなくてそろそろ自分にいい問題作るセンスがない事自覚すべき

888 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 17:35:33.69 ID:S9fsJ+JS.net]
データ引っ張ってくるだけじゃん
ただの知識問題は悪問

889 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 18:32:31.31 ID:erpRcPg0.net]
やってみたが
競技系はプログラミングのスキル向上には役立たんよ

890 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 18:50:53.93 ID:4+fLUvoM.net]
>>867
このサイト気持ち悪いな

891 名前:蟻人間 mailto:sage [2020/11/01(日) 19:52:59.24 ID:wOVD56Lv.net]
>>875
太陽風を読めよ。

892 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 19:57:24.03 ID:wWMHVvTS.net]
>>876
消えろ

893 名前:蟻人間 mailto:sage [2020/11/01(日) 20:04:08.68 ID:wOVD56Lv.net]
>>877
お前がえろ

894 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 00:22:13.64 ID:bEILeQs7.net]
>>835 octave
https://ideone.com/BkciwT



895 名前:デフォルトの名無しさん [2020/11/02(月) 04:28:03.49 ID:2/AbCXtL.net]
>>835
Perl
https://paiza.io/projects/Ol_sOAbb2ZYW4hIDFLj2wQ

正規表現使ってみました。

896 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 04:45:05.89 ID:BfD57ecO.net]
"trick"と"treat"を受理するオートマトンを作って
入力文字列から1文字ずつ与えて状態遷移(または待機)させていく
末尾まで先に受理されたほうを答えとする
みたいなことだけ考えた

897 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 04:48:28.19 ID:BfD57ecO.net]
けど実装すると無駄にでかくなりそう

898 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 10:04:22.80 ID:/BOVDIIM.net]
オートマトンって言語でなんか表現できる構造ある?

899 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 10:41:03.91 ID:5JhQS2vf.net]
正規表現で表現できる⇔オートマトンで受理できる
でしょ?
今回なら入力xに対し出力がtrickである場合を

[^t]*t[^r]*r[^ie]*i[^ce]*c[^ke]*k.*
|[^t]*t[^r]*r[^ie]*i[^ce]*c[^ke]*e[^ka]*k.*
...
(10パターン)
....

と正規表現だけで表現できてしまう

900 名前:蟻人間 mailto:sage [2020/11/02(月) 12:23:25.05 ID:iXWhExA8.net]
お題:パラボラアンテナが理論上の焦点に電波を集めることを示しなさい。

パラボラアンテナの半径を100とし、原点を中心にx軸上に焦点が来るように配置する。x軸と平行に電波がアンテナに入ってきて、入射角と反射角が等しくなるように電波が反射する。
このとき、どの場所で反射しても、反射した電波を表す直線が理論上の焦点に十分近づくことを示せ。

901 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 12:23:58.15 ID:UfGVYnOo.net]
まじでセンスないな

902 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 12:36:09.22 ID:zo3ZJgwO.net]
パラボラアンテナの半径ってどこのことだよ

903 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 13:43:55.18 ID:gftnEWfN.net]
common lisp
https://ideone.com/GZ8Wbt
うーん微妙

904 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 14:26:45.62 ID:vIueiXdU.net]
>>835 .bat
@echo off &setlocal enabledelayedexpansion
if "%~1"=="" echo none&exit /b
set "STR=%~1"
set TRICK=trick
set TREAT=treat
set /a n=0, k=0, t=0
:WHILE
if /i "!STR:~%n%,1!"=="!TRICK:~%k%,1!" if %k% LSS 4 ( set /a k+=1 ) else echo trick&exit /b
if /i "!STR:~%n%,1!"=="!TREAT:~%t%,1!" if %t% LSS 4 ( set /a t+=1 ) else echo treat&exit /b
set /a n+=1
if not "!STR:~%n%,1!"=="" goto :WHILE
echo none&exit /b



905 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 18:10:30.68 ID:Ac4tp6ZL.net]
>>835
Haskell
https://ideone.com/wg9JbO

iimport Text.ParserCombinators.Parsec

makeP = mconcat . map ( manyTill anyChar . char )

lastInd x s = case ( runParser ( makeP x ) () "" s ) of
Left _ -> ( [ 2, 0 ] , x )
Right y -> ( [ 0, length $ x ++ y ], x )

trickOrTreat x = snd $ minimum [
lastInd "trick" x,
lastInd "treat" x,
( [1,0], "Happy Halloween" ) ]

main = mapM_ ( print . trickOrTreat ) [
"trick or treat",
". tr ick",
"ttrriecatk",
"tri kc eat",
"my money" ]

906 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 19:01:54.49 ID:hORytTpS.net]
>>835
#include <stdio.h>
#include <string.h>

static void
tot (char *p)
{
int i = 0, j = 0;
if ((p = strchr (p, 't')) && (p = strchr (p + 1, 'r')))
while (*++p && !(*p == "ick"[i] && ++i == 3) && !(*p == "eat"[j] && ++j == 3)) ;
printf ("%s\n", (i == 3) ? "trick" : ((j == 3) ? "treat" : "none"));
}

int
main ()
{
tot ("trick or treat");
tot (". tr ick");
tot ("ttrriecatk");
tot ("tri kc eat");
tot ("my money");
}

907 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 19:55:30.38 ID:0Q72CsT7.net]
お題
アスペクト比X:Y、L[inch]のディスプレイの
幅Wと高さHをcm単位でそれぞれ求めよ

[入力]
X Y L

[出力]
W H ※cm単位で小数第1位まで出力

[例]
16 9 40
=> 88.6 49.8

64 27 29
=> 67.9 28.6

3 4 10.2
=> 15.5 20.7

908 名前:869 mailto:sage [2020/11/02(月) 20:41:57.79 ID:PEXljxha.net]
>>835 octave
https://ideone.com/TknUHT
・残り文字数数える関数fがガバガバだったので修正

909 名前:デフォルトの名無しさん [2020/11/02(月) 20:50:30.27 ID:LqVECFSh.net]
>>892
Java
https://paiza.io/projects/k8RErATdGPNrkP2gRrOmSw

910 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 20:55:38.75 ID:UfGVYnOo.net]
>>892
実用的じゃん

911 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 21:39:44.31 ID:PEXljxha.net]
>>892 octave
https://ideone.com/un3EHy

912 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 22:00:22.68 ID:PEXljxha.net]
>>892 octave
https://ideone.com/kETWpz
・若干の変更

913 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 22:02:25.78 ID:i1cL0pVh.net]
>>885
消えろ

914 名前:デフォルトの名無しさん [2020/11/02(月) 22:12:37.48 ID:2/AbCXtL.net]
>>892
Perl
https://paiza.io/projects/3i_gH0-CGf93OpsUWJzFVg



915 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 23:19:41.46 ID:ZpVsHyOp.net]
>>892 JavaScript
const f=(x, y, l) => [x, y].map(i => (i * 2.54 * l / Math.sqrt(x ** 2 + y ** 2)).toFixed(1))
console.log(...f(16, 9, 40))
console.log(...f(64, 27, 29))
console.log(...f(3, 4, 10.2))

916 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 00:18:12.81 ID:1BjkDVvF.net]
>>892

Hadkell

cmpin =2.54
r10 = (/10).fromInteger.round.(*10)
toWH (x, y, sz) = let
arg = atan2 y x
diag = sz * cmpin
in ( r10 $ (cos arg) * diag , r10 $ (sin arg) * diag )

main = mapM_ ( print . toWH) [
(16, 9, 40),
(64,27,29),
(3,4, 10.2) ]

917 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 01:33:31.56 ID:psuX0FGw.net]
お題
{1,2,3,4,5,6,7,8}
を幾つかの共通部分を持たない空でない集合にわけるやり方を完全列挙
例えば
{1,6}+{2,8}+{3,4,5,7}

{2,8}+{1,6}+{3,4,5,7}
は同じやり方になるので二重カウントしないこと

918 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 02:32:26.13 ID:yN+x511c.net]
>>902
[1..8]は流石にtoo large
haskell

import Data.List

parts [] = [ [ ] ]
parts [x] = [ [ [x] ] ]
parts ( x : xs ) = [ (x : ys) : zs |
ys <- subsequences xs,
zs <- parts $ xs \\ ys ]

main = do
print $ parts [2,3]
print $ parts [1,2,3]
print $ length $ parts [1..8]
----
[[[2],[3]],[[2,3]]]
[[[1],[2],[3]],[[1],[2,3]],[[1,2],[3]],[[1,3],[2]],[[1,2,3]]]
4140

919 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 08:10:12.54 ID:WKYb8LN0.net]
>>903
きれいだな

920 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 09:07:39.02 ID:psuX0FGw.net]
A:={1,2,3,4,5,6,7,8};
A_1:={A};
A_2:={ {a,b} \subset 2^A | a+b=A,~a+~b=A };
A_3:={ {a,b,c} \subset 2^A | a+b+c=A,~a+~b+~c=A };
A_4:={ {a,b,c,d} \subset 2^A | a+b+c+d=A,~a+~b+~c+~d=A };
A_5:={ {a,b,c,d,e} \subset 2^A | a+b+c+d+e=A,~a+~b+~c+~d+~e=A };
A_6:={ {a,b,c,d,e,f} \subset 2^A | a+b+c+d+e+f=A,~a+~b+~c+~d+~e+~f=A };
A_7:={ {a,b,c,d,e,f,g} \subset 2^A | a+b+c+d+e+f+g=A,~a+~b+~c+~d+~e+~f+~g=A };
A_8:={ {a,b,c,d,e,f,g,h} \subset 2^A| a+b+c+d+e+f+g+h=A,~a+~b+~c+~d+~e+~f+~g+~h=A};
B:=A_1+A_2+A_3+A_4+A_5+A_6+A_7+A_8;
count[expand B];

1:{{1},{2},{3},{4},{5},{6},{7},{8}}
2:{{1},{2},{3},{4},{5},{6},{7,8}}
3:{{1},{2},{3},{4},{5},{7},{6,8}}
4:{{1},{2},{3},{4},{5},{8},{6,7}}
5:{{1},{2},{3},{4},{5},{6,7,8}}
6:{{1},{2},{3},{4},{6},{7},{5,8}}
7:{{1},{2},{3},{4},{6},{8},{5,7}}
8:{{1},{2},{3},{4},{6},{5,7,8}}
9:{{1},{2},{3},{4},{5,6},{7,8}}
10:{{1},{2},{3},{4},{7},{8},{5,6}}
11:{{1},{2},{3},{4},{7},{5,6,8}}
12:{{1},{2},{3},{4},{5,7},{6,8}}
...中略....
4135:{{2,7,8},{1,3,4,5,6}}
4136:{{3,7,8},{1,2,4,5,6}}
4137:{{4,7,8},{1,2,3,5,6}}
4138:{{5,7,8},{1,2,3,4,6}}
4139:{{6,7,8},{1,2,3,4,5}}
4140:{{1,2,3,4,5,6,7,8}}

921 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 09:10:16.73 ID:psuX0FGw.net]
美しさだけなら某集合論用処理系に勝る
ものはないと思うが....
>>901の短時間回答能力とHaskelの潜在能力は
驚嘆すべきかも

922 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 09:15:47.91 ID:psuX0FGw.net]
間違ってたときのコード貼ってしまったw
~a+~b=A
とかは要らなかったw
a+b=A
とかだけでよかった
a \cup bが普通の和集合ね。

923 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 21:04:35.96 ID:eC8ouzxK.net]
>>892 bat
:: 引数は整数限定。結果は少数第2位を四捨五入。0〜0.04の時のみ少数第2位まで表示
:: 少し大き目の値を与えるとoverflow
@echo off &setlocal enabledelayedexpansion
set /a "x=%1*100, y=%2*100, z=0, d=%3*254, s=x*x+y*y, a=s>>1"
:WHILE
if %a% NEQ %z% set /a "z=a, a=(a+s/a)>>1" &goto :WHILE
set /a w=x*d/a, h=y*d/a
for %%G in (w h) do (
if !%%G:~-1! GEQ 5 set /a %%G+=10
if !%%G! GEQ 100 ( set %%G=!%%G:~0,-2!.!%%G:~-2,1!
) else if !%%G! GEQ 10 ( set %%G=0.!%%G:~-2,1!
) else if !%%G! GEQ 1 ( set %%G=0.0!%%G!
) else if !%%G! EQU 0 ( set %%G=0.00
) else echo ERROR: %%G=!%%G!
)
echo=%w% %h%

924 名前:デフォルトの名無しさん [2020/11/04(水) 00:20:20.72 ID:rxWDSDf0.net]
>>892 Lua
function f(x, y, l)
local a =2.54 * l / (x * x + y * y)^0.5
return x * a , y * a
end
print(string.format("%.1f , %.1f", f(16, 9, 40)))
実行結果
88.6 , 49.8



925 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 00:20:22.20 ID:kNuSoIVx.net]
windows知らんけど
バッチ・ファイルすげぇなww

926 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 18:59:14.79 ID:M+x6liG8u]
【アフィリエイト】ブログで「月100万円稼ぐ方法」を初心者向けにプロブロガーが解説
https://www.youtube.com/watch?v=tnp0oUbg2uc
【実例有り】ブログで月1万円稼ぐまでの具体的な道筋を教える【プロが解説】
https://www.youtube.com/watch?v=S-pk5AmW3g8
【案件も公開】ブログで月20万円稼ぐ方法の全て。具体的な道筋や戦略も全て公開【雑記でもいけた】
https://www.youtube.com/watch?v=Jiujwjhe300
ブログ収益が大きく伸びた、たった1つのきっかけを話す【ネタバレ:人と会う】
https://www.youtube.com/watch?v=r5cutrq6GO4
ブログで稼ぐ仕組み徹底解説】初心者にもやさしく、丁寧に説明
https://www.youtube.com/watch?v=n4qF7xpL7-M
【ミスるとヤバい】特化ブログと雑記ブログ、どっちがいいの?おすすめの運営方法も解説!
https://www.youtube.com/watch?v=sh2v5Uqlo1M
【危険】ブログで稼げずに「挫折」してしまう人の特徴【初心者は特に注意】
https://www.youtube.com/watch?v=W86zHTngRLE

927 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 20:24:03.31 ID:uO47xEs9.net]
>>902 Ruby
https://ideone.com/uEqDoX

928 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 03:19:19.40 ID:EuRO0zRP.net]
>>902
C++
https://ideone.com/YmUte9

929 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 20:02:28.58 ID:pDv0veJc.net]
お題
'□'(正方形)と'_'(空白)で表される図形を45度回

930 名前:転して描画せよ。

[例1]


/\
\/


[例2]
___□
□□_□
_□□□

/\
\/\
/\/ /\
\/\/\/
 \/\/
  \/
[]
[ここ壊れてます]

931 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 20:47:59.87 ID:uObXfCng.net]
デカくなっててワロタ
良さげなお題

932 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 23:31:16.69 ID:5bWXoO+B.net]
>>914 html
<textarea style="transform:rotate(45deg)">
___□
□□_□
_□□□
</textarea>

933 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 23:39:12.30 ID:W9kenpkY.net]
>>916
すげぇな
今はCSSでこんなことまでできるのか

934 名前:デフォルトの名無しさん mailto:sage [2020/11/05(木) 23:40:00.35 ID:uObXfCng.net]
:scale(2)もしとけ



935 名前:デフォルトの名無しさん mailto:sage [2020/11/06(金) 01:21:28.35 ID:DUBJiW5Z.net]
>>914
haskell
https://ideone.com/VwHiJD

936 名前:デフォルトの名無しさん [2020/11/06(金) 03:01:56.79 ID:2mWV4tVe.net]
>>902
Java
https://paiza.io/projects/zGMV5xqRPjP1fxjo1Zu1Nw

937 名前:253 mailto:sage [2020/11/06(金) 13:23:23.40 ID:1EHNC/LO.net]
>>902 Perl5

use feature qw{current_sub say};
use Data::Dump 'dump';
@a = sub{
 my $l = pop;
 @_ ? ( map{
  sub{
   map{
    sub{
     sub{
      push @{$_[$_]}, $l;
      [@_]
     }->(map{[@$_]} @_);
    }->(@_)
   } 0..@_
  }->(@$_)
 } __SUB__->(@_) ) : [[$l]];
}->(1..8);
say dump @a;
say scalar @a;

実行結果
~ $ perl 18_892.pl
(
[[1 .. 8]],
[[1 .. 7], [8]],
… 中略
[[1], [2], [3], [4], [5], [6], [7, 8]],
[[1], [2], [3], [4], [5], [6], [7], [8]],
)
4140

938 名前:デフォルトの名無しさん mailto:sage [2020/11/06(金) 13:24:39.43 ID:DUBJiW5Z.net]
>>914
haskell
素直に内包表記使ったVer.
https://ideone.com/gA63Fi

939 名前:デフォルトの名無しさん [2020/11/07(土) 15:16:17.29 ID:dGj5mxP2.net]
sed 's/□/◇/g'

あ、いや、なんでもないです。忘れてください。

940 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 15:50:17.56 ID:0+q2MsjY.net]
>>914 bat
@echo off &setlocal enabledelayedexpansion
if "%~1"=="" set "this=%~0" &"%~0" "□"
set /a n=0, Hmax=0
:GET_ARG
set "arg%n%=%~1"
set "arg%n%=!arg%n%:_=0 !"
set "arg%n%=!arg%n%:□=1 !"
shift
if not "%~1"=="" set /a n+=1 &goto :GET_ARG
for /L %%i in (0,1,%n%) do ( set h=0
for %%b in (!arg%%i!) do set /a a[%%i;!h!]=%%b, h+=1
if !h! GTR !Hmax! set /a Hmax=h
)
set /a t=n+Hmax, Hmax-=1
for /L %%a in (0,1,%t%) do for /L %%b in (0,1,%t%) do set R[%%a;%%b]=0
for /L %%a in (0,1,%n%) do for /L %%b in (0,1,%Hmax%) do (
set /a A=%%a+%%b, B=a+1, C=n+%%b-%%a, D=c+1
set /a "R[!A!;!C!]|=a[%%a;%%b], R[!A!;!D!]|=a[%%a;%%b], R[!B!;!C!]|=a[%%a;%%b], R[!B!;!D!]|=a[%%a;%%b]"
REM orをxorに替えればアウトライン表示
)
:: for /L %%A in (0,1,%t%) do (for /L %%B in (0,1,%t%) do set "P%%A=!P%%A!!R[%%A;%%B]!") &echo !P%%A!
for /L %%A in (0,1,%t%) do (
for /L %%B in (0,1,%t%) do (
set /a "M=%%A+%%B, M%%=2"
if "!R[%%A;%%B]!"=="0" (set "S%%A=!S%%A! ") else if "!M!"=="0" (set "S%%A=!S%%A!/") else set "S%%A=!S%%A!\"
)
echo=!S%%A!
)
endlocal
if not "%~0"=="_□□□" "%this%" "___□" "□□_□" "_□□□"
pause &exit /b

941 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 19:47:28.12 ID:/E6xY+R5.net]
バッチでやるとかいい根性してる

942 名前:デフォルトの名無しさん [2020/11/07(土) 21:06:37.63 ID:anINQjB0.net]
>>914 Common Lisp
https://ideone.com/CMyiD0

943 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 22:21:52.44 ID:alCltY04.net]
>>918
scale(1.41421356)でしょ

944 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 23:04:28.88 ID:zLEnd997.net]
>>902
ビット操作で直接作れた
https://paiza.io/projects/JwD_YC7dX2RRZz8G9ydnaA



945 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 00:05:04.78 ID:DLA7KrcO.net]
>>924
バッチファイル兄貴いいぞ
もっとやれ

946 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 00:15:55.29 ID:ct8WHwWl.net]
バッチよくやってるな
batにトランスパイルできるもっといい感じの構文の言語とかないの

947 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 02:24:23.73 ID:vLTv8mzL.net]
バッチで>>902やる猛者はいないのか?
QZならできそうだがだんまりか?

948 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 02:34:25.46 ID:HKu5GaPi.net]
>>928
このコードZen2までのAMDのCPUだと多分とんでもなく遅くなる
ここで使ってるpdep命令がintelのやZen3と比べて100倍以上遅いから

949 名前: mailto:sage [2020/11/08(日) 03:02:51.65 ID:H3a4zXqH.net]
>>931
私は C しか書けません

950 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 03:56:26.07 ID:YnyAcD/m.net]
>>930
こんなのならあった
https://github.com/imachug/BatchBuilder

moduleサポート:
export say_hello
echo Hello, %1!
end export
でエクスポート
import say_hello Takashi
でインポート(というかecho Hello, Takashi!に置き換わる)

値返却 (return) サポート:
export ask q
set /p result=%q%?
return %result%
end export

export delete_dir
import -> agree ask "Delete %1"
if "%agree%" == "yes" (
rmdir /S /Q %1
)
end export

globalキーワード:
module内の変数はデフォでlocal。
global変数にしたいときはglobalキーワードを使う。
global my_var=hogehoge

951 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 03:57:27.82 ID:YnyAcD/m.net]
>>934 の続き

再帰サポートのための2つのディレクティブ:
@safe_recursion
@follow_local

クラスとオブジェクト:
クラス作成
class ClassTest
export say_hello
echo Hello, %1!
end export
export say_bye
echo Bye, %1!
end export
end class

オブジェクト生成
new -> my_class ClassTest

メソッド呼び出し
import %my_class%.say_hello Takashi
import %my_class%.say_bye Takashi

他、クラスフィールドやマジックメソッドなど

952 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 04:20:05.05 ID:YnyAcD/m.net]
>>930
もうひとつ。
https://github.com/kerrgavin/Transpiler-DSL-to-Windows-Batch-Script

>>934 がbatの拡張といったおもむきなのに対して、こちらは専用DSLからのトランスパイラ。Python製。

二値の平均:
avg(arg1, arg2, average)
fun avg {
num a = larg1 + larg2
num a = a/2
"echo" a
}
以下にトランスパイルされる
@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
call :avg %1,%2,%average%
@EXIT /B 0
:avg
set /a a=%~1 + %~2
set /a a=%a% / 2
echo %a%
EXIT /B 0

0から9999まで表示:
for (num i = 0;i < 10000;i+1){
"echo" i
}
トランスパイル結果略

953 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 05:03:48.08 ID:YnyAcD/m.net]
>>930
シェルスクリプトからの変換系:
https://github.com/daniel-sc/bash-shell-to-bat-converter
https://github.com/sagiegurari/shell2batch

あと専用言語からのトランスパイル系でもうひとつ凄いのがあった。
https://github.com/batsh-dev-team/Batsh
タイプ的には >>936 と同じような感じなんだけどbatにもシェルスクリプトにもコンパイルできる。
こっちは凄いねスター4,000超えてるわ。
なんでこれが最初に見つからんのや…
プレイグラウンド( https://batsh.org/ )もあってサンプルロード・コンパイルもできるから試してみて。
文法はオーソドックスなC系ですね。

954 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 05:16:53.07 ID:YnyAcD/m.net]
>>937
moongiftに紹介記事があった。
https://www.moongift.jp/2019/08/batsh-bashbatchのスクリプトを生成するプログラミング言語/
…そしてアドレスバー見たら既にお気に入りに登録されていた…



955 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 08:18:54.23 ID:ct8WHwWl.net]
>>937
これきれいだな

956 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 23:19:00.95 ID:biYC5NlX.net]
もうすぐポッキーの日
[お題] 人口合計でオール1

URLのページに都道府県別の人口が載っている。
 今回使用するのは、2019/10のデータ
 https://ideone.com/R4PCiQ

 同じ県は一回のみで、異なる県を何県でも選んでよい。
 (つまり選び方は全部で 2^47 種類)
 人口合計が"1"のみの数字となる選び方は何種類あるか?
 (実質、1111万1111人, 1億1111万1111人になる選び方)

※一発正解問題、実行時間3秒程度。
 同ページの他の年月人口でも計算できる程度のクオリティでok
※ちなみに 2015/10データだと916(40+876)種類だった。

957 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 23:52:24.94 ID:XExSNiE1.net]
11111111 は43?
111111111はオンラインコンパイラでタイムアウトorz

958 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:38:20.57 ID:duQVrAg3.net]
面白そうなお題

959 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:38:46.30 ID:qJS2/p90.net]
111111111 は650かな?

960 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:45:23.62 ID:qJS2/p90.net]
とりあえず
Haskell

spp19 = (小さいもの順に並べた元データ)

findSum :: Int -> [Int] -> Int
findSum x ys = case ys of
[] -> 0
( z : zs ) | z > x -> 0
( z : zs ) | z == x -> 1
( z : zs ) | otherwise ->
( findSum x zs )
+ ( findSum ( x - z ) zs )

main = do
print $ findSum 15105031 spp19
print $ findSum 11111111 spp19

----
650
43

961 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 02:25:54.45 ID:903MPdZb.net]
batコーイ!!

962 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 02:49:15.00 ID:VuEsWlWs.net]
>>940
https://ideone.com/8nuT5d
力任せなコードだけどどうにか時間内に終わった

963 名前:デフォルトの名無しさん [2020/11/10(火) 13:44:24.83 ID:3xGJBleZ.net]
典型的なdp問題じゃねえの

964 名前:929 mailto:sage [2020/11/10(火) 17:29:30.75 ID:q5cN/btj.net]
>>940

・想定解はDPの数え上げ
 さすがに1.1億×47は苦しいので、
 1.1億に関しては、(全人口 - 1.1億)で計算する。
 そうすれば、1600万×47の計算量で済む。
 
 https://ideone.com/R4PCiQ
  下にpython(numpy)で想定解追加



965 名前:253 mailto:sage [2020/11/11(水) 00:47:47.87 ID:vox+S3u3.net]
(´・ω・`)

966 名前:デフォルトの名無しさん mailto:sage [2020/11/11(水) 18:19:57.16 ID:NMl7/e2v.net]
暇つぶしに>>944がどれくらい再帰呼び出し読んでるか数えてもらった

findSum' x ys = let ( z : zs ) = ys in case ys of
[ ] -> 0
_ | z >= x -> 0
otherwise -> ( findSum' x zs ) + ( findSum' ( x - z ) zs ) + 2
----
2021619696
20億回ちょい
dpだと15,105,031×47=709,936,457で7億回ちょいだから35%ほどになるのか
勉強になった

967 名前:デフォルトの名無しさん [2020/11/12(木) 15:39:00.87 ID:VX9X1ew1.net]
お題1
1〜nまでの偶数をランダムに出力してください

お題2
[開始の数] [増分] [終了の数]を入力として受け取りランダムに出力してください


入力: 1 2 10
出力:
1
1
3
9
1
7
5

968 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 15:58:04.88 ID:uK53dAw4.net]
>>951 を読んで、やっぱり日本語は非論理的な言語だな、と思った。

969 名前:デフォルトの名無しさん [2020/11/12(木) 16:04:34.29 ID:VX9X1ew1.net]
書き手の問題だと思うよ

970 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 18:42:17.55 ID:HU5jtk1k.net]
オレは深まりゆく秋を感じた

971 名前:デフォルトの名無しさん [2020/11/12(木) 19:26:25.71 ID:VX9X1ew1.net]
ふーけゆくー秋の夜ー

972 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 19:34:08.43 ID:nzp5rNOe.net]
>>951 Ruby

p rand(2..$_.to_i) & -2 # => 32 while gets

-*- input -*-
2
10
100

-*- output -*-
2
6
78

p eval$_.gsub(/\s+/,'%s')%%w[.step(*[ , ].rotate).to_a.sample]while gets

-*- input -*-
1 2 10
1 2 10
10 5 99


-*- output -*-
7
1
85

973 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 23:53:28.13 ID:HU5jtk1k.net]
そゆいみか
入力パースするとこは略して

Haskell

import System.Random
import Control.Monad

randomABC a b c = let
r = [ a, a+b .. c ]
in ( r !! ) <$> ( randomRIO ( 0, length r - 1 ) :: IO Int )

main = do
print =<< ( replicateM 20 $ randomABC 1 2 10 )
print =<< ( replicateM 20 $ randomABC 5 7 40 )
----
[1,1,9,7,9,7,7,9,7,5,7,7,7,3,7,1,5,9,5,7]
[33,26,26,26,12,19,40,40,12,33,19,26,19,26,26,33,19,5,5,33]

974 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 20:43:02.05 ID:3cTZftC0.net]
>>951 bat
@echo off &setlocal
set /a n=8 &REM 出力個数
echo -3 9
for /L %%i in (1,1,%n%) do call :RAND_A2B -3 9
echo=&echo 3 -5
for /L %%i in (1,1,%n%) do call :RAND_A2B 3 -5
echo=&echo 4 4
for /L %%i in (1,1,%n%) do call :RAND_A2B 4 4
echo=&echo -5 2 2
for /L %%i in (1,1,%n%) do call :RAND_SiE -5 2 2
echo=&echo 2 -3 -12
for /L %%i in (1,1,%n%) do call :RAND_SiE 2 -3 -12
echo=&echo 2 3 -4
for /L %%i in (1,1,%n%) do call :RAND_SiE 2 3 -4
pause &exit /b
:: 1〜n間の偶数をrandom出力 => a〜b間の偶数をrandom出力
:RAND_A2B
set



975 名前:local
set /a "f=%1&1"
if %1 EQU %2 ( if %f% EQU 0 echo %1) &exit /b
if %1 LSS %2 set /a a=%1+1, b=%2
if %1 GTR %2 set /a a=%2+1, b=%1
set /a "c=b-a+1, r=((%random%<<15)+%random%)%%c+a, r&=~1"
echo %r%&exit /b
:: [開始の数] [増分] [終了の数] を引数として条件を満たす値をrandom出力
:RAND_SiE
setlocal
if %2 NEQ 0 ( set /a "a=(%3-%1)/%2" ) else set /a a=0
if %a% LSS 0 set /a a=0
set /a "r=%random%%%(a+1)*%2+%1"
echo %r%&exit /b
[]
[ここ壊れてます]

976 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 22:58:48.40 ID:ghr6tNw2.net]
オンラインでbat動かせるサイトない?
>>958試して見たいんやけど






[ 続きを読む ] / [ 携帯版 ]

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

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