プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part17
https://mevius.5ch.net/test/read.cgi/tech/1584031367/
プログラミングのお題スレ Part18
■ このスレッドは過去ログ倉庫に格納されています
2020/07/14(火) 13:53:46.47ID:jW5p6F/e
115デフォルトの名無しさん
2020/07/19(日) 21:45:13.46ID:h5vFOzT4 頭が悪いことがばれたからって
必死に数学の知識を見せようと頑張ってる
でも頭の悪さが随所に滲み出てる
自覚のないアホ
必死に数学の知識を見せようと頑張ってる
でも頭の悪さが随所に滲み出てる
自覚のないアホ
116蟻人間 ◆T6xkBnTXz7B0
2020/07/19(日) 21:56:49.40ID:GV3E92FC >>115 数学出来るなら手伝ってくれよ。。。これから面白くなるから。
function turn_angle(angle1, angle2) {
// x-y平面上のangle1度の方向ベクトル(dx, dy)。
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);
// (dx, dy, 0)をx軸を中心にangle2度回転したものを(dx, dy, dz)とする。
...(ここに何か書く)...
// 実際に回転させる。
turn_dir(dx, dy, dz);
}
function turn_angle(angle1, angle2) {
// x-y平面上のangle1度の方向ベクトル(dx, dy)。
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);
// (dx, dy, 0)をx軸を中心にangle2度回転したものを(dx, dy, dz)とする。
...(ここに何か書く)...
// 実際に回転させる。
turn_dir(dx, dy, dz);
}
117デフォルトの名無しさん
2020/07/19(日) 21:57:24.56ID:5kiTFqsE 誰もイキらずに淡々と問題と答えのレスだけ並んでく雰囲気は良さを感じたけど
やっぱクソコテって怖いな
やっぱクソコテって怖いな
118蟻人間 ◆T6xkBnTXz7B0
2020/07/19(日) 22:06:51.03ID:GV3E92FC >>116
dz = dy * Math.sin(angle2 * Math.PI / 180);
dy *= Math.cos(angle2 * Math.PI / 180);
次は、三次元のturn_dirね。数学、スゴクデキルんでしょ?
dz = dy * Math.sin(angle2 * Math.PI / 180);
dy *= Math.cos(angle2 * Math.PI / 180);
次は、三次元のturn_dirね。数学、スゴクデキルんでしょ?
119蟻人間 ◆T6xkBnTXz7B0
2020/07/19(日) 22:12:10.73ID:GV3E92FC お題: JavaScript
function turn_dir(dx, dy, dz) {
// (dx, dy, dz)は長さ1の方向ベクトル。
// 長さ1の方向ベクトル(turtle_dx, turtle_dy, turtle_dz)を(dx, dy, dz)だけ回転させる。
...(ここに何か書く)...
}
function turn_dir(dx, dy, dz) {
// (dx, dy, dz)は長さ1の方向ベクトル。
// 長さ1の方向ベクトル(turtle_dx, turtle_dy, turtle_dz)を(dx, dy, dz)だけ回転させる。
...(ここに何か書く)...
}
120蟻人間 ◆T6xkBnTXz7B0
2020/07/19(日) 22:16:20.98ID:GV3E92FC ♪はい、コーディングいってみよー!
はいはいはい、はいはいはい!
はいはいはい、はいはいはい!
121蟻人間 ◆T6xkBnTXz7B0
2020/07/19(日) 23:32:08.26ID:T8vbWyFG 俺はそういう悪評トリックに引っ掛からないよ。間違いは的確に指摘頂きたい。
122デフォルトの名無しさん
2020/07/20(月) 06:57:18.16ID:P7t0RBc6 >>110-121
(1)のソースにオービットコントロールを付けると楽しいですよ。
<!-- OrbitControls.jsファイルソース読込 -->
<script src="./three.js-master/examples/js/controls/OrbitControls.js"></script>
//controls変数宣言追加
var scene, renderer, camera, controls;
function init() {//イニシャライズの
・・・
camera.lookAt(0, 0, 0);
//controlsインスタンス生成してカメラとレンダラー渡すだけ
controls = new THREE.OrbitControls( camera, renderer.domElement );
scene = new THREE.Scene();
//ついでに座標軸表示もおすすめ
scene.add( new THREE.AxisHelper(50) );
}
https://i.imgur.com/uFIgx6x.png
(1)のソースにオービットコントロールを付けると楽しいですよ。
<!-- OrbitControls.jsファイルソース読込 -->
<script src="./three.js-master/examples/js/controls/OrbitControls.js"></script>
//controls変数宣言追加
var scene, renderer, camera, controls;
function init() {//イニシャライズの
・・・
camera.lookAt(0, 0, 0);
//controlsインスタンス生成してカメラとレンダラー渡すだけ
controls = new THREE.OrbitControls( camera, renderer.domElement );
scene = new THREE.Scene();
//ついでに座標軸表示もおすすめ
scene.add( new THREE.AxisHelper(50) );
}
https://i.imgur.com/uFIgx6x.png
123デフォルトの名無しさん
2020/07/20(月) 07:42:33.17ID:ozWDjdlg >>118
やってみたよ
function turn_angle(angle1, angle2) {
if( !angle2 || angle2==0){
turn_dir(Math.cos(angle1 * Math.PI / 180), Math.sin(angle1 * Math.PI / 180), 0);
}else{
// x-y平面上のangle1度の方向ベクトル(dx, dy)。
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);
// (dx, dy, 0)をx軸を中心にangle2度回転したものを(dx, dy, dz)とする。
var dz = dy * Math.sin(angle2 * Math.PI / 180);
//dy *= Math.cos(angle2 * Math.PI / 180);
turtle_dz = dz;
// 実際に回転させる。
turn_dir(dx, dy, dz);
}
}
function draw() {
set_pos(0, 0, 0);
set_dir(0, 100, 0);
for (var i = 0; i < 18; ++i) {
walk(15);
//turn_angle(45);
turn_angle(45, 20);
}
}
https://i.imgur.com/CdQvIDR.png
https://i.imgur.com/G4HUVBh.png
やってみたよ
function turn_angle(angle1, angle2) {
if( !angle2 || angle2==0){
turn_dir(Math.cos(angle1 * Math.PI / 180), Math.sin(angle1 * Math.PI / 180), 0);
}else{
// x-y平面上のangle1度の方向ベクトル(dx, dy)。
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);
// (dx, dy, 0)をx軸を中心にangle2度回転したものを(dx, dy, dz)とする。
var dz = dy * Math.sin(angle2 * Math.PI / 180);
//dy *= Math.cos(angle2 * Math.PI / 180);
turtle_dz = dz;
// 実際に回転させる。
turn_dir(dx, dy, dz);
}
}
function draw() {
set_pos(0, 0, 0);
set_dir(0, 100, 0);
for (var i = 0; i < 18; ++i) {
walk(15);
//turn_angle(45);
turn_angle(45, 20);
}
}
https://i.imgur.com/CdQvIDR.png
https://i.imgur.com/G4HUVBh.png
124蟻人間 ◆T6xkBnTXz7B0
2020/07/20(月) 15:09:49.43ID:rHNryQzp 傾けた木が平面にならない。
https://github.com/katahiromz/3D
(4) https://github.com/katahiromz/3D/blob/master/4.html
https://twitter.com/katahiromz/status/1285093638557466624/photo/1
何でだろ。
https://github.com/katahiromz/3D からダウンロードして下さい。
お題: (4) を修正して木が平面になるようにせよ。
https://twitter.com/5chan_nel (5ch newer account)
https://github.com/katahiromz/3D
(4) https://github.com/katahiromz/3D/blob/master/4.html
https://twitter.com/katahiromz/status/1285093638557466624/photo/1
何でだろ。
https://github.com/katahiromz/3D からダウンロードして下さい。
お題: (4) を修正して木が平面になるようにせよ。
https://twitter.com/5chan_nel (5ch newer account)
125デフォルトの名無しさん
2020/07/20(月) 16:08:13.13ID:UHinuGOV お題じゃなくて作成依頼ですか?w
126蟻人間 ◆T6xkBnTXz7B0
2020/07/20(月) 16:16:33.54ID:6GFyBW1T こういうのは数学が鬼ズバできる猛者に任せたい所だが。。。
報酬は出しちゃいかんのか。
報酬は出しちゃいかんのか。
127デフォルトの名無しさん
2020/07/20(月) 17:25:48.10ID:uvZgkaZD 出ないならやらない
128デフォルトの名無しさん
2020/07/20(月) 17:58:58.92ID:8mFfSXNu いや、そういう猛者がいるところに依頼してこいよ
報酬出すんならランサーズとかにでも行ってこい
なんでここで話題にするんだ
報酬出すんならランサーズとかにでも行ってこい
なんでここで話題にするんだ
129デフォルトの名無しさん
2020/07/20(月) 17:59:50.36ID:8mFfSXNu そういう意味不明な言動を繰り返すから糞コテ呼ばわりされるって気付いて
130蟻人間 ◆T6xkBnTXz7B0
2020/07/20(月) 18:37:44.48ID:rHNryQzp 寺へ行きました。すみません。
131デフォルトの名無しさん
2020/07/20(月) 23:40:32.05ID:5ka8Ymx5 >>124
なにこれ激重。1〜3はIEでも動くけど4はクロームでも少し時間かかる。
https://i.imgur.com/Kkti3xQ.gif
舞フレームごとに書き出してるんかな?
3Dオブジェクトコンテナにでも入れた方がいいのかな?
なにこれ激重。1〜3はIEでも動くけど4はクロームでも少し時間かかる。
https://i.imgur.com/Kkti3xQ.gif
舞フレームごとに書き出してるんかな?
3Dオブジェクトコンテナにでも入れた方がいいのかな?
132蟻人間 ◆T6xkBnTXz7B0
2020/07/20(月) 23:47:38.07ID:6GFyBW1T やろうとしてるのは、三次元フラクタルと臓器の実体化だから、超複雑な図形を再帰で描くことになる。再帰が多ければ確かに計算量は爆発するよ。
133デフォルトの名無しさん
2020/07/20(月) 23:52:17.88ID:/f9oEP+1 いい加減IE捨てろよ
134アンスタ7.2日目 ◆mqSs/N.hZs
2020/07/20(月) 23:54:27.58ID:5ka8Ymx5 >>124
https://i.imgur.com/Kkti3xQ.gif
タートルグラフィックスTreeの平面化
https://i.imgur.com/hNNvsE0.gif
3次元にしたいのか平面にしたいのかどっちなんだか。。。
変更箇所↓
function turn_angle(angle1, angle2=0) {
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);
angle2 += turtle_spin;
var dz = dy * Math.sin(angle2 * Math.PI / 180);
//dy *= Math.cos(angle2 * Math.PI / 180);
turtle_z = dz;
turn_dir(dx, dy, dz);
}
function draw() {
//set_pos(0, 0, 0);
set_dir(0, 100, 0);
//koch(6, 50);
set_pos(0, 0, 0);
//set_dir(0, 100, 100);
tree(10, 40, 10);
}
https://i.imgur.com/Kkti3xQ.gif
タートルグラフィックスTreeの平面化
https://i.imgur.com/hNNvsE0.gif
3次元にしたいのか平面にしたいのかどっちなんだか。。。
変更箇所↓
function turn_angle(angle1, angle2=0) {
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);
angle2 += turtle_spin;
var dz = dy * Math.sin(angle2 * Math.PI / 180);
//dy *= Math.cos(angle2 * Math.PI / 180);
turtle_z = dz;
turn_dir(dx, dy, dz);
}
function draw() {
//set_pos(0, 0, 0);
set_dir(0, 100, 0);
//koch(6, 50);
set_pos(0, 0, 0);
//set_dir(0, 100, 100);
tree(10, 40, 10);
}
135デフォルトの名無しさん
2020/07/20(月) 23:57:55.33ID:5ka8Ymx5 >>133
クロームより軽いから、捨てられなくて。。。
クロームより軽いから、捨てられなくて。。。
136蟻人間 ◆T6xkBnTXz7B0
2020/07/21(火) 00:03:34.18ID:iLwMnecK137デフォルトの名無しさん
2020/07/22(水) 22:25:22.87ID:ILXZvJ+B 「1+1は2じゃないぞ。オレたちは1+1で200だ!10倍だぞ10倍」
…が、なんとなく成り立っているように感じられるプログラムを作って発表せよ。
…が、なんとなく成り立っているように感じられるプログラムを作って発表せよ。
138デフォルトの名無しさん
2020/07/22(水) 22:30:15.48ID:IwIxQ1Ze お題: ランダムな整数が格納された長さNの配列から、偶数の要素のみを抜き出せ
Nは任意とする
Nは任意とする
139デフォルトの名無しさん
2020/07/22(水) 22:57:06.83ID:EawLE7Sy140デフォルトの名無しさん
2020/07/23(木) 00:07:39.47ID:DuCdQo+y >>137
面白いものができてしまったわ
class Integer
def +(other) 200 end
def /(other) 10 end
end
p "1+1は2じゃないぞ。オレたちは1+1で#{1 + 1}だ!#{rate = 200 / 2}倍だぞ#{rate}倍"
# => "1+1は2じゃないぞ。オレたちは1+1で200だ!10倍だぞ10倍"
https://repl.it/@vip0/override-plus-1#main.rb
面白いものができてしまったわ
class Integer
def +(other) 200 end
def /(other) 10 end
end
p "1+1は2じゃないぞ。オレたちは1+1で#{1 + 1}だ!#{rate = 200 / 2}倍だぞ#{rate}倍"
# => "1+1は2じゃないぞ。オレたちは1+1で200だ!10倍だぞ10倍"
https://repl.it/@vip0/override-plus-1#main.rb
141デフォルトの名無しさん
2020/07/23(木) 10:38:13.83ID:bJ7HfHNw142デフォルトの名無しさん
2020/07/23(木) 22:03:16.45ID:VBywRp49143デフォルトの名無しさん
2020/07/23(木) 23:12:54.26ID:QnunbgyT144デフォルトの名無しさん
2020/07/24(金) 00:24:32.57ID:F0SZWNxk145デフォルトの名無しさん
2020/07/24(金) 03:32:41.61ID:6ZonvnML146デフォルトの名無しさん
2020/07/24(金) 03:47:06.33ID:6ZonvnML >>138
Kotlin 及び Kotlin Script ではこんな風になる(a が元の配列または List)。
val b = a.filter { (it % 2) == 0 }
もちろん比較部分は (it and 1) == 0 等でも良い。it が偶数の時に true になりさえすればなんでも良い。
配列の要素数の N についてはここでは考える必要なし。
要素の型が Int かどうかも考える必要なしだが、% 2 の計算ができないとか結果が Int の 0 と比較できなければコンパイルエラー、または Script なら読んだ直後の文法チェック時にエラーだと思う。
Kotlin 及び Kotlin Script ではこんな風になる(a が元の配列または List)。
val b = a.filter { (it % 2) == 0 }
もちろん比較部分は (it and 1) == 0 等でも良い。it が偶数の時に true になりさえすればなんでも良い。
配列の要素数の N についてはここでは考える必要なし。
要素の型が Int かどうかも考える必要なしだが、% 2 の計算ができないとか結果が Int の 0 と比較できなければコンパイルエラー、または Script なら読んだ直後の文法チェック時にエラーだと思う。
147デフォルトの名無しさん
2020/07/25(土) 07:02:03.31ID:j1aQFTSL148デフォルトの名無しさん
2020/07/25(土) 11:32:49.78ID:vIjhxGJs 大抵の言語でfilter modulo一発だよね。
お題www
お題www
149デフォルトの名無しさん
2020/07/26(日) 11:42:26.03ID:467XWCJo >>138
ランダムは副作用なので、ちと面倒臭い。
(厳密には擬似乱数を作る為の種(newStdGen)だけが副作用)
Haskell
import System.Random
main = f 10 >>= print
f :: Int -> IO [Int]
f n = newStdGen >>= return.filter even.take n.randomRs (1,100)
実行結果
[56,70,100]
型指定しないと型推論が働かない。
(生成される乱数が整数とは限らない為)
戻り値は型で分かる通り、普通のリストでは無くIOなリスト。
newStdGenを使っているので、IOな値を返さないといけない。
(printもIO ()を返すのでreturnをprintに置き換えて直接出力も可能ではある)
randomRs (1,100) で1から100までの乱数の無限リストを生成。
後はtakeで無限リストから任意の個数を取り出してfilterするだけ。
(takeとfilterは順番が逆だと乱数の無限リストから偶数を任意の個数取り出すので問題の意図と違ってしまう)
問題が「出力しろ」では無く「抜き出せ」なので、あえてprintは関数の外に置いた。
ランダムは副作用なので、ちと面倒臭い。
(厳密には擬似乱数を作る為の種(newStdGen)だけが副作用)
Haskell
import System.Random
main = f 10 >>= print
f :: Int -> IO [Int]
f n = newStdGen >>= return.filter even.take n.randomRs (1,100)
実行結果
[56,70,100]
型指定しないと型推論が働かない。
(生成される乱数が整数とは限らない為)
戻り値は型で分かる通り、普通のリストでは無くIOなリスト。
newStdGenを使っているので、IOな値を返さないといけない。
(printもIO ()を返すのでreturnをprintに置き換えて直接出力も可能ではある)
randomRs (1,100) で1から100までの乱数の無限リストを生成。
後はtakeで無限リストから任意の個数を取り出してfilterするだけ。
(takeとfilterは順番が逆だと乱数の無限リストから偶数を任意の個数取り出すので問題の意図と違ってしまう)
問題が「出力しろ」では無く「抜き出せ」なので、あえてprintは関数の外に置いた。
150デフォルトの名無しさん
2020/07/26(日) 11:54:08.47ID:arqbmdN/ Haskellのコード見たいと思ってた
151デフォルトの名無しさん
2020/07/26(日) 11:55:36.48ID:Lwmxod4b 流行らなかった訳が分かった
152デフォルトの名無しさん
2020/07/26(日) 12:16:01.64ID:yLhsD6tn153デフォルトの名無しさん
2020/07/26(日) 12:31:12.02ID:XQciIU0B お題
2つの文字列の差を[]で囲って出力してください
例1
入力:abc adc
出力:a[b]c
例2
入力:abc acd
出力:a[bc]
例3
入力:abc bcc
出力:[ab]c
2つの文字列の差を[]で囲って出力してください
例1
入力:abc adc
出力:a[b]c
例2
入力:abc acd
出力:a[bc]
例3
入力:abc bcc
出力:[ab]c
154デフォルトの名無しさん
2020/07/26(日) 15:30:12.41ID:yLhsD6tn >>153
Haskell
一応、長さが違う場合、短い方に合わせる様にしてみた。
テストし切れてないかもなので、バグに気付いたら教えて下しあ。
main = putStrLn $ g "abcdefrh" "acdgefggn"
f False [] _ =[]
f False _ [] =[]
f True [] _ = "]":[]
f True _ [] = "]":[]
f flg (x:xs) (y:ys) | flg == True && x == y = ("]" ++ [x]):f False xs ys
f flg (x:xs) (y:ys) | x == y = [x]:f False xs ys
f flg (x:xs) (y:ys) | flg == False = ("[" ++ [x]):f True xs ys
f flg (x:xs) (y:ys) | flg == True = [x]:f flg xs ys
g xs = concat.f False xs
実行結果
"a[bcd]ef[rh]"
Haskell
一応、長さが違う場合、短い方に合わせる様にしてみた。
テストし切れてないかもなので、バグに気付いたら教えて下しあ。
main = putStrLn $ g "abcdefrh" "acdgefggn"
f False [] _ =[]
f False _ [] =[]
f True [] _ = "]":[]
f True _ [] = "]":[]
f flg (x:xs) (y:ys) | flg == True && x == y = ("]" ++ [x]):f False xs ys
f flg (x:xs) (y:ys) | x == y = [x]:f False xs ys
f flg (x:xs) (y:ys) | flg == False = ("[" ++ [x]):f True xs ys
f flg (x:xs) (y:ys) | flg == True = [x]:f flg xs ys
g xs = concat.f False xs
実行結果
"a[bcd]ef[rh]"
155デフォルトの名無しさん
2020/07/26(日) 17:41:12.51ID:1PJx+gwa やっぱフラグしかないのか?
156デフォルトの名無しさん
2020/07/26(日) 19:21:26.42ID:+ODzYEeD >>153 Ruby
def resolve( s )
f = true
ss = s.split.map{|w| w.chars }
ss[0].zip( ss[1] ).inject(''){|r, (c,d)|
r << ( (f)? '[': ']' ) if (c == d) != f
f = c == d
r << c
} + ((f)? '' : ']')
end
[ "abc adc", "abc acd", "abc bcc" ].each{|s|
puts "入力:#{s}"
puts "出力:#{resolve( s )}\n\n"
}
def resolve( s )
f = true
ss = s.split.map{|w| w.chars }
ss[0].zip( ss[1] ).inject(''){|r, (c,d)|
r << ( (f)? '[': ']' ) if (c == d) != f
f = c == d
r << c
} + ((f)? '' : ']')
end
[ "abc adc", "abc acd", "abc bcc" ].each{|s|
puts "入力:#{s}"
puts "出力:#{resolve( s )}\n\n"
}
157デフォルトの名無しさん
2020/07/26(日) 23:12:10.92ID:3QUkzPB/ >>155
確かこんなのあったな〜・・・と、inword/outword関数の相互再帰で書いてみた。
Haskell
main = (putStrLn.f "abcdefrt") "acdgefgg"
f xs ys | g xs ys =[]
f (x:xs) (y:ys) | x == y = outword (x:xs) (y:ys)
f xs ys = inword xs ys
inword xs ys | g xs ys = ']':[]
inword (x:xs) (y:ys) | x == y = ']':x:outword xs ys
inword (x:xs) (_:ys) = x:inword xs ys
outword xs ys | g xs ys = []
outword (x:xs) (y:ys) | x == y = x:outword xs ys
outword (x:xs) (_:ys) = '[':x:inword xs ys
g xs ys = or [null xs, null ys]
確かこんなのあったな〜・・・と、inword/outword関数の相互再帰で書いてみた。
Haskell
main = (putStrLn.f "abcdefrt") "acdgefgg"
f xs ys | g xs ys =[]
f (x:xs) (y:ys) | x == y = outword (x:xs) (y:ys)
f xs ys = inword xs ys
inword xs ys | g xs ys = ']':[]
inword (x:xs) (y:ys) | x == y = ']':x:outword xs ys
inword (x:xs) (_:ys) = x:inword xs ys
outword xs ys | g xs ys = []
outword (x:xs) (y:ys) | x == y = x:outword xs ys
outword (x:xs) (_:ys) = '[':x:inword xs ys
g xs ys = or [null xs, null ys]
158デフォルトの名無しさん
2020/07/29(水) 09:26:50.38ID:yJ6wpcWu お題1
じゃんけんを実装してください
1 = ぐー
2 = ちょき
3 = ぱー
入力: 1
出力: あなた=ぐー コンピュータ=ちょき あなたの勝ちです
お題2
あなたの勝率を指定できるようにしてください
勝率は0.0〜1.0で入力します
入力: 1 0.7
出力: あなた=ぐー コンピュータ=ちょき あなたの勝ちです
じゃんけんを実装してください
1 = ぐー
2 = ちょき
3 = ぱー
入力: 1
出力: あなた=ぐー コンピュータ=ちょき あなたの勝ちです
お題2
あなたの勝率を指定できるようにしてください
勝率は0.0〜1.0で入力します
入力: 1 0.7
出力: あなた=ぐー コンピュータ=ちょき あなたの勝ちです
159デフォルトの名無しさん
2020/07/29(水) 22:59:47.88ID:tovqwAmw >>158 Ruby
JANKEN = %w[Goo Chocky Parr]
KEKKA = %w[Win Lose Draw]
#お題1
odai1 = -> n do
r = rand(3)
'You: %s, Com: %s. %s' % [JANKEN[n - 1], JANKEN[(n + r) % 3], KEKKA[r]]
end
puts odai1[1] # => You: Goo, Com: Chocky. Win
puts odai1[2] # => You: Chocky, Com: Goo. Lose
puts odai1[3] # => You: Par, Com: Par. Draw
#お題2
odai2 = -> (n, p) do
r = rand < p ? 0 : rand(2) + 1
'You: %s, Com: %s. %s' % [JANKEN[n - 1], JANKEN[(n + r) % 3], KEKKA[r]]
end
puts odai2[1, 0] # => You: Goo, Com: Par. Lose
puts odai2[2, 1] # => You: Goo, Com: Chocky. Win
puts odai2[3, 0.3] # => You: Par, Com: Chocky. Lose
puts odai2[3, 0.3] # => You: Par, Com: Goo. Win
puts odai2[3, 0.3] # => You: Par, Com: Par. Draw
puts odai2[3, 0.3] # => You: Par, Com: Chocky. Lose
JANKEN = %w[Goo Chocky Parr]
KEKKA = %w[Win Lose Draw]
#お題1
odai1 = -> n do
r = rand(3)
'You: %s, Com: %s. %s' % [JANKEN[n - 1], JANKEN[(n + r) % 3], KEKKA[r]]
end
puts odai1[1] # => You: Goo, Com: Chocky. Win
puts odai1[2] # => You: Chocky, Com: Goo. Lose
puts odai1[3] # => You: Par, Com: Par. Draw
#お題2
odai2 = -> (n, p) do
r = rand < p ? 0 : rand(2) + 1
'You: %s, Com: %s. %s' % [JANKEN[n - 1], JANKEN[(n + r) % 3], KEKKA[r]]
end
puts odai2[1, 0] # => You: Goo, Com: Par. Lose
puts odai2[2, 1] # => You: Goo, Com: Chocky. Win
puts odai2[3, 0.3] # => You: Par, Com: Chocky. Lose
puts odai2[3, 0.3] # => You: Par, Com: Goo. Win
puts odai2[3, 0.3] # => You: Par, Com: Par. Draw
puts odai2[3, 0.3] # => You: Par, Com: Chocky. Lose
160デフォルトの名無しさん
2020/07/29(水) 23:09:16.98ID:tovqwAmw 下から5行目タイポ
puts odai2[2, 1] # => You: Chocky, Com: Parr. Win
puts odai2[2, 1] # => You: Chocky, Com: Parr. Win
161デフォルトの名無しさん
2020/07/29(水) 23:11:53.00ID:z6Fnx3oM Parr
出たか連続校正レス君
出たか連続校正レス君
162デフォルトの名無しさん
2020/07/29(水) 23:15:30.50ID:zhbinuHB 別にええやろ
163蟻人間 ◆T6xkBnTXz7B0
2020/07/29(水) 23:42:09.78ID:hGtKVe2E 子ども国会で、グー、チョキ、パーのつづりを次のように閣議決定しました。
グーはgoo、
チョキはchoki、
パーはpar、
ジャンケンはJankenとする。
グーはgoo、
チョキはchoki、
パーはpar、
ジャンケンはJankenとする。
164デフォルトの名無しさん
2020/07/30(木) 00:20:11.92ID:aEaasmNp Unicode の \u270A \u270B \u270C
165デフォルトの名無しさん
2020/07/30(木) 15:16:52.35ID:cH8Va6i2 自然数AとBがあります
A * B ではない方法で、AとBを掛けた結果を求めなさい。
ただし、AとBは4バイトの数値型で、どのような値が入ってきても
実施してからなるべく近い時間で計算終了する方が高得点とします。
A * B ではない方法で、AとBを掛けた結果を求めなさい。
ただし、AとBは4バイトの数値型で、どのような値が入ってきても
実施してからなるべく近い時間で計算終了する方が高得点とします。
166デフォルトの名無しさん
2020/07/30(木) 15:58:10.10ID:aEaasmNp >>165 Ruby
def multiply( a, b )
ans = 0
while a > 0
ans += b if a.odd?
a >>= 1
b <<= 1
end
ans
end
multiply( 0x12345678, 0x87654321 ) #=> 693779765864729976
def multiply( a, b )
ans = 0
while a > 0
ans += b if a.odd?
a >>= 1
b <<= 1
end
ans
end
multiply( 0x12345678, 0x87654321 ) #=> 693779765864729976
167デフォルトの名無しさん
2020/08/01(土) 20:01:40.49ID:eF75V+Af >>165
import Math;
int kakezan(a, b) {
int min, max = Math.sort([a, b]);
if(min == 0) return 0;
return Math.square(min) + kakezan(min, max - min);
}
printf(kakezan(0x12345678, 0x87654321)); // 693779765864729976
import Math;
int kakezan(a, b) {
int min, max = Math.sort([a, b]);
if(min == 0) return 0;
return Math.square(min) + kakezan(min, max - min);
}
printf(kakezan(0x12345678, 0x87654321)); // 693779765864729976
168デフォルトの名無しさん
2020/08/01(土) 21:52:47.76ID:xRTQ61eG >>165
function mul(a, b) {
let prod = 0;
const unit = Math.sign(a) + Math.sign(b) ? 1 : -1;
for (let i = 0; i < Math.abs(a); i++)
for (let j = 0; j < Math.abs(b); j++)
prod += unit;
return prod;
}
console.log(mul(-6, -7)); //=> 42
console.log(mul(-6, 7)); //=> -42
低得点ww
function mul(a, b) {
let prod = 0;
const unit = Math.sign(a) + Math.sign(b) ? 1 : -1;
for (let i = 0; i < Math.abs(a); i++)
for (let j = 0; j < Math.abs(b); j++)
prod += unit;
return prod;
}
console.log(mul(-6, -7)); //=> 42
console.log(mul(-6, 7)); //=> -42
低得点ww
169デフォルトの名無しさん
2020/08/04(火) 03:43:27.41ID:DYgISIVe お題: 文字列の格納された配列から重複した文字列を削除し昇順にソートせよ
['apple', 'banana', 'apple', 'chikuwa']
↓
['apple', 'banana', 'chikuwa']
['apple', 'banana', 'apple', 'chikuwa']
↓
['apple', 'banana', 'chikuwa']
170デフォルトの名無しさん
2020/08/04(火) 03:55:23.60ID:gT//RRjC >>169 Ruby
['apple', 'banana', 'apple', 'chikuwa'].uniq.sort #=> ["apple", "banana", "chikuwa"]
['apple', 'banana', 'apple', 'chikuwa'].uniq.sort #=> ["apple", "banana", "chikuwa"]
171デフォルトの名無しさん
2020/08/04(火) 05:05:40.50ID:YeoxtHaI >>153 Ruby
def resolve( str )
res = String.new # 戻り値
flag = false # [ だけを付けて、まだ ] で閉じていない状態が、true
ary = str.split # 空白で、2つに分離する
ary[ 0 ].chars.zip( ary[ 1 ].chars ) do |c0, c1| # 1文字ずつ比較する
if c0 == c1
if flag
res = res + ']' + c0
flag = false
else
res += c0
end
else
if flag
res += c0
else
res = res + '[' + c0
flag = true
end
end
end
res += ']' if flag # もし閉じていない場合は、閉じる
res
end
[ "abc adc", "abc acd", "abc bcc" ].each{ |str|
print "入力: #{ str }\n" + "出力: #{ resolve( str ) }\n\n"
}
def resolve( str )
res = String.new # 戻り値
flag = false # [ だけを付けて、まだ ] で閉じていない状態が、true
ary = str.split # 空白で、2つに分離する
ary[ 0 ].chars.zip( ary[ 1 ].chars ) do |c0, c1| # 1文字ずつ比較する
if c0 == c1
if flag
res = res + ']' + c0
flag = false
else
res += c0
end
else
if flag
res += c0
else
res = res + '[' + c0
flag = true
end
end
end
res += ']' if flag # もし閉じていない場合は、閉じる
res
end
[ "abc adc", "abc acd", "abc bcc" ].each{ |str|
print "入力: #{ str }\n" + "出力: #{ resolve( str ) }\n\n"
}
172デフォルトの名無しさん
2020/08/04(火) 18:06:57.21ID:Bm48LwqI >>169
Kotlin または Kotlin script でのやり方
a が Array<String> または List<String> でそこに元の文字列が入っているとすると。
val b = a.toSortedSet()
でbに重複削除されてソートされたSetができる。
これを List<String> にしたい場合はこうする。
val c = b.toList()
Kotlin または Kotlin script でのやり方
a が Array<String> または List<String> でそこに元の文字列が入っているとすると。
val b = a.toSortedSet()
でbに重複削除されてソートされたSetができる。
これを List<String> にしたい場合はこうする。
val c = b.toList()
173デフォルトの名無しさん
2020/08/04(火) 18:45:38.06ID:lImhU2CT >>165 チューリングマシン(Python3)
#チューリングマシン本体(不受理の場合例外が発生する)
def turingMachine(tape, state_function, current_state, final_state):
i=0
n = len(tape)
while i < n:
sf = state_function[current_state]
symbol = tape[i] if i >= 0 else None
(current_state, rsymbol, is_right) = sf[symbol]
if i >= 0:
tape[i] = rsymbol
if current_state == final_state:
return True
i += 1 if is_right else -1
return False
def TmMul(a, b):
#1000000の箇所はメモリ容量に合わせて適当に増やす
tape = ["0"] * a + ["1"] + ["0"] * b + ["1"] + [None] * 1000000
trans = [{"0":(6, None, True)},
{"0":(2, "X", True), "1":(4, "1", False)},
{"0":(2, "0", True), "1":(2, "1", True), None:(3, "0", False)},
{"0":(3, "0", False), "1":(3, "1", False), "X":(1, "X", True)},
{"X":(4, "0", False), "1":(5, "1", True)},
{"0":(5, "0", False), "1":(7, "1", False)},
{"0":(6, "0", True), "1":(1, "1", True)},
{"0":(8, "0", False), None:(7, None, True), "1":(9, None, True)},
{"0":(8, "0", False), None:(0, None, True)},
{"0":(9, None, True), "1":(10, None, True)}]
turingMachine(tape, trans, 0, 10)
return len(list(filter(lambda x: x != None, tape)))
print(TmMul(3, 8)) #=>24
#チューリングマシン本体(不受理の場合例外が発生する)
def turingMachine(tape, state_function, current_state, final_state):
i=0
n = len(tape)
while i < n:
sf = state_function[current_state]
symbol = tape[i] if i >= 0 else None
(current_state, rsymbol, is_right) = sf[symbol]
if i >= 0:
tape[i] = rsymbol
if current_state == final_state:
return True
i += 1 if is_right else -1
return False
def TmMul(a, b):
#1000000の箇所はメモリ容量に合わせて適当に増やす
tape = ["0"] * a + ["1"] + ["0"] * b + ["1"] + [None] * 1000000
trans = [{"0":(6, None, True)},
{"0":(2, "X", True), "1":(4, "1", False)},
{"0":(2, "0", True), "1":(2, "1", True), None:(3, "0", False)},
{"0":(3, "0", False), "1":(3, "1", False), "X":(1, "X", True)},
{"X":(4, "0", False), "1":(5, "1", True)},
{"0":(5, "0", False), "1":(7, "1", False)},
{"0":(6, "0", True), "1":(1, "1", True)},
{"0":(8, "0", False), None:(7, None, True), "1":(9, None, True)},
{"0":(8, "0", False), None:(0, None, True)},
{"0":(9, None, True), "1":(10, None, True)}]
turingMachine(tape, trans, 0, 10)
return len(list(filter(lambda x: x != None, tape)))
print(TmMul(3, 8)) #=>24
174デフォルトの名無しさん
2020/08/04(火) 19:24:17.96ID:lImhU2CT >>173
あーアホだったw
タブ消去の仕様だとPythonだと分けわからんことになるなw
↓貼り直した
http://codepad.org/BWRzr8fW
※会員未登録の為、一定期間後に自動消去
あーアホだったw
タブ消去の仕様だとPythonだと分けわからんことになるなw
↓貼り直した
http://codepad.org/BWRzr8fW
※会員未登録の為、一定期間後に自動消去
175デフォルトの名無しさん
2020/08/04(火) 20:26:47.42ID:BW/Lg1/b >>166
この魔法が気になる
この魔法が気になる
177デフォルトの名無しさん
2020/08/04(火) 20:43:45.04ID:ZgraBKAX 筆算じゃないの
101 b
110 a (+
---------
0
1010
10100
---------
11110
101 b
110 a (+
---------
0
1010
10100
---------
11110
178蟻人間 ◆T6xkBnTXz7B0
2020/08/04(火) 20:47:15.02ID:pnjegpbT お題: 総務省統計局の1990〜2019年までの人口データを使用して2020〜2024年の日本の人口の推計値を求めよ。人口データ以外は使用しないものとする。
179蟻人間 ◆T6xkBnTXz7B0
2020/08/04(火) 21:14:16.49ID:pnjegpbT これは電子政府の使い勝手のテストである。だれも解けないなら、電子データは活かされていないと判断する。
180デフォルトの名無しさん
2020/08/04(火) 21:16:21.27ID:02jYvMNw181デフォルトの名無しさん
2020/08/04(火) 21:26:04.52ID:lImhU2CT チューリングマシンを使って重くて複雑な乗算を再現して何の意味があるのかと思ってそうだな
ポイントは文法の中に演算を組み込める点
実社会に役に立つ具体的な例を挙げろと言われれば直ぐには思いつかないが、オートマトンの入力は文字列だけとは限らないぞ
有限木オートマトン使って静的コード解析なのか最適化なのかは分からんが、開発言語の構文木に何らかの演算が伴うルールを適用したいこともあるかもしれない
「そんなのプログラミングすればいいだけだろ」と言う声が聞こえてきそうだがそれは極論「正規表現など要らん」と言ってるのと同じだと思う
以上でもって「全てのプログラマはオートマトンとチューリングマシンをよく勉強するべき」とする俺の主張の正当性は認められる
ちなみに俺は10年以上機械学習の勉強をしたのに画期的な成果が出せなかった後悔の思いがあるから言っている
ポイントは文法の中に演算を組み込める点
実社会に役に立つ具体的な例を挙げろと言われれば直ぐには思いつかないが、オートマトンの入力は文字列だけとは限らないぞ
有限木オートマトン使って静的コード解析なのか最適化なのかは分からんが、開発言語の構文木に何らかの演算が伴うルールを適用したいこともあるかもしれない
「そんなのプログラミングすればいいだけだろ」と言う声が聞こえてきそうだがそれは極論「正規表現など要らん」と言ってるのと同じだと思う
以上でもって「全てのプログラマはオートマトンとチューリングマシンをよく勉強するべき」とする俺の主張の正当性は認められる
ちなみに俺は10年以上機械学習の勉強をしたのに画期的な成果が出せなかった後悔の思いがあるから言っている
182デフォルトの名無しさん
2020/08/04(火) 21:58:22.27ID:JHqDXk92 お題を出して解くスレで電子データは活かされていないとかどうでもいいんですが…
なんでそうやっていつもスレ趣旨からずれようとするのか?
ズレたいならよそでやってくれ
なんでそうやっていつもスレ趣旨からずれようとするのか?
ズレたいならよそでやってくれ
183デフォルトの名無しさん
2020/08/04(火) 22:11:15.82ID:02jYvMNw 片山博文MZ◆NveQN6OtcI
184デフォルトの名無しさん
2020/08/04(火) 23:36:46.28ID:L0dS0CTZ お題
両替をしてください
貨幣は次の文字列で表されます
1円 = (1)
5円 = (5)
10円 = (10)
50円 = (50)
100円 = (100)
500円 = (500)
例
入力: (1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)
出力: (10)(10)(1)(1)(1)(1)
入力: (5)(50)(5)(1)(50)(5)(10)(1)(50)(1)(10)(10)
出力: (100)(50)(10)(10)(10)(10)(5)(1)(1)(1)
両替をしてください
貨幣は次の文字列で表されます
1円 = (1)
5円 = (5)
10円 = (10)
50円 = (50)
100円 = (100)
500円 = (500)
例
入力: (1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)
出力: (10)(10)(1)(1)(1)(1)
入力: (5)(50)(5)(1)(50)(5)(10)(1)(50)(1)(10)(10)
出力: (100)(50)(10)(10)(10)(10)(5)(1)(1)(1)
185デフォルトの名無しさん
2020/08/05(水) 00:05:23.10ID:DlE2lfwB 書きたいけど寝たい
186デフォルトの名無しさん
2020/08/05(水) 02:29:32.18ID:prJIGLTT >>175
aが2とか4だったらどうなるかを紙にでも書いて考えればいずれわかると思う。
aが2とか4だったらどうなるかを紙にでも書いて考えればいずれわかると思う。
187デフォルトの名無しさん
2020/08/05(水) 02:55:46.54ID:wv4r4oF2 >>184 Ruby
def change( coin )
sum = coin.split(/[^\d]+/)[1..].inject(0){|r,c| r + c.to_i }
ret = ''
[500,100,50,10,5,1].each{|c|
next unless sum >= c
r, sum = sum.divmod( c )
ret << "(#{c})" * r
}
ret
end
[ '(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)',
'(5)(50)(5)(1)(50)(5)(10)(1)(50)(1)(10)(10)' ].each{|coin|
puts "入力: #{coin}"
puts "出力: #{change( coin ) }\n\n"
}
def change( coin )
sum = coin.split(/[^\d]+/)[1..].inject(0){|r,c| r + c.to_i }
ret = ''
[500,100,50,10,5,1].each{|c|
next unless sum >= c
r, sum = sum.divmod( c )
ret << "(#{c})" * r
}
ret
end
[ '(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)',
'(5)(50)(5)(1)(50)(5)(10)(1)(50)(1)(10)(10)' ].each{|coin|
puts "入力: #{coin}"
puts "出力: #{change( coin ) }\n\n"
}
188デフォルトの名無しさん
2020/08/05(水) 11:37:38.85ID:kVNaCqIg File "C:\Users\NEC-PCuser\.spyder-py3\temp.py", line 23, in <module>
my_data = genfromtxt('SingleECG.csv')
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1772, in genfromtxt
fid = np.lib._datasource.open(fname, 'rt', encoding=encoding)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 269, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 623, in open
raise IOError("%s not found." % path)
グラフをプロットしたらこのエラーが出ました。対処法を教えてください
my_data = genfromtxt('SingleECG.csv')
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1772, in genfromtxt
fid = np.lib._datasource.open(fname, 'rt', encoding=encoding)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 269, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 623, in open
raise IOError("%s not found." % path)
グラフをプロットしたらこのエラーが出ました。対処法を教えてください
189デフォルトの名無しさん
2020/08/05(水) 12:05:51.48ID:DlE2lfwB 斬新なお題だなNEC-PCuserさん
190デフォルトの名無しさん
2020/08/05(水) 12:16:18.65ID:IZQzbQjk >>188<対処法を教えるお題
一行目と最後の行IOError("%s not found." % path) から
File "C:\Users\NEC-PCuser\.spyder-py3\temp.py"
のパスが間違えていると思われるので
temp.pyを添付するか確認するように進言します
一行目と最後の行IOError("%s not found." % path) から
File "C:\Users\NEC-PCuser\.spyder-py3\temp.py"
のパスが間違えていると思われるので
temp.pyを添付するか確認するように進言します
191デフォルトの名無しさん
2020/08/05(水) 14:35:10.99ID:xKYyZvTf 心電図装置に繋がってるデバイスが機能停止したんだろ
192デフォルトの名無しさん
2020/08/05(水) 15:30:05.18ID:prJIGLTT >>184
Kotlin
https://paiza.io/projects/cVm9G2FkQCosaGf9_fQz-Q
最初は割り算したり余り出したりしてやろうと思ったんだけど、よく考えたらこの場合はその計算は無駄な感じがしたので合計から引けたらその貨幣を出すのを繰り返すようにした。
Kotlin
https://paiza.io/projects/cVm9G2FkQCosaGf9_fQz-Q
最初は割り算したり余り出したりしてやろうと思ったんだけど、よく考えたらこの場合はその計算は無駄な感じがしたので合計から引けたらその貨幣を出すのを繰り返すようにした。
193デフォルトの名無しさん
2020/08/05(水) 16:44:00.29ID:73CDpa/5 ふむ。コイン切れの対処もし易いな。
194蟻人間 ◆T6xkBnTXz7B0
2020/08/05(水) 17:59:02.96ID:TWR5sasY お題: コイにえさをやるプログラム「feed」がある。一時間ごとにfeedを実行するプログラムを書け。ただし、ビジーウェイトはしてはならない。
ダミーのfeedは、次のようなプログラムとする:
- 現在日時と「えさをやりました。」を出力する。
ダミーのfeedは、次のようなプログラムとする:
- 現在日時と「えさをやりました。」を出力する。
195蟻人間 ◆T6xkBnTXz7B0
2020/08/05(水) 18:08:26.66ID:UZ8wPONY >>194 C++/Win32
#include <windows.h>
int main(void) {
for (;;) {
Sleep(60 * 60 * 1000);
ShellExecuteA(NULL, NULL, "feed.exe", NULL, NULL, SW_SHOWNORMAL);
}
}
// feed.cpp
#include <windows.h>
#include <stdio.h>
int main(void)
{
SYSTEMTIME st;
GetLocalTime(&st);
printf("%04d.%02d.%02d %02d:%02d:%02d えさをやりました。\n",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
}
#include <windows.h>
int main(void) {
for (;;) {
Sleep(60 * 60 * 1000);
ShellExecuteA(NULL, NULL, "feed.exe", NULL, NULL, SW_SHOWNORMAL);
}
}
// feed.cpp
#include <windows.h>
#include <stdio.h>
int main(void)
{
SYSTEMTIME st;
GetLocalTime(&st);
printf("%04d.%02d.%02d %02d:%02d:%02d えさをやりました。\n",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
}
196デフォルトの名無しさん
2020/08/05(水) 19:40:23.44ID:VitQNdTl は、はやい・・・
197デフォルトの名無しさん
2020/08/05(水) 20:19:52.45ID:wv4r4oF2 >>194 Ruby (Windows)
# feed_ignition.rb
loop do
system( 'start "" feed.rb' )
sleep 60*60
end
# feed.rb
puts "#{Time.new.strftime('%Y/%m/%d %T')} えさをやりました。"
sleep 3 # 表示確認用
# feed_ignition.rb
loop do
system( 'start "" feed.rb' )
sleep 60*60
end
# feed.rb
puts "#{Time.new.strftime('%Y/%m/%d %T')} えさをやりました。"
sleep 3 # 表示確認用
198デフォルトの名無しさん
2020/08/05(水) 23:41:13.11ID:prJIGLTT >>194
Linux 等の UNIX系OS だったら普通なら crond が動いているので crontab 設定すると楽だ。
(Windows の場合はタスクの設定で似たような事ができる)。
例えばこのようにすると毎時0分に feed コマンドが実行される。
0 * * * * feed
ただ問題はこのままだと標準出力がリダイレクトされていないのでその出力がcrondからメールで送られて来る事になる。
(見たい場合は mail コマンドを使って見る)。
コマンドラインから直接やるとしたら watch コマンドというのもある。これは実行するたびに出力が変化する
ようなコマンドを定期的に動かしてその出力を画面上に表示するためのコマンドだが毎回出力が同じでも
あるいは何も出力しなかったとしても問題はない。1時間ごとに動かすならこうなる。
watch -n 3600 feed
もっと単純にシェルでループさせて実現する方法もある。(これだとようやっとプログラムっぽい見た目になる)
sh -c 'while : ; do feed ; sleep 3600 ; done'
feed コマンドについてはシェルスクリプトなら例えばこうしておけば良い。
#!/bin/sh
echo 'えさをやりました。'
Linux 等の UNIX系OS だったら普通なら crond が動いているので crontab 設定すると楽だ。
(Windows の場合はタスクの設定で似たような事ができる)。
例えばこのようにすると毎時0分に feed コマンドが実行される。
0 * * * * feed
ただ問題はこのままだと標準出力がリダイレクトされていないのでその出力がcrondからメールで送られて来る事になる。
(見たい場合は mail コマンドを使って見る)。
コマンドラインから直接やるとしたら watch コマンドというのもある。これは実行するたびに出力が変化する
ようなコマンドを定期的に動かしてその出力を画面上に表示するためのコマンドだが毎回出力が同じでも
あるいは何も出力しなかったとしても問題はない。1時間ごとに動かすならこうなる。
watch -n 3600 feed
もっと単純にシェルでループさせて実現する方法もある。(これだとようやっとプログラムっぽい見た目になる)
sh -c 'while : ; do feed ; sleep 3600 ; done'
feed コマンドについてはシェルスクリプトなら例えばこうしておけば良い。
#!/bin/sh
echo 'えさをやりました。'
199デフォルトの名無しさん
2020/08/05(水) 23:51:48.40ID:prJIGLTT >>198はfeedで現在の日付を出すのを忘れた。
日付付けるなら例えばこうする。
#!/bin/sh
echo `date` 'えさをやりました。'
date コマンドに任せてしまってこんな風にもできる。(日時は YYYY-MM-DD hh:mm:ss の形式で出る)。
#!/bin/sh
date '+%F %T えさをやりました。'
日付付けるなら例えばこうする。
#!/bin/sh
echo `date` 'えさをやりました。'
date コマンドに任せてしまってこんな風にもできる。(日時は YYYY-MM-DD hh:mm:ss の形式で出る)。
#!/bin/sh
date '+%F %T えさをやりました。'
200蟻人間 ◆T6xkBnTXz7B0
2020/08/06(木) 18:50:53.87ID:mzjhTFla お題: 現実世界でコイにえさをやるプログラム。
できるのか?
できるのか?
202デフォルトの名無しさん
2020/08/06(木) 19:06:41.72ID:cHZDAcP7 >>200
プログラムそのものは出力装置に繋がるビットをONにするとかを定期的にやれば良いだけなのでは?
で、ONになったらリレーで餌やり器のスイッチが入ってウイーンとかいって餌が一定量水槽に入る。
ていうか、全部ハードウェアだけででできないか?タイマーICってあったよね確か。
プログラムそのものは出力装置に繋がるビットをONにするとかを定期的にやれば良いだけなのでは?
で、ONになったらリレーで餌やり器のスイッチが入ってウイーンとかいって餌が一定量水槽に入る。
ていうか、全部ハードウェアだけででできないか?タイマーICってあったよね確か。
203蟻人間 ◆T6xkBnTXz7B0
2020/08/06(木) 19:21:15.27ID:mzjhTFla ハードウェアだとソフトウェア制御できない。成長を細かく制御したい。
普通のPCから安価で制御する方法はないのだろうか。
ニシキゴイを20匹ほど飼いたいのだが。
普通のPCから安価で制御する方法はないのだろうか。
ニシキゴイを20匹ほど飼いたいのだが。
204デフォルトの名無しさん
2020/08/06(木) 19:23:23.77ID:nx4HEXSE >>203
ピ・タ・ゴ・ラ・スイッチ
ピ・タ・ゴ・ラ・スイッチ
205デフォルトの名無しさん
2020/08/06(木) 19:37:26.52ID:/QKQvkvR なぜ何度ツッコまれてもスレタイからずれようとするんですか?
学習できないんですか?
学習できないんですか?
206蟻人間 ◆T6xkBnTXz7B0
2020/08/06(木) 19:46:21.15ID:mzjhTFla >>205
ハードにも興味を持ってくれるといいな、と思って企画しました by 突撃商会
ハードにも興味を持ってくれるといいな、と思って企画しました by 突撃商会
207デフォルトの名無しさん
2020/08/06(木) 19:58:03.18ID:AWtnj9QL CDトレイを開閉するソフトを作りそれで餌やり器のボタンを押せ
209デフォルトの名無しさん
2020/08/06(木) 20:18:11.34ID:nx4HEXSE 【お題】正解にたどり着くようにアシストした得点を算出するプログラムを作れ
スケールは1点以上100点未満とする
スケールは1点以上100点未満とする
211デフォルトの名無しさん
2020/08/06(木) 20:37:37.85ID:sjF+gr/I クソコテ死ねよマジで
212デフォルトの名無しさん
2020/08/06(木) 20:53:50.09ID:O/aURmUk213蟻人間 ◆T6xkBnTXz7B0
2020/08/06(木) 21:07:24.02ID:mzjhTFla214蟻人間 ◆T6xkBnTXz7B0
2020/08/06(木) 21:16:15.64ID:mzjhTFla IchigoJamというのもあるみたい。
215デフォルトの名無しさん
2020/08/06(木) 21:29:05.63ID:8sSWlLgK スレチ
◆QZaw55cn4c はうせろ
◆QZaw55cn4c はうせろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- 俺の代わりに中国がバカウヨを倒してくれる [805596214]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 高市が首相になってから進次郎の評価が爆上がりしてる件について
- ウンコシュタイナー
